首页 > 范文大全 > 正文

加密狗的安全性分析设计

开篇:润墨网以专业的文秘视角,为您筛选了一篇加密狗的安全性分析设计范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘要: 本研究主要针对USB加密狗的可靠性,结合纹织CAD应用软件,作详细的安全可靠性设计分析。提出了保证数据交互的完整性的可靠措施以及固件程序设计的可靠性方案, 分析了破解技术、反破解技术。所提出的可靠性分析与设计方法在以后加密狗研究中具有一定的借鉴作用和应用价值。

关键词:加密狗;安全可靠性;反破解

现代密码技术的发展也为加密狗技术开辟了更加广阔的发展空间但是还没有杜绝盗版侵权行为,因此对USB加密狗的可靠性研究仍然是广大开发者探讨的热点。USB加密狗(或称为软件狗)是USB接口技术与第4代软件狗加密技术结合的产物,与其他加密狗相比具有明显优势USB接口为加密狗提供了一个理想的工作环境,使加密狗硬件所受的限制大大降低。

1USB加密狗的可靠性分析

1. 1USB加密狗反破解分析

1. 1. 1USB加密狗破解分析

一般来说,有很多软件只是在启动应用程序的时候要扫描端口。如果从端口读入的数据和内存数据符合,就运行程序,反之就拒绝运行。这样一个过程就可能存在一些破解的漏洞:

(1)使用者可以在不同的机器上安装多套软件,用一个加密狗依次启动。

(2)破解者可以修改主程序的EXE文件,使其内存数据符合端口高电平时的状态,也就是没有加密狗时的状态。

(3)破解者可以跟踪程序,通过修改主程序的EXE文件逆转所有的比较判断,使得判断代码始终为真值。或者通过修改主程序的EXE文件,使得程序的执行跳过检查加密狗状态的代码,而直接运行主程序。

(4)找到程序中读端口的代码。跟踪观察有加密狗时,每次读入的端口数值,并模拟这个变化。总的来说,加密狗潜在的弱点在于:使用过程中

它必须要通过执行读端口的指令以进行数据交换。

1. 1. 2USB加密狗反解密技术

依赖加密狗实现反盗版的软件,其弱点并不在于加密狗本身,而在使用加密狗的一方。只要对使用加密狗的一方做好反跟踪技术,加密狗就能发挥作用。现在常用的加密狗破解方法主要侧重软件方面,通常有软件模拟、跟踪分析等方法。为了对付软件模拟这种非法解密方法,采用系统随机参数变换和掺杂无用数据通信协议的方法。当通信数据中含有随机性的参数(如系统的当前时间),那么USB加密狗和受保护的CAD软件间所交互的数据就各不相同,这样软件模拟将失去作用。具体操作如下:CAD软件取系统当前时间送给USB加密狗,加密狗

使用一定的规则对该数据进行变换,并把结果送回CAD软件,主机用同样的规则对上述时间值进行变换,检查变换后的结果是否一致。这里需要有好的变换算法,使变换结果对参数的各个部分的改变很敏感且程度相似。也可以采取一定策略,使USB加密狗和受保护CAD软件间遵循一定的通信协议(非公开的),所传输的数据中含有大量随机的无用信息,而根据该通信协议,加密狗和受保护软件都可以从中提取出有效的信息。在这种情况下,软件模拟方法就会失效。跟踪分析方法在各种加密狗的软件破解方法中威力最为强大,具体包括静态分析和动态跟踪两种方法。针对静态分析这种破解方法,预先对受保护的CAD软件的程序代码采用一定的变换(可以取加密狗中的数据作为变换参数),在运行时再进行反变换而动态生成将要执行的代码,就可以有效地对抗静态分析方法。还可以使用可执行文件压缩工具对受保护软件进行压缩处理,或采用软件加壳工具对其进行处理等。另外,将CAD软件的内部函数调用与外壳加密相结合,则进一步提高了加密强度,即使软件的外壳被破除,也仍然不能正常运行。USB加密狗采用了API函数调用与SHELL外壳加密结合的技术,可以有效地对抗静态分析方法。即使因使用脱壳工具软件后导致外壳被破坏,其内部加密函数的调用仍然能保证保护的有效性。动态跟踪法不仅可以用于加密狗破解,还可以用来获取软件的注册序列号,取消软件的试用期限制、试用次数限制和解锁试用版软件等。欲对付这种暴力破解方法,主要对策有设置跟踪陷阱、使用大量各不相同的加密算法并大量分散地设置对加密狗的访问、分离对加密狗的检测命令和对结果的判断等,目的就是加大跟踪分析的工作量、扰乱破解者的思路,大量消耗其体力和脑力,最终使其知难而退。另外,一种很有效的对策是限定CAD软件与加密狗间交互操作执行的时间闸。如果加密狗发现某个操作的执行时间超出设定的值,则不作响应或送回错误的响应以迷惑破解者。这是由于对于同样的操作,动态跟踪所需要的执行时间要远大于正常连续运行所需要的时间。

1. 2软件设计可靠性

1. 2. 1 USB加密狗结合应用软件的可靠性

由于纹织CAD软件的关键数据是经过加密处理的,这就涉及到防止因程序意外中断而致关键数据泄密和被破坏。为此,有如下措施保证数据完整性:

(1)防止数据在使用中泄密。数据在使用中是处于明文状态的,因此数据在使用中应尽可能不写入静态存储器,即使需要存放也应分段存放,应用程序只需根据链表寻找关键数据即可;同时应用程序在内存中也应分段存放,关键数据在使用结束后应在释放空间的同时彻底删除。

(2)防止数据在使用中被破坏。监控程序在数据被解密后不应立即删除原已加密数据及密钥种子,而应在关键数据被新密钥加密后并存储完成,再进行删除,在此之前, CAD软件应存放原密钥加密的关键数据及密钥种子的地址。

(3)防止意外锁死。在每次程序安装时,要通知加密狗该程序己被安装一次,如果安装未结束加密狗就存入安装信息,就可能在多次安装失败后锁死加密狗,因此加密狗的安装计数应在安装完成后进行。

1. 2. 2固件程序可靠性

应采用如下措施保证固件程序可靠性:

(1)已安装次数写在存储器的存储区尾端,与芯片的配置参数、产品安装序列号、使用序列号和USBN9603的固件程序相隔离。

(2)死锁USB加密狗的程序与USBN9603的固件程序隔离,防止误写操作。

(3)在不访问存储器的指令期间,应禁止I2C总线的操作。

2USB加密狗的设计实现

主要使用USBN9603等芯片所设计的USB加密狗,是配合一种纹织CAD处理软件的知识产权保护工作而开发的,其基本设计思想是对软件的安装和使用数据等进行高强度加密。USB加密狗的配置。包括基本存储区数据设置、多种字节格式读写狗、读系列号、设置认证密钥等功能。实验中,随机设置一组数据,并对该USB加密狗进行相应的操作。另外在读狗后的数据显示中,采用4字节的格式,在0地址处读出的数据和上面的存储区里显示的数据是一致的。

结束语

本文作者提出设计的加密狗在安全可靠性保证方面考虑了更多的因素。通用型的加密狗只是考虑了加密狗本身的反解密的安全可靠性,而本设计方案还考虑到用户软件与USB加密狗结合后的运行的安全可靠性,考虑到了交互数据的完整性和信息的安全性,具有较好的专用性,具有良好的防破解能力。