数据安全 了解各种加密锁核心加密技术
所属分类:
网络安全 / 加密解密
阅读数:
106
收藏 0赞 0分享
盗版,对大多数软件开发者来说都是一个令人担心的问题。在采用了加密锁加密后的软件会不会被黑客破解呢?理论上说没有不能破解的软件,即使是纯数学的密码加密也有被破解的可能,只不过破解的时间可能是个天文数字。
目前市场上的加密锁大致分为两种类型:带CPU加密锁,不带CPU的加密锁。前者拥有计算能力,对加密数据、过程数据、通讯接口等可以实施动态密文处理,因此带CPU的加密锁也被演化出了多种多样的加密形式:密文校验、自定义算法、程序移植等等。而不带CPU加密锁相对简单,加密强度较低,成本低廉!
加密锁的克隆
不带CPU加密锁实际上是一个外接的存储单元,用户在使用了正确的方法后可以与内部存储交换数据,以达到加密的目的。这种加密锁,不论其软件加密强度高低,从硬件的角度来说属于低端产品,一般加密公司的低端产品皆属此类。如果破解者找到办法可以把加密锁中的数据读出来(前提是这个硬件高手可以找到办法),那么这个加密狗也就被破掉了,制作出一个完全相同的加密锁,这种方法我们熟称为加密锁的“克隆”。加密锁客隆技术的产生使加密锁技术发展进入了一个新的时代,新类型的软件加密锁大多都有密码或硬ID号的保护,只要黑客买不到相同密码的加密锁,也就无法进行加密锁的“克隆”了。
加密锁的仿真、模拟
那么,加密锁的厂家是否可以安枕无忧了呢?不是的,解密者又找到了新的突破口。因为软件要同加密锁进行通讯,必须要通过通讯口来进行,黑客利用这一弱点编制出了加密锁仿真程序,它的工作原理是首先插上保护软件原有的软件锁运行一遍,而后台的程序会记录下所有的写入/读出的数据。然后取下加密锁,启动仿真程序,让仿真程序来模拟加密锁提供所有的数据。为此,“蓝芯金盾加密锁”采用了源程序级加密,此方法不是去判断某个值、某个字符串或数据是否正确,而是时时变化输入参数,在任何时刻没有两个相同的数据出现。
自定义算法加密锁
现在市场上还提供一种开发者可自定义算法的加密锁。开发者可以把自己的算法写入到加密锁中,在软件中调用这些算法来实现特有的计算工作。这种加密锁的实际原理是将一组数据(开发者的算法编译码)下载到加密锁的特定外部存储器,这种方法有它的局限性,因为外部存储器用专门的设备总是可以被读出来的,安全强度的高低仍然依仗在硬件读取方法的寻找上。“蓝芯金盾加密锁”可以为有特殊需要的用户编写专门的加密函数,更安全地将用户要求融入加密锁中,用户使用加密锁不是去判断加密锁是否正确,而是由加密锁实现用户软件的特定功能。
实际上加密锁的好坏仅仅是一个方面,不论加密锁提供的功能有多丰富,加密性有多好,更主要的是使用者,因为软件毕竟是要被人用的。希望所有的加密锁使用者能够更好的使用他的加密锁来完成对自己软件的保护。
加密技术
→ 在很少使用的代码中调用加密锁。那么看似已破译的程序就会经常发生异常现象。
→ 根据时间调用加密锁。上午调用的数据下午(或隔日)使用。破译者为了分析这种数据就要花一天或几天的时间。这就可以拖垮破译者。
→ 加密锁校验函数不宜定义成一个单独函数,而宜定义成若干个小函数分散使用。
→ 检查程序代码的校验和,以防非法修改。
→ 以各种不同的随机访问掩护真实的加密锁访问。对随机询问的答复进行处理,但不真正使用它。
→ 可在加密锁里的多个地址预先写入不同数据,校验锁时可以随机地对其中的某个地址进行校验。(如可随机产生一个数,再根据该数来决定对锁里哪个地址的值进行校验。)
→ 在程序中不同的地方对加密锁进行检测,即多点加密。这个方法可配合方法一使用。
→ 在您程序的运行过程中,您可以定时、不定时地对加密锁进行随机检测。
→ 您从加密锁取得返回数据后,并不立即判定,而是在后来才去判定是否正确;在判定加密锁错误时,并不立即提示或退出,而是在以后提示或退出或程序照常运行但出现偏差或溢出等等错误。
→ 可以将加密锁返回值作为数组的索引、常量、计算单元和校验码;可以将加密锁返回值作为指针来控制程序执行或作为在不同表中跳转的索引;也可以使用加密锁返回值来加密或解密部分代码或数据。加密锁返回值使用后立即删除。
加密锁原理
有一种加密锁是把用户定制(根据密码系数变换密码算法)密码算法写入加密锁中,并以程序的形式对调用者进行身份验证。
加密方式
内嵌式 这种加密方法要求具有源程序,在被加密程序中访问加密锁。加密锁的驱动光盘中提供VC\VB\VFP\Delph\PB\CB等各种言的编程接口及详细的示例供客户参考。如果您有什么特殊要求可与我们联系。
外壳式 外壳加密是一种直接对可执行文件(.exe\.com\.dll)加密的加密方法。这种方法不需要源程序,加密过程简单方便。
文件加密
在加密锁动态连接库中提供了文件加密和解密函数。函数中隐去了 HASH和RSA密码算法的实现细节,安全性极高且使用方便。用户只需输入文件名和口令即可。
反破译---文件完整性检测
用程序的完整性检测码防止文件被非法篡改。
定义1:运行检测码--程序运行时的完整性检测码。
定义2:发行检测码--程序发行时的完整性检测码。
检测原理:根据程序完整性检测程序是否被修改--在程序发行前计算程序的“发行检测码”,在程序发行后运行时自动计算程序的“运行检测码”。如果 “运行检测码”等于“发行检测码” 则程序完整性检测正确,程序没有被修改。如果“运行检测码”不等于“发行检测码”则程序完整性检测错误,程序被修改。
WEBSHELL提升权限又一招(Mysql漏洞)
S-serv提权方式人人都会用了,搞得现在的主机都配置得非常安全,看来攻击手法的层出不穷也是造成中国网络安全进步的一大原因之一,还有其他的pcanywhere获取密码,替换服务,等等。但是现在也没这么好搞了,随着安全意识的提高,之前的方式估计不怎么管用,现在我给大家介
收藏 0赞 0分享
常见保护的攻击:序列号方式
(1)序列号保护机制
数学算法一项都是密码加密的核心,但在一般的软件加密中,它似乎并不太为人们关心,因为大多数时候软件加密本身实现的都是一种编程的技巧。但近几年来随着序列号加密程序的普及,数学算法在软件加密中的比重似乎是越来越大了。
收藏 0赞 0分享
谈谈软件的破解原理
从本章开始,我们来一步一步学习Crack软件(80%读者昏死过去,且不省人世...另有20%在寻找附近可以用来打人的东西)
不可不说一下学习破解的三个阶段:
初级,修改程序,用ultraedit等工具修改exe文件,称暴力破解,简称爆破
中级,追出软件的
收藏 0赞 0分享
用Dos命令进行加锁 防病毒格式化硬盘
越来越多的病毒程序进行对计算机数据的破坏,有些病毒更直接格式化硬盘分区。
其实,我们可以用小命令来阻止病毒程序对硬盘的格式化等破坏操作。
用“记事本”打开C盘根目录下的Autoexec文件,并在其中添加如下语句:
收藏 0赞 0分享
用Dos命令解开远程NT服务器用户密码
如知道一个NT帐户与密码,就可以用
net use \主机ipc$Content$nbsp;"密码" /user:"用户"
与远程主机建立连接,这是每一个黑客或是梦想成为又或是正在努力成为黑客的朋友都知道的方法,甚至连我
收藏 0赞 0分享
对某ASC加密网马的破解和利用
QQ群中,有人在叫卖网马。网友花钱获得一个共享给我,让我看看。于是有了下面的这篇文章。
1.网马初探
在浏览器中打开网马,这个网马的功能比较简单,主要用来上传功能更强的网马。比较有特色的是可以在目标网页的上传漏洞,自己修改修改配置。查看该网马
收藏 0赞 0分享
教你利用IAT hook实现windows通用密码后门
先不管是不是真的有,我们可以自己实现一个这样的后门。
先简单介绍一下windows登陆过程中的一些过程。
winlogon进程用gina.dll获取用户名和密码,通过LPC传给lsass进程。
然后lsass进程调用默认认证包msv1_0.dll来验证密码的对错
收藏 0赞 0分享
网页加密完全攻略
现在专业性的网站越来越多,许多网友们都在网上建立起了自己的小家。不过辛辛苦苦制作的网页被人拿去改头换面却是件非常痛心的事,所以大家都想保护自己独创的作品,为自己的网页上把锁,今天就让我带大家了解一下如何给我们的网页加上一把密码锁。
一、常用JavaScript
收藏 0赞 0分享
总结一些加密算法
有一些是之前学破解写注册机时写的,一些是我改写某些兄弟的代码来的,写的不好多多指教:
{=======================================================
学习破解,写注册机的一些函数集
收藏 0赞 0分享
UPX程序破解过程
入门级的破解,用ollydbg
我用UPX将NOTEPAD.EXE加壳,选择OllyDbg 1.09d来脱壳。首先加载被加壳的程序,
程序直接定位到01014110 $60 PUSHAD处,选择CTRL F 输入查找内容"POPAD",
OD
收藏 0赞 0分享
查看更多