本文转自 http://www.williamlong.info/archives/719.html
前一段时间我介绍了不少软件加密技术和软件加密锁厂商,使用软件加密锁的确可以方便的保护软件开发商的应用软件,但是需要多付出加密锁的成本,并且也未必能够保证永远不会出现加密锁被破解的情况。
今天,我将介绍一种不需要加密锁的新产品技术:软加密产品激活技术,这种技术也能保护软件产品的技术,还可以节省大量的加密锁费用,能加快物流、渠道的供货速度,是一个成本低廉、功能强大且高效的软件保护技术。
软加密产品激活技术是一种软件知识产权保护技术,用来识别软件产品是否经过合法授权。这一技术操作简单,轻松易行。可以节省硬件加密锁的成本,具有不错的加密效果,目前为世界上不少软件公司使用。下面我将详细介绍一下软加密网上激活的具体实现技术以及详细的实现方案。
1.产品概述
软加密网上激活系统是一种纯软件方式的许可证(License)管理系统,用来验证软件产品是否有合法的使用许可。它将软件开发商开发的产品绑定在特定的计算机“硬件指纹”上,即计算机的硬盘号、网卡号、主板信息等特征参数,只有经过授权的计算机可以运行指定的产品。
加密系统可以提供多种计算机指纹,既可结合使用,也可单独使用。如果主锁定指纹失效,只要后备锁定指纹有效,软件仍能运行。根据软件开发商软件的特点和最终用户的需要,开发商可以定义多种许可证类型,建立无物流的数字化销售服务渠道。
软件激活平台(网上注册服务)提供基于许可证的保护方式。灵活的许可证管理机制与基于互联网的软件激活平台将软件保护与销售服务模式紧密结合。用户购买软件后可以通过Internet获得许可证授权,激活产品,整个过程快捷、方便、简单并且不需要任何费用。
2.产品特点
目前几乎所有高强度的软件加密都采用了硬件加密锁,但是在大大提高软件加密强度的同时,加密锁的引入也提高了软件的成本。因此这种加密技术通常只有在售价较高的软件里得到应用,对于低价格的小型软件,可以考虑使用软件加密技术来节约成本,减低故障率,并保证相应的加密性能,达到高可靠性、低成本、低故障率,使得加密的有效性,产品的兼容性和稳定性得到保障。
3.应用方案
3.1.应用流程
在软件发行之前,首先由加密软件进行特定的处理。软件安装完后,软件与本机的某些特征建立关联,比如,软件可以以一定的方式采集硬件的指纹信息,产生一个特定字符串。用户软件在正式使用前需要激活,通常是在付款后将字符串发送回软件厂商,软件厂商确认合法用户的身份后,根据用户字符串产生一个钥匙串并发送给用户。用户使用钥匙串激活软件,开始使用。使用这种方式,软件厂商可以向用户提供试用版软件,用户在试用后如果认为合适,可以购买许可证来取消时间或功能的限制。当用户数量增加时,只要增加许可证的数量就可以了。在这种方式下,加密软件不仅可以使用软件的方式实现软件的保护,也可以使用硬件方式作为激活条件,这样的安全强度更高。这是由软件厂商来控制和选择的。
软件安装的时候,自动读取计算机中可以用于加密的指纹数据,然后根据特殊的加密算法,计算出该计算机特有的唯一锁定码。此锁定码以字符串的形式提供。为了控制和跟踪特定软件的销售使用情况,安装的时候,用户必须输入开发商定义的,与软件一一对应的产品序列号。
在因特网上通过软件激活平台也可以提供用户在线注册。注册的时候,用户除了提供名称、地址等联系方法外,还要提供锁定码和产品序列号。注册过程中将要使用一个专家库,用来审核和记录网络授权以及付款信息。例如,可以审核产品序列号是否有效、同一个序列号以前是否使用过、以前使用过的序列号是否正在被安装到另一台计算机(因为标识号可以区分不同的计算机)、是否允许同一个序列号安装到不同的计算机上。通过以上功能,可以控制一个软件的安装次数,并且可以根据版权要求允许或者禁止将同一个软件安装到不同的计算机中。最后,将有关用户的信息记录到数据库中,以便在将来的安装或销售中使用。
接下来激活平台生成了软件的激活码。生成激活码的时候,可以设置另外一个参数设置库。因为计算机中可以使用的软硬件参数很多,但是由于软件的特点和用户的实际情况,并不是所有的参数都可以使用。根据实际情况选择便于使用的参数,并且根据实际变化进行必要的修改。此外,还可以设置对软件执行的控制,例如:生成可以永久使用的正式版本,也可以生成在时间或使用次数上加以限制的演示版本。激活码生成器首先将锁定码进行解析,得到用户计算机中各项指纹参数的具体值,然后根据参数设置库的要求,通过加密算法计算生成激活码。因此,激活码是为特定计算机生成的,包含采用哪些指纹参数进行加密的开发商设置,同时包含软件执行的控制信息。即安装码反映开发商的加密思路。
通过因特网将激活码传递给最终用户,安装完成以后在用户端生成一个密钥文件。密钥文件实质上是激活密码的另一种形式,它保存在用户的硬盘中,以密文形式存在,包含软件锁定信息,使用的指纹选项和软件的执行控制。安装以后的软件在每次执行的时候检查密钥文件是否存在,是否被篡改,同时得到软件执行的控制信息。
3.2.技术细节
这种方案可以应用于软件的批量生产,批量生产需要多个部门和环节进行配合,开发部提供加密算法和制作的相关程序,并将自动注册程序安装到注册服务器上,生产部负责批量生产CDKEY,营销部门则将生产出来的CDKEY进行销售,客户拿到CDKEY后即可登录网上注册服务器将软件注册后使用。整个和加密相关的激活流程如下:
生产部生产出一套软件P,就运行由系统程序产生一个随机的CDKEY——随机数以服务器计算机自开机以来运行时间的毫秒数作为种子,计算一串随机数——一共 16 个字节。将此CDKEY和软件相关信息保存在商务系统的数据库中。
接下来,程序用CDKEY直接作为密钥,用简单异或加密算法加密软件中的大部分代码(和数据)95%以上。
然后,直接用户或代理商收到软件后,可以上网注册。运行软件中的注册功能,程序将自动连接到加密注册服务器的加密服务端口,加密注册服务器上则运行加密认证服务。
首先,程序提示用户输入CDKEY号码,如果通过,继续,否则认为非法用户,在这时可做一些处理(如再验证一次),如果5次验证错误,则判断对方为恶意穷举攻击,系统屏蔽对方IP地址30分钟,直到以后SN号码验证通过为止。
然后,加密注册程序再取得本地主机的硬件信息,加密该硬件信息并作加密处理后,将它发送给加密注册服务器。
注册服务器从数据库中查找这个CDKEY,如果找到,并且这个序列号的拷贝已经注册,并且它收到的硬件信息和以前注册的硬件信息相同——相同的软件拷贝可以在一台被授权的计算机上多次安装/注册——或者找到了CDKEY,但该CDKEY还未注册,就将随CDKEY一起发来的硬件信息存入数据库,待以后再验证这台计算机。
接下来用安全算法计算CDKEY和用户机器信息得到“激活码”,把“激活码”作为解密密码发给用户,用户端程序用服务器发来的解密密码将本地软件注册,完成了一次注册过程。
如果检测到的硬件信息和原先硬件信息不同,则检测此用户软件的许可证数目,如不够,提示客户端,用户许可证数目不够,必需原先安装过软件的机器上网注销许可证才可以。或者采用限制更新次数的方法,同一用户一个月最多更新一次。
网上注册方法和手动注册可以并行,手动注册的程序由相关人员根据用户发来的SN和硬件序列号产生,程序进行的处理和网上注册相同。产生的CDKEY则通过邮件或其他方式发送给用户。
主要优点:减少用户和总部人员注册的工作量,实现自动、安全和方便的注册。
4.系统实现方案
4.1.服务器端
服务器端使用TCP/IP协议实现注册服务。
认证服务器应实现以下功能:
(1)黑名单(口令失效)管理。当用户通过书面形式在营业部办理了口令遗失手续时,认证服务器应在第一时间将该用户冻结(黑名单登记),并对在该冻结期使用该用户身份的委托进行跟踪记录;当收到停止冻结的指令时,解除对该用户的冻结(黑名单撤销)。
(2)安全策略管理。认证服务为每个用户创建各自的安全策略,设定其安全等级和对各个站点内容的访问权限。用户只有在获取了相应的安全策略后才能进入系统,并根据安全策略中指定的访问权限对站点进行访问。
(3)口令维护。口令维护主要包括口令转换和口令缓存。口令转换将通过SSL传递给认证服务器的口令格式转换为营业部系统中的口令格式,并提交给相应的营业部对口令进行验证。由于需要将口令提交到各个营业部进行验证,使口令验证的响应时间会变得比较长,因此建议采用口令缓存机制来提高口令验证的响应速度。
(4)跟踪和示警。对系统中一些有关安全方面的异常情况进行跟踪,并向安全管理员发出警告信息,如某用户频繁输错口令等。 当用户在线注册时,系统将记录用户的登陆信息和用户本地的硬件资源,然后通过这些资源生成用户的注册码,并将注册码加密后传给用户,用户收到注册码后,客户端程序自动将此注册码在本地注册。此注册码和用户机器硬件绑定在一起,不能在其他机器上使用。
服务器端程序除了传输数据是加密的外,还对非法穷举或其他测试进行自动处理,一检测到异常数据便会切断此用户连接半小时。另外还采用限制更新次数的方法,同一用户一个月最多更新一次。更新的时候检测用户是否在同一台机器更新,更新记录写于数据库中提供分析。
4.2.客户端
客户端注册过程,需要先提供一个经过编码后的产品序列号,然后连接到远地注册服务器,服务器接收到注册请求后检查序列号是否存在物流系统数据库中,如存在,则提取客户机器的硬件资源,并生成相应注册码返还客户,客户端程序用此注册码自动注册。
5.应用效益
5.1.减少成本:软加密有着比硬件加密狗更低的成本,在节约资金方面有很大的优势。
5.2.可靠性、兼容性得到提高:传统的并口在一般计算机上只有一个,打印机、扫描仪、活动光驱等外设都会争抢这个资源,软加密技术彻底解决了并口加密狗(加密锁)碰到的并口资源冲突的兼容性问题,成为今后加密产品的一个很好的方向。
5.3.完善客户资料管理:客户信息数据库的建立有利于收集和管理现有的最终客户的数据资料。
保护知识产权,抵制盗版软件,是目前中国软件业所面临的迫切问题。以上软加密网上激活解决方案是一种方便快捷的加密解决方案,中国国内的软件商可以依照自身企业的特点参考使用。如果软件开发商对这些技术还有什么不明白的地方,可以发邮件来咨询我。