软件加密狗,是一种插在计算机
并行口上的软硬件结合的加密产品(新型软件加密狗也有usb口的)。一般都有几十或几百字节的非易失性
存储空间可供读写,较新的狗内部还包含了
单片机。
一般都有几十或几百字节的非易失性
存储空间可供读写,来检查软件加密狗是否插在接口上;或者直接用软件加密狗附带的工具加密自己
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中解放出来了。