作者:徐建祥(netpirate@gmail.com)
时间: 2006/05/14
来自:http://www.anymobile.org
软件保护技术是指软件开发人员或软件厂商为了保护软件的合法性和完整性,采用的加密措施。
序列号验证 :验证用户信息与序列号之间的数字映射关系,传统、便于开发。
缺陷:破译者通过跟踪程序的注册过程推算出数学映射关系;一个合法的序列号可在多台机器上安装、使用。
解决方法:根据本地硬件信息,通过网上验证和在线升级的软件保护方案。
网上验证 :指通过互联网,对产品或证书的真伪进行认证,如学历证书验证。
软件的网上验证:指软件在安装注册时,将软件序列号和用户计算机的相关硬件信息上传到服务器,服务器验证序列号的真伪,记录硬件信息,并根据付款情况下传想要的信息,验证通过后即可正常使用软件;软件升级后,服务器根据用户机器的硬件信息识别用户身份,并对合法用户提供升级服务。
1、 多层分布式系统结构
被分割成在不同机器上协同运行的逻辑单元。各逻辑单元通过局域网或 Internet 共享数据和通信。
三层结构:
a、 客户端应用程序在用户机器上提供用户界面。
b、 应用程序服务器位于可连接到所有客户端的中央网络位置,并提供公共的数据服务。
c、 远程数据库服务器提供数据库关系系统( RDDBMS )。
MIDAS(Multi-tier Distributed Application Suite) 即多层分布式应用程序解决方案,是 Inprise 提供的集成了多种技术规范的多层分布式数据库解决方案,是由Borland C++ Builder ( BCB ) /Delphi 用来开发多层应用系统使用的中介透明引擎,它具有在客户端无需任何数据库工具可以读取远程数据、网络通信量小、多线程、数据库自动约束及平衡负载的特点。
2、 动态 IP 解决方案
a、 服务器启动时将服务器 IP 地址上传 IP 地址到网站(固定域名);
b、 客户端访问网站获取服务器 IP 地址;
c、 客户端注册安装程序与服务器连接。
本地加密 :网络认证后的二次加密,防止多机拷贝。
基本原理:在软件安装时取得本机特有的硬件信息,经过一定的变换,将加密后的邮件信息作为密文公开存放在文件 Keyfile 中;每次运行时,软件经过解密密文得到明文,将此信息与实际读取的硬件信息相比较,从而验证用户的合法身份。
计算机的唯一硬件标识:网卡的 MAC 地址、硬盘序列号、硬盘分区表等。
网卡 MAC 地址:即网卡物理地址, 6 字节地址,时 Ethernet 协议使用的地址。
硬盘序列号:操作系统格式化硬盘或软盘时喜糖都会给它分配一个四字节的序列号。
操作步骤 :
a、 动态 IP 解析:应用程序服务器注册到网站。
b、 序列号验证:客户端到服务器验证本地的序列号,返回查下结果。
c、 读取和验证本地硬件信息:客户端通过网络验证、成功注册时,将本机硬件信息经加密后上传至服务器,并保存到本地硬盘文件( Keyfile )中,应用程序在执行或升级时将此信息与实际读取的硬件信息相比较,从而验证用户身份,确保程序只能在安装时的机器上执行和升级。