软件狗[Dongles]的加密与解密技术(6)
来源:龙人计算机研究所 作者:站长 时间:2006-11-04 11:22:31
第四代软件狗硬件设计思想 现在,我们给出第四代软件狗的一个实例,供大家参考。我们采用PIC16C54结合93C46来设计。
以并行口(DP25)的第9脚DATA7作为主电源,而以16脚—INIT为辅助电源。这样做,可以避免PIC16C54的电源因DATA7的变化而时有时无。-INIT脚的输出是很弱的,所以为了降低功耗,当DATA7为LOW时,就令PIC16C54的振荡频率降低到100kHz以下。这是通过对电阻R2的控制实现的。DATA 7为HIGH时,R1与R2并联,总的电阻小于100K欧,振荡频率大于100kHz;当DATA7变为LOW时,R1就与R2断开,总的电阻等于100K欧,振荡频率就小于100kHz,使得PIC16C54处于低功耗状态。PIC16C54的RTCC脚是用来监视并行口的-STROBE脚。因为当-STROBE出现负脉冲时,表示并行口有数据要送入打印机,所以此时软件狗不能工作。而RA0是用来监视并行口的-SLCTIN脚的,当-SLCTIN为HIGH时,打印机不会工作,这时候与软件狗通讯比较合适。
在我们的电路中采用了93C46,但它并不是必须的。因为它的用途是来记录一些密码,序号等数据,如果采用OTP型,每一个芯片本身就可以存储不同的密码,是用不着外接存储器的;但在大批量生产MASK时,它是必须的,要不然,所有的软件狗就一个样了,这不符合加密原则。
第四代软件狗在硬件电路方面没有什么好变化的,最多也就仿照第三代软件狗的做法,但是在软件方面,由于采用了单片机,尽可以根据各人的巧心思,进行自由的发挥。
2、第四代软件狗的一个软件设计
(1)在DATA7及-SLCTIN为HIGH时才能工作。
(2)工作期间如-STROBE有负脉冲则软件狗停止工作。
(3)建立128BYTES循环式的密码表,以数据口送出去的第一个BYTE为密码的起点,并以BIT2决定所要核对的密码是七次或八次。
(4)送出数据的方式采用从数据口出,前后两个数据XOR后所得的值为所要传送的数据。
(5)所有密码核对正确后,有-SLCTIN脚以约100ms的负脉冲,以串行方式从-ACK脚在上升沿时读回密码表的下一个密码供PC机核对。
根据这个原则,我们可以卸出一个比较好的软件狗程序,足以另解密者头疼很长时间了。有兴趣的朋友不妨自己编一编,解一解看。
这是当前软件狗加密技术中比较好的一个解决解密问题的方案。别人想要仿制您的软件狗,一般是不可能的,除非找到读出单片机中程序代码的工具。
以智能卡技术为核心构建的新一代加密锁的安全特征(新一代加密锁介绍)
IC智能卡以其可靠的安全保障性能广泛应用于军事、金融、保险等国民生计的重要领域。以智能卡技术为核心构建的新一代高强度加密产品,也因此具备了极为优越的安全性能。
改进之一:重要软件代码完全移植到硬件中运行
在新型锁软件保护的方案中,PC端应用软件的关键的代码和数据“消失”了,被安全地移植到加密锁的硬件中保护起来。在需要使用时,应用软件可以通过功能调用引擎来指令加密锁运行硬件中的关键代码和数据并返回结果,从而依然可以完成整个软件全部的功能。由于这些代码和数据在PC端没有副本存在,因此解密者无从猜测算法或窃取数据,从而极大程度上保证了整个软件系统的安全性。
利用智能卡技术的新一代加密锁最多可提供总计高达32~64K字节的程序和数据空间,可容纳近万行的C语言代码。
改进二:强大的运算处理能力
利用智能卡技术的新一代加密锁具有强大的运算和数据处理能力,能够支持浮点运算库、数学函数库、安全服务库、标准输入和输出库等;这些对提高加密强度起着至关重要的作用。
改进三:智能卡芯片具有极高的安全性
智能卡芯片具有很高的集成度,与普通低档的单片机不同,只有已通过国际安全机构检测和认证(EAL 4+和IT SEC认证)的专业安全芯片制造商才能提供智能卡芯片。
智能卡芯片能够有效抵御电子探测攻击(SPA和DPA)和物理攻击(SiShell),其在硬件设计阶段就提供了完善的安全保护措施。它通过芯片厂商开发,通过产生额外的噪声和干扰信号,或通过增加滤波电路来消除噪声,再加上若干保护层,采用特殊的材料(对电子束敏感的材料)等,使监测芯片内执行的指令序列不可能实现。同时智能卡芯片提供了硬件随机数发生器,在CPU 的控制下,每次芯片与外界数据传输中,产生的随机数可以保证数据不会重复。
为了保证智能卡芯片的可靠性和可用性,国际权威技术标准管理机构ISO为此专门制定测试标准――ISO/IEC 10373,其中就明确了智能卡在紫外线、X射线、电磁场下的测试要求。1999年,ISO推出了安全芯片技术的新标准ISO/IEC 15408,新标准对智能卡芯片的防物理攻击能力提出明确要求。
符合以上标准的智能卡芯片具有以下防物理攻击的功能:
◆通过烧断熔丝,使测试功能不可再激活(测试功能是智能卡芯片制造商提供的对智能卡芯片进行全面检测的功能,这一功能对智能卡芯片具有较大的操作性,不能激活测试功能将大大提高智能卡芯片的安全性);
◆高/低电压的检测;低时钟工作频率的检测;
◆防止地址和数据总线的截取;
◆逻辑实施对物理存储器的保护(存取密码等);
◆总线和存储器的物理保护层等。
此外,智能卡芯片还具有一些软件保护来说极为有用的安全功能:
芯片自锁功能――软件对芯片的访问首先由PIN码保护,PIN码的尝试次数可由软件开发商设定。当非法用户利用字典攻击的情况出现时,如果次数超过设定值以后,芯片会自我锁定,外界一切对芯片的操作均被停止。
全球唯一序列号――智能卡芯片具有全球唯一序列号,不可更改。这可以杜绝冒用的情况发生,同时也可以对已发行的产品进行有效管理。如果软件开发商与加密技术供应商合作,可以获得提供特殊序列码区段控制服务,这几乎可以从根本上解决硬件的复制仿冒问题。
硬件随机数发生器(白噪声技术)――用于产生高强度随机数。除对称算法生成密钥需要外,随机数在安全加密领域具有非常重要和广泛的应用,因此,硬件本身带有高强度随机数发生器对安全而言意义重大。
硬件时钟定时器 ――是软件计时使用、反跟踪等常用软件保护手段中必备的功能。
改进四:智能卡技术的核心――操作系统COS
COS(卡片操作系统Card Operating System)存放在智能卡芯片上,是一个比较小但非常完整、严密的系统。COS管理着智能卡的一举一动,智能卡整套系统的安全性除一部分由芯片设计生产厂商保证外,大都由COS开发商实现。
COS 主要分为四部分:通讯管理、文件管理、安全管理和应用管理。国际标准化组织 ISO 已经对智能卡的物理和电器指标以及应用标准做出较详尽的规定――ISO7816,有关智能卡与外界交换信息的电气指标以及指令格式在ISO7816――3&4中有详细的规定。
开发COS系统是有相当大的难度和工作量的,需要投入很大的人力、物力;任何不按标准快速开发出的芯片控制系统很可能存在导致巨大安全隐患的设计缺陷。而采用第三方厂商的COS系统组合而成的产品由于其核心技术不太可能由加密锁厂商完全掌握控制,系统的安全性依赖于第三方COS厂商,由此也增大了用户的安全风险。
因此,利用智能卡技术开发软件加密保护类产品,从安全性、效率、稳定性、可靠性等各方面来说,核心的COS系统必须具有自主版权而且完全符合国际标准ISO7816。
(加密技术未完待续)
软件狗解密技术(待续)
软件加密技术和解密技术是矛与盾的关系,总是形影不离,当有了一项新的加密技术的时候,过不了多久,相应的解密技术也就诞生了。有时候,一项绝妙的解密技术也能使加密技术的研制这痛苦半天,反之怡然。如此纠缠,何时方休:回答是,永远完不了。唯一的出路,就是普遍提高人们的素质,寻求版权保护。切实做好产品的服务和质量,以此增强人们对您产品的吸引力,而不想去使用盗版产品。。。