研究国内软件加密狗的集成与使用
1)调研国内成熟的软件加密狗技术
软件加密及其方法:
软件加密就是用户在发送信息前,先调用信息安全模块对信息进行加密,然后发送,到达接收方后,由用户使用相应的解密软件进行解密并还原。
软件加密的方法有:
软加密:密码表加密;软件子校验方式;序列号加密;许可证管理方式;钥匙盘方式;光盘加密;
硬加密:加密狗,加密锁。软件加密和硬件加密都是实现一样的加密算法,通过外壳工具或者API接口函数进行和程序绑定加密。
网络加密:不同于使于本机软件或硬件的加密方法,网络加密由基于网络的其它计算机或设备来完成加解密或验证工作,而网络设备和客户端之间通过安全通道进行通讯。
加密狗技术
常用技术
1.AS技术: API函数调用与SHELL外壳加密结合,即使外壳被破坏,加密程序依然不能正常运行。
2.反跟踪:
a.数据交换随机噪声技术:有效地对抗逻辑分析仪分析及各种调试工具的攻击。
b.迷宫技术:在程序入口和出口之间包含大量判断跳转干扰,动态改变执行次序,提升狗的抗跟踪能力。
3.抗共享: 可从硬件对抗并口共享器,由开发商选择是否共享狗。
4.口令: 可由软件开发商设置32位口令,口令错误将不能对存储区进行读写。
5.时间闸: 某些狗内部设有时间闸,各种操作必须在规定的时间内完成。狗正常操作用时很短,但跟踪时用时较长,超过规定时间狗将返回错误结果。
6.单片机: 硬件内置单片机,固化的单片机软件保证外部不可读,从而保证狗不可仿制。
7.存储器: 提供200字节掉电保持存储器供开发商存放关键数据、配置参数等信息。
增强特性
a. 带有大容量的存储区:分为4种1K,7K,31K,63K
b. 文件管理系统,其中包括:数据文件,许可证文件,算法文件
c. 支持2级密码管理,包括开发商口令,用户口令。
d. 支持自定义算法,支持类C高级证言的自定义算法,开发商可以使用宏狗编辑工具快速的编写自己的算法,然后导入到硬件中,自定义算法在硬件中执行,上层软件通过相应的接口进行调用自定义算法文件,具有很高的安全性。
e. 支持远程升级,包括单向远程升级和双向远程升级。
f.提供了丰富的硬件属性,开发商可以自定义产品名称和流水号,方便对硬件管理和级联支持。还可以防止黑客跟踪和进行机器绑定。
g. 提供了安全订购的管理同号狗硬件的解决方案,即带序列号狗
加密狗的四代加密技术
第一代是存储器型的加密狗。这种加密狗原理非常简单,内部只有存储体,厂商只能对锁进行读、写。软件狗起信号加密变换作用的器件,最多只简单采用一些电阻、二极管等,检查方法也比较简单,很容易被人解密.常见的有原金天地的“软件狗”、深思洛克的Keypro型、Rainbow的Cplus等。这种锁的主要特点是厂商可以预先把自己的保密数据设置到锁内,然后在软件运行时随机读取,这样防止了破解者通过简单重复并口数据来破解,但破解者进一步分析一下数据规律就可以对加密狗破解了,这就是常说的“端口”层的数据分析。
第二代是算法不公开的加密狗。常见的有深思洛克狗的“深思”型狗,彩虹天地狗的SuperPro狗、微狗,ALADDIN狗的MemoHASP狗等,厂商主要是利用算法功能进行加密。加密狗通常还增加了一些辅助功能,比如倒计数器、远程升级等。软件狗采用了低功耗TTL,COMS等逻辑元件,在电路上做了一些加密工作,检查时也要比第一代软件狗多一道手续,对加密狗破解解密的难度自然也增加了。
第三代是软硬结合的加密狗。第三代加密狗是一个技术突破的旅程,加入了硬加密的概念,也就出现了USB加密狗破解的概念,“硬”的就是加密狗内的算法功能,这大大增加了加密狗破解的难度,这是掌握在加密者手中的武器。但是,加密者只能设置算法的参数,即所谓内含多少种算法可选,而算法内容并不知道。这样就限制了厂商对算法的使用,要么预先记录算法结果然后在软件运行时核对(使用码表);要么在软件中至少变换两次然后比较结果是否一致。如果破解者截获这些数据,通过统计、分析就有可达到对USB加密狗复制破解目的。
第四代软件加密狗。软件狗已经非常成熟了。在此技术上,各软件狗研制公司又加入自己的电路设计,形成了各自的产品特色。第四代软件够在第三代软件狗基础上,加入一个单片机芯片,ROCKEY2 ROCKEY4 NetROCKEY4 ROCKEY4ND如PIC16C5X。此芯片中存有特定的算法程序防止加密狗被破解复制,芯片中可将读出的密钥数据进行加密变换,以对抗逻辑分析仪。
软件加密狗构成
软件加密狗硬件由自主ASIC大规模集成电路构成。加密狗是一个专伺加密工作的密码机,负责密码变换和加密通讯等工作,当然还包含密码算法等。硬件接口支持IEEE1284标准,支持ECP/EPP/SPP并口标准,计算机和加密锁采用RSA非对称密码体制进行密码通讯。
加密锁软件开发套件包含有各种加密及对加密锁的设置工具、加密锁驱动程序、各种编程语言的接口及应用示例程序。
软件加密狗把用户定制(根据密码系数变换密码算法)密码算法写入加密锁中,并以程序的形式对调用者进行身份验证。
安全基础一: 加密狗以一个动态变化随机数形式的出现在用户程序中,出现过的数据自动失效,下一个数据不可预知。破译者不知道密钥:key1,key2,key3,key4,无法随机产生dogRandom,因而软件狗不可用软件模拟。
安全基础二: 加密者用读(read)的方式访问变量Random,任何分析工具(DEBUG)都无法跟综此操作,从根本上截断了跟综线索。
安全基础三: 加密狗内设一体化的CPU和存储器,破译者无法仿制狗的硬件电路,也无法读取狗中数据。
安全基础四: 密钥和算法以用户任意的自定义形式(如:key=a+b+c)融于用户的大量程序中,破译者要从二进制代码中获得密钥和算法的原码,其难度远大于重新编制一个新的程序。
内嵌式:这种加密方法要求具有源程序,在被加密程序中访问加密锁。加密锁的驱动光盘中提供VC\VB\VFP\CB\Delphi\PB\ASP以及Sdudio.net等各种编程语言的接口程序及详细的示例供客户参考。如果您有什么特殊要求可与我们联系。
外壳式:外壳加密是一种直接对可执行文件(.exe\.dll)加密的加密方法。这种方法不需要源程序,加密过程简单方便。比某些号称多层加密的厂商加密强度更为强悍.
一.提供加密算法源程序,实现了算法级加密,而不是从前的点级加密。与其他加密锁不同(一般内嵌加密的做法是:为客户提供一个加密模块供加密调用),加密锁为客户提供部分程序源代码,客户可以将这些算法源程序加入自己的程序中,这样,最终生成的程序是和客户自己的程序熔为一体,不存在专门的加密模块,破译者也无从找到一个专伺加密的模块去屏蔽、脱壳、解密。这种溶合加密不同于一般意义上的“内嵌”,是迄今为止国内外同类产品中唯一实现源程序溶合加密技术的高强度加密产品。
二.加密锁特有的文件完整性检测专门用于反跟踪,反破译。加密锁一旦检测到客户程序的校验码有变,则自动终止程序,保护软件,防止文件被非法篡改、分析。此功能将使得任何对开发商软件的解密企图都无从下手。
三. 系列加密锁均为高强度设计,相当于主机之外另有一台专伺加密的小主机,内置CPU,加密算法的实现在锁内独立完成,不在主机CPU中,以便防止任何跟踪、解密,也减少CPU资源占用,不影响软件运行速度。整个过程中加密锁与计算机之间通讯均做加密处理,防止任何端口截获。
四. 锁内给用户提供二次开发区,软件开发商可在上面做很多工作,完成自己的二次加密。
五. 硬件实现自动跨平台,在不同的系统平台下加密锁硬件往往需要更改其驱动程序。这给加密者和软件使用者都带来极大的不方便。驱动程序不兼容不仅降低了开发商软件的"友好性",由此可能影响到软件的销售。因此,加密锁自带一套通用驱动,在不同平台下无需更换、重装加密锁驱动程序。
六. 加密过程中,数据使用随机数作加密判断,因此,数据使用一次性失效,跟踪分析几乎是不可能。同时使用随机数据干扰等技术来对抗逻辑分析仪器、调试工具和仿真软件的分析、软模拟。
软件加密方式
目前正在采用的加密方法可分为两大类:钥匙盘方式和加密狗方式。加密狗,也是目前流行的一种加密工具。它是插在计算机并行口上的软硬件结合的软件加密产品。加密狗一般都有几十或几百字节的非易失性存储空间可供读写,有的内部还增添了一个单片机。软件运行时通过向并口写入一定数据,判断从并口返回密码数据正确与否来检查加密狗是否存在。此种方式不易被硬解密,因而具有加密可靠等优点。但它也存在一大缺点是成本较高,并且用户使用很不方便。若用户购买了几种带加密狗的软件,在使用不同软件或更换微机时要不断将狗换插,给用户增添了很多麻烦。
什么是软解密
所谓软解密就是针对加密产品,一方面是利用软件监测分析软件在运行时向加密点写了什么数据,从加密点返回了什么数据,然后在运行软件前先在内存驻留自编程序监视加密点,当软件向加密点写数据时,软件自动代替加密点并返回相应数据。这样,用软件模拟了加密产品。另一方面是从软件着手,寻找软件调用加密点函数部分,修改判断加密点是否存在的语句,将程序直接跳转到正常执行的部分。此种方式的解密缺点是会造成软件的稳定性下降,并有可能解密不彻底而造成软件运行出错!
什么是软复制
所谓软复制就是针对加密产品,用相关的工具读出原版狗的狗数据,写入到相同型号的加密狗中,同时修改软件中与加密狗对应的绑定数据,而达到复制的目的。不同品牌的加密狗有不同的特征数据,例如Rockey 4加密狗,与软件相关的特征数据就是加密狗的密码,因此把软件中的密码改成自己手上的加密狗的密码,就达到了软复制的效果。此种方法的优点是保持原版软件的稳定性,杜绝了解密不彻底的现象;缺点是不支持软件的升级,软件升级后需要重新手动修改软件的特征数据;对于加有强壳的软件,此方法也不太可行。
什么是硬复制
软件开发商为了保护软件不被随意复制,采用了硬件加密的方式,通常市面所见的有USB硬狗和并口硬狗两种,狗的类型有Safenet、深思、飞天Rockey、域之天、以及以色列Hasp等等,通常这些狗无法直接读取数据,但是采用专门的设备如读卡器,可以读出硬狗里面的相应加密数据,并且是用写卡器可以把数据完美的写入空狗,从而实现完美复制的硬狗。当然这仅仅适用部分硬狗,不能一概而论。另外的一种方法是利用软件的方法来硬复制,有些品牌的加密狗为了生产方便,会留有某些后门来更改狗的数据的,因此可以利用软件的办法来对加密狗里面的内容进行读出,修改相关的特征数据后再写入到狗中,从而达到硬复制的目的。本站独创的Rockey4硬复制技术正是利用此技术来达到硬复制的效果。
什么是硬模拟
硬模拟是针对于智能狗(如rockey 6,sense 3,sense4)而言,由于智能狗内的程序及数据文件无法读取,因此通过分析软件及结合原狗,将狗内的程序算法推算出来,或者监控软件调用原狗的入口出口数据,通过自己写程序来模拟原狗返回给软件的数据,以达到复制的目的。此方法需要比较强的分析能力才能做到,因此市面上出现的此类加密狗硬复制狗,实际上是硬模拟,不是真正意义上的硬复制,因为狗的程序是无法获取的,因此很多客户很容易上当,以为是硬复制的加密狗。
什么是虚拟狗
虚拟狗是加密狗复制里面的比较高级的软模拟方法,虚拟狗是一种虚拟总线设备,通过特殊的内核驱动程序与加密狗的驱动程序进行通讯,可以形象地称为虚拟狗是电脑上的加密狗,俗称软件狗。虚拟狗的好处是不需要修改软件,不需要修改驱动程序,功能上和硬件狗完全一样。编写虚拟狗程序除了需要极高的软件编程能力外,更是要对虚拟的狗的特性十分了解,才有可能编写成虚拟狗,因此这类技术的技术含量非常之高,不是一般人能实现的。
何为模拟驱动,何为版本无关
如大家所知,windows下软件在调用硬件时要通过驱动程序来实现对硬件的操作,硬件对于软件来说仅是驱动程序所提供的接口。此驱动的接口通常是由软狗公司提供,而且一般是不改变的。而此接口具体如何实现软件是看不到的。模拟驱动就是通过模拟此软件和硬件之间的接口,而通过软件编程来实现此接口的功能,将加密狗的数据硬件编码在驱动程序内,将加密狗的算法移植到驱动程序内,如此对于软件而言就好像在操作一个真正的硬件一样。不管软件版本如何变化,驱动的接口并不改变,由于驱动和软件程序文件是分离的,不需要更改程序文件,实现模拟驱动和软件的版本无关。
2)在FreeBSD下实现基于软件加密狗的测试程序
a. 实现多个子功能的软件许可管理(过期控制、基于许可证书的功能限制等)
超级狗可以帮助软件商实现什么?
防止软件盗版、防止逆向工程
通过增强的外壳保护和API两种方式,实现高强度保护。
控制软件的使用期限、时间
发行试用版或者实现按时间订阅的软件销售模式。
您可以根据用户的交费情况,停止、延续或升级用户的软件许可。
控制软件使用次数
发行试用版或者实现按次计费的软件销售模式。
控制软件的功能模块
用户购买什么功能,就开通、升级什么功能。量体裁衣式的销售模式可以让您赢得更多销售机会。
实现基于Web应用程序的用户访问授权
最终用户在电脑端插入超级狗,即可访问对应的Web程序。使用超级狗进行用户认证(非证书方式)。
在新版本中,此功能安全性进一步增强:
每个认证锁有唯一的认证密钥
基于开发商。某开发商的认证锁只能与该开发商的服务器进行认证并接入。黑客没有通用的破解手段
采用了安全通道,AppOnChip技术
支持多种浏览器,包括IE,Firefox和Chrome。
保护多媒体课件
超级狗对于保护视频、音频文件来说,有非常明显的优势:
无论您是否自带播放器,都可以保护。当您没有自带播放器时,超级狗提供通用插件。最终用户在插入超级狗硬件后,即可通过自带的IE浏览器或Windows Media Player 播放。
您可以控制多媒体文件的播放次数或时限。
您可以允许用户试听、试看影音文件,在用户付费购买后,通过超级狗硬件访问全部文件内容。
支持基于安卓的课件保护。
支持多种视频格式,包括flv, swf, avi, wav, mpg 和 mp3等。
新 - 提供安卓平台下的应用保护与授权
提供Java语言的API保护
外壳保护安卓下的Java程序
b. 整理归档加密狗的集成方法
文章网址: http://www.williamlong.info/archives/705.html
文章时间: 2006-11-27 21:19:56
文章标题: 国内软件加密锁产品评测
软件加密锁(俗称加密狗)是一种加密安全强度最好的加密产品,所谓加密锁,就是一个安装在计算机并口或USB口上的一种特殊硬件,应用软件通过和这个硬件的通讯来确保软件不被盗版。目前市场上流行的加密锁产品很多,有美国SafeNet的圣天诺加密锁系列、HASP、深思洛克等,下面,我就将对目前常见的硬件加密锁(加密狗)进行一些技术上的评测,供软件开发商们参考。
名称 |
圣天狗 |
Hasp HL |
Sentinel SuperPro |
外观 |
|||
供应商 |
美国SafeNet |
以色列Aladdin |
美国SafeNet |
存储空间 |
8K |
4K |
112字节 |
加密算法 |
128位AES/ECC |
128位AES/RSA |
DES |
芯片 |
MCU芯片 |
独家芯片 |
ASIC |
支持接口 |
USB,不支持并口 |
USB,不支持并口 |
USB和并口 |
稳定性 |
可以保存数据10年 |
数据保全:最小10年 |
可以保存数据10年 |
远程升级 |
支持 |
支持 |
支持 |
产地 |
美国 |
以色列 |
美国 |
参考价格 |
100-200元 |
100-200元 |
50-100元 |
自己宣称的特点和优势 |
圣天诺加密锁保持行业内最高的可靠性,硬件故障率低于万分之一。 |
采用128位密匙的公共AES算法,具有超强的防盗版性能。 首创的应用程序封装技术,提供了: 防逆工程保护,代码混淆,防范动态调试和防调试器。 |
SafeNet 在 2004 年推出全新硬件的 SuperPro USB ,支持 SuperPro 7.0 的所有新增功能,更拥有 512 字节( 256 存储单元)的大容量以配合高级许可机制和高级安全应用, SuperPro USB 锁比 SuperPro 并口锁( 128 字节)多 384 字节,也就是多了 192 个存储单元。 提供更大存储空间的同时, SuperPro USB 的安全性也大大增强。它应用抗黑客技术,有效阻止对写锁密码的恶意攻击。 |
加密强度 |
圣天狗与应用程序的通讯,采用公钥加密及128-bit AES加密机制。中间层的入侵方式,如监听与仿真,驱动程序的替换等都被有效的遏止。每次应用程序和硬件锁间的通讯,都会使用一个独立的加密密钥,让黑客无法暴力破解。圣天狗包括了内部验证,可以有效地预防圣天狗被复制。 |
HASP HL通过仅允许当加密锁连入计算机才可以对被保护的软件进行访问读取和执行,来防止盗版和非法使用的。HASP HL集合了一个高度安全,无法渗透破解的编码引擎。运行时,被保护的软件发送一个经过编码的字符串给HASP HL, HASP HL对该字符串解码并产生一个无法仿造复制的返回值。如果从HASP HL返回的值正确, 则该应用程序可以运行。如果没有连入HASP HL或者返回值不正确,则该应用程序不能运行。 HASP HL使用国家标准技术局(NIST)制订的高级加密标准。 |
超强锁把复杂的软硬件技术结合在一起以防止非法发布和使用开发商软件。 |
名称 |
深思洛克精锐IV |
飞天诚信ROCKEY6 |
外观 |
||
供应商 |
北京深思洛克 |
北京飞天诚信 |
存储空间 |
8K和32K |
70K |
加密算法 |
RSA/3DES |
RSA/3DES |
芯片 |
菲利浦16位智能卡芯片 |
中兴通讯32位智能卡芯片 |
支持接口 |
USB,不支持并口 |
USB,不支持并口 |
稳定性 |
10万次擦写寿命 |
10万次擦写寿命 |
远程升级 |
支持 |
支持 |
产地 |
北京 |
北京 |
参考价格 |
50-100元 |
50-100元 |
自己宣称的特点和优势 |
芯片自锁功能——软件对芯片的访问首先由PIN码保护,PIN码的尝试次数可由软件开发商设定。当非法用户利用字典攻击的情况出现时,如果次数超过设定值以后,芯片会自我锁定,外界一切对芯片的操作均被停止。 |
采用中兴通讯的32位智能卡加密锁、内置C51虚拟机;自主知识产权的COS系统—FEITIAN COS;提供Keil 试用开发环境;全球唯一硬件ID与管理编码;丰富的虚拟机系统调用和开发接口,支持双精度浮点的多种数学运算;强大的文件系统管理,用户可定义多种数据类型和安全级别;方便、安全的远程升级和模块管理功能;内置计数器。 Rockey6Smart采用的是32位的智能卡芯片,浮点运算能力是目前最快的。能满足多数运算要求。 |
加密强度 |
精锐IV采用的是PHILIPS最先进的16位智能卡芯片,其达到了目前全球科技产品领域最高安全级别——EAL5+。深思洛克向用户承诺精锐系列采用的核心智能卡芯片完全能够对抗主要的芯片攻击手段,确保产品安全性。 |
ROCKEY6 SMART采用的中兴通讯的32位智能卡芯片,该款芯片已经通过国家密码局资质认证的,并为其编号SSX20,2005年7月,SSX20安全芯片获“中国电子信息产业集团公司科学技术进步二等奖”。 飞天的另一款产品ROCKEY4 SMART使用的是ST的进口芯片,该款芯片是通过了国际安全机构检测和认证(EAL 4+和IT SEC认证)。 |
1、Sentinel SuperPro为比较老的产品,其存储空间最小,加密强度也小,其他产品为较新的产品。
2、AES为目前公认的最强的单钥加密算法,以目前电脑运算速度,在地球灭亡之日也是无法解开128位的AES密钥。而DES为70年代的算法,超级计算机可以在数天内解开其密钥。
3、ECC(椭圆曲线)是最新的双钥加密算法,通常认为其比70年代的RSA算法速度快,安全性高。
4、硬件加密锁的安全性在于其芯片的安全,芯片是不可复制并且具有保密、自毁等功能,目前评测产品中除了飞天锁外所有核心芯片全部来自国外。其中深思洛克精锐IV和飞天ROCKEY 6 Smart使用的是智能卡芯片,其他为单片机芯片。
5、美国政府基于国家安全的考虑,对中国出口的加密产品在密钥长度上进行了严格限制,例如早期出口至我国的软件产品(如IE等)采用的密钥长度为40位(40位的密钥业余玩家都可以在几天内破解),而通常认为128位的密钥才能满足军用安全的需要。中国军用企业被美国法律禁止购买美国的128位加密产品。
6、飞天诚信的ROCKEY 6 Smart加密锁使用的是国产的深圳中兴通讯的智能卡芯片,这种加密锁的核心芯片没有进口,因此较适合政府或者军方使用。
7、32位智能卡芯片的浮点运算速度快于16位的智能卡芯片,对于经常调用RSA等函数有很大好处。
问题:
a.机密狗是插在哪里用
1:插在freebsd上用,直接在freebsd平台进行验证加密狗。
2:插在客户端,比如在windows客户端或则linux客户端,服务器进行远程授权验证操作。
b.加密狗什么类型的
1:纯软件形式,比如授权文件或者序列号等
2:软硬件形式,比如插入USB加密狗授权的形式