更新时间:2024-07-22 19:51
加密锁是一种插在计算机并行口上的软硬件结合的加密产品(新型加密锁也有usb口的)。一般都有几十或几百字节的非易失性存储空间可供读写,现较新的狗(加密锁)内部还包含了单片机。软件开发者可以通过接口函数和加密锁进行数据交换(即对加密锁进行读写),来检查加密锁是否插在接口上;或者直接用加密锁附带的工具加密自己EXE文件(俗称“包壳”)。这样,软件开发者可以在软件中设置多处软件锁,利用加密锁做为钥匙来打开这些锁;如果没插加密锁或加密锁不对应,软件将不能正常执行。
介绍了国内加密狗的由来及发展历史,给出各代加密狗的硬件组成及工作原理。详细讲解了第四代加密狗独特的加密方法与其强大的硬件组成。
加密狗是一种用于软件加密的小型外置硬件设备,常见的有并口与USB接口两种类型,加密狗被广泛应用于各种软件之中,其中如著名的绘图软件AutoCAD,国内相当数量的工程软件与财务软件等。加密狗的成功应用,翻开了软件知识产权保护的新篇章。
国内最早的加密狗是由现北京彩虹天地信息技术有限公司总经理、董事长—陈龙森先生在1990年提出并设计完成的。他的想法是,把一个小的硬件装置加载到微机的并行口上,其中内置几个逻辑芯片,作为核心的是一个计数器;然后通过软件,向外加的硬件装置发送脉冲信号,并等待返回信号,如果有,则表明外部存在硬件设备,否则就视作非法运行,被加密软件停止工作。因此,陈龙森设计的软件中,专门设有一个模块,用来读取并行口上的硬件信息。软件开发的技术人员,可以把实现此项功能的软件模块,加载到任何需要对用户信息判断的地方,进行编译连接,从而就能形成可以保护自身的软件产品。
加密算法可以把一个数字或字符变换成一个整数,如DogConvert(1)=17345、DogConvert(A)=43565。下面,我们举个例子说明单片机算法的使用。 比如一段程序中有这样一句:A=Fx(3)。程序要根据常量3来得到变量A的值。于是,我们就可以把原程序这样改写:A=Fx(DogConvert(1)-17342)。那么原程序中就不会出现常量3,而取之以DogConvert(1)-17342。这样,只有软件编写者才知道实际调用的常量是3。而如果没有加密锁,DogConvert函数就不能返回正确结果,结果算式A=Fx(DogConvert(1)-17342)结果也肯定不会正确。这种使盗版用户得不到软件使用价值的加密方式,要比一发现非法使用就警告、中止的加密方式更温和、更隐蔽、更令解密者难以琢磨。
最新进展
最新的硬件加密原理
随着解密技术的发展,单片机加密狗由于其算法简单,存储空间小,容易被硬件复制等原因,正逐渐被市场所淘汰。以北京深思洛克软件技术股份有限公司为首的国内加密狗厂商研发出稳定性更好、存储空间更大(最大为64K)、有效防止硬克隆的第四代加密狗——‘’智能卡‘’加密狗,‘’智能卡‘’加密狗以其独创的‘’代码移植‘’原理,已经被国内大型商业软件开发商如擎洲广达、金蝶、用友、CAXA、广联达、神机妙算、鲁班……所采用。
以世界上第一款智能卡加密锁——精锐IV为例,简单介绍一下‘’代码移植‘’原理。
‘’代码移植‘’加密原理为一种全新的、可信的软件保护模型,工作原理为:软件中部分代码经过编译,‘’移植‘’到加密锁硬件内部,软件中没有该段代码的副本。
在这套软件保护方案中,PC端应用软件的关键的代码和数据‘’消失‘’了,被安全地移植到精锐IV型加密锁的硬件中保护起来。在需要使用时,应用软件可以通过功能调用引擎来指令精锐IV运行硬件中的关键代码和数据并返回结果,从而依然可以完成整个软件全部的功能。由于这些代码和数据在PC端没有副本存在,因此解密者无从猜测算法或窃取数据,从而极大程度上保证了整个软件系统的安全性。简言之,精锐IV提供了一套可信的解决方案,从理论上保证软件加密的安全。
提出一种直接用在计算机并行口上,通过与计算机进行数据交换来识别计算机端软件合法性,从而控制软件运行权限的硬件加密锁及其实现方案。加密锁以单片机为主控芯片,以不影响计算机正常使用打印端口为设计原则,以现代加密技术为安全认证核心。并分析了计算机与加密锁数据交换原理、软件设计、认证协议和可靠通信的方法。通过测试,证明设计方案实用、可靠。
加密锁软件设计包括计算机端的软件设计和加密锁端的软件设计。计算机端的软件主要是给应用软件提供调用的函数模块。包括认证驱动模块、会话密钥产生模块、加密解密模块、数据交换模块。其中,认证驱动模块产生认证请求,如根据时间或事件产生认证请求,当认证事件发生后,应用程序调用其它模块,通过与加密锁通信来确定当前应用软件的合法性。会话密钥产生模块向主调程序返回一定比特数的伪随机数作为会话密钥。加密解密模块对给定的明文和密钥计算出对应的密文,或者对给定的密文和密钥计算出相应的明文。数据交换模块将计算机中指定的数据发送到加密锁,并接收加密锁返回的数据或确认信号,并在其中设置超时时间,当超时次数大于指定次数时,认为加密锁未接在并行端口上,或加密锁非法。程序采用标准C语言编写,易于跨平台使用。
为了实现计算机和加密锁的可靠通信,采用以下方法:首先,在通信的数据中增加一个校验字节,发送方在发送数据时计算校验字节,放在其通信数据的最后,而接收方接收到通信数据后首先验证校验字节,如果正确则进行正常的数据处理,否则向发送方返回非确认信号,从而建立起错误重发送机制。其次,加密锁平常是处于空闲状态的,只有在计算机与加密锁通信时才使加密锁处于激活状态。为了识别出计算机使用打印机与计算机和加密锁通信这两种情况,计算机在与加密锁认证之前,向打印口连续发送‘’0XFF‘’信号,以正确激活加密锁。
相比于传统的加密方案,市面上又出现了一种新型加密狗,Synaptics宣布了一种新的微型USB加密狗方案,可以插在任何笔记本上,使之立刻具备指纹识别功能。
该方案基于Synaptics Natural ID安全指纹识别技术,并通过了FIDO安全认证,兼容新广泛,并完全支持Windows Hello、Microsoft Passport。这个小家伙非常迷你,插到USB接口上也几乎感受不到,不会占用多少空间。Synaptics称之为‘’交钥匙方案‘’,也就是OEM、ODM厂商可以直接就拿来做成成品并销售,也可以绑定在笔记本上。
随着解密技术的日益升级,对加密锁的安全性提出更高要求。传统的智能型可编程加密锁主张的是‘’代码片移植‘’——将被保护程序母体分点式镂空,这个从理论上说是安全的,但是实际并非如此,有以下两点原因:一是,从已有程序母体中抽出待移植代码片是一件比较困难的事情,所以抽出的代码逻辑大多数都相对较简单;二是,由于加密锁本身的硬件执行效率限制,复杂的算法在锁中运行效率将是个最大的瓶颈。
1、擎洲广达工程计价软件
2、广联达造价软件
3、清华斯维尔造价软件
4、神机妙算造价软件
5、鲁班造价软件