更新时间:2023-12-12 21:28
一般都有几十或几百字节的非易失性存储空间可供读写,来检查软件加密狗是否插在接口上;或者直接用软件加密狗附带的工具加密自己EXE文件
软件加密狗的工作原理:
我们举个例子说明单片机算法的使用。 比如一段程序中有这样一句:A=Fx(3)。程序要根据常量3来得到变量A的值。于是,我们就可以把原程序这样改写:A=Fx(DogConvert(1)-12342)。那么原程序中就不会出现常量3,而取之以DogConvert(1)-12342。这样,只有软件编写者才知道实际调用的常量是3。而如果没有软件加密狗,DogConvert函数就不能返回正确结果,结果算式A=Fx(DogConvert(1)-12342)结果也肯定不会正确。这种使盗版用户得不到软件使用价值的加密方式,要比一发现非法使用就警告、中止的加密方式更温和、更隐蔽、更令解密者难以琢磨。此外,软件加密狗还有读写函数可以用作对软件加密狗内部的存储器的读写。于是我们可以把上算式中的12342也写到软件加密狗的存储器中去,令A的值完全取决于DogConvert和DogRead函数的结果,令解密难上加难。不过,一般说来,软件加密狗单片机的算法难度要低于一些公开的加密算法,如DES等,因为解密者在触及软件加密狗的算法之前要面对许多难关。
最新的硬件加密原理
全球最先进的圣天狗中引入了双算法安全通道技术,在通讯中同时采用128位AES算法及160位ECC算法作为通讯加密手段,每一次数据传输都用128位随机密钥AES算法对其加密,而这个随机的密钥又用160位ECC算法加密,在随后传输。由于ECC是非对称算法,加密和解密的密钥并不相同,如果其中一组密钥可以用黑客手段从内存中获得,那么另外一组烧录在硬件狗中的密钥,黑客无法获得。无法获得两对ECC密钥,也就无法破解ECC加密的数据,从而无法获得AES密钥,也就无法破解整个通讯过程。这一双算法安全通道技术彻底解决了通讯监听破解的难题,传统的对称算法加密,黑客只要从内存中获得其加密密钥,就可以破解整个通讯过程。
软件加密狗通过在软件执行过程中和软件加密狗交换数据来实现加密的.软件加密狗内置单片机电路(也称CPU加密算法是不可预知、不可逆的。加密算法可以把一个数字或字符变换成一个整数,如DogConvert(1)=17345、DogConvert(A)=43565。
软件加密狗是为软件开发商提供的一种智能型的软件保护工具,它包含一个安装在计算机并行口或 USB 口上的硬件,及一套适用于各种语言的接口软件和工具软件。软件加密狗基于硬件保护技术,其目的是通过对软件与数据的保护防止知识产权被非法使用。
软件加密狗可以保护的编程语言是随着计算机的硬件及操作系统的发展而不断变化的。
上世纪80年代,个人计算机主要为AT、286等机型。个人机的操作系统主要是DOS,企业服务器的操作系统主要使用Novell的Netware。开发软件狗保护软件的工程师需要通过修改DOS的INT21、INT10方法,加密DOS下的EXE文件,或者通过提供特定的API的方法,为Turbo C、Fortran、basic等编程语言提供加密。
此后个人机的操作系统经历了Windows、Windows 95 、Windows2000、Windows NT、XP等升级换代,保护EXE文件的手段也从DOS驻留程序,变为编写VXD、SYS等方法。编程语言也涵盖了:MASM、Turbo C、VC、Watcom C for NetWare、Watcom C for x86、NDP C for x86、NDP FORTRAN、Visual Foxpro、Clipper、LISP for AutoCAD等数十种。
随着加密狗硬件处理能力的不断增强,计算机USB端口的普及,对软件的保护逐渐开始依赖于通用的加密算法,而不再只依赖于加密软件的加密编程技巧。使用动态链接库、控件等方式已经可以满足大部分编程工具软件的保护需求。加密狗厂家也就从逐一为不同的编程工具软件定制API中解放出来了。