论文部分内容阅读
摘要:软件加密随着计算机技术的迅速发展,其技术已经涵盖了数学、软件、硬件、乃至网络等多学科的内容。尤其是随着互联网的产生和普及,软件加密开始从传统形式向网络化发展,“激活”和“验证”的软件加密形式从商业软件向共享软件扩张普及。该文阐述了软件加密技术随互联网的发展历程,介绍了不同时期软件加密的基本方法和工作原理,指出了软件加密向网络化发展的趋势。
关键字:互联网;软件加密;网络化;激活
中图分类号:TP309文献标识码:A文章编号:1009-3044(2008)33-1318-02
Software Encryption Technology in the Development of Internet
SONG Ran-xin
(Yang-En University, Quanzhou 362014, China)
Abstract: With the development of the computer technology, software encryption has included math software hardware network and many other subjects. In particular,with the development of internet,software encryption has changed from traditional method to network. The method of "Activatation" and "Authentication" is spreading form Business software to Shareware.The article introduces the history of software encryption with the development of internet and the basic tenets of encryption in different stages,it points that the trend of software encryption is network.
Key words: Internet; software encryption; network; activate
1 引言
软件加密,这个计算机领域并不陌生的词汇,随着计算机相关技术的不断发展,时至今日,已经发展成一个相当大的概念,其方法,手段和内容多种多样,技术更是涵盖了数学、计算机软件、硬件、网络等多方面的内容。随着互联网的迅速发展和普及,软件加密技术越来越紧密地和互联网联系了起来。那么,软件加密在互联网的发展带动下产生了怎样的变化?软件加密又将向着什么的趋势发展下去呢?下面,将就这两个问题具体展开论述。
2 软件加密在互联网的发展带动下产生的转变
互联网发展过程中的软件加密技术随操作系统的更新大致上可以划分为两个阶段[1]:
2.1 Windows 98--Windows 2000时期
这个时期互联网的发展促使软件加密形式发生改变。
随着Windows和家用PC的普及,计算机发展步入了互联网时代,此时,各种软件基本都能在网络上找到,一种新的软件销售形式应运而生,也是现在软件大多采用的形式,那就是共享软件(Shareware)。一般软件从网络上下载以后就可以使用,但是会有一些诸如时间和功能等的限制,当用户试用一段时间后,觉得满意,再付费购买。
共享软件的出现改变了软件的销售形式,这种从传统的销售到网络销售的模式变化直接导致了软件加密模式的变化,软件的加密形式从早期的捆绑磁盘和加密狗加密转变为软件的注册机制[3]。软件注册机制的基本流程就是用户决定购买软件后,通过汇款或网上支付来购买软件,软件开发商会根据用户提供的姓名等信息通过网络发送给用户一个注册码或者注册文件来解除共享软件的使用限制。
此时的共享软件的加密方式大多都是围绕注册码或注册文件展开,为防止软件被非法复制使用,即有人将自己的注册信息共享给他人,一种改良的软件注册机制——许可证加密方式出现了,把原来的“一人一码”改为“一机一码” [3],原理是,软件通过检测当前计算机的一些软硬件信息,生成特征码,用户付费注册时将此特征码和个人信息交给软件开发商以获取根据这些信息生成的注册信息。这种注册方式虽然一定程度上解决了软件被非法使用的问题,但是同时也会给用户带来很多不便,每当用户升级变更硬件或更换计算机时,原来的特征码就会发生变化,注册信息也就随之失效,这时就需要重新向开发商提交并索要一次注册信息,对于开发商来说,也无疑中成倍的增加了软件维护所带来的费用。
2.2 Windows XP--Windows Vista时期
这个时期软件加密技术向网络化发展。
随着互联网的高速发展,网络已经走进了千家万户,网络的普及使得计算机软件都具备了相关的网络功能,如产品更新,服务支持等。软件加密技术也毫不例外的和网络有了更多的联系。在微软公司的新一代操作系统Windows XP中,把“激活”这种新的软件加密机制应用并推广了起来[3]。所谓激活技术(见图1),其实是对传统的许可证加密方式的网络化改良:用户输入一个和产品绑定的序列号,软件通过检测相应的计算机环境信息并根据输入的序列号生成验证码,然后提交给开发商所设立的远程验证服务器上,服务器会自动验证序列号的合法性,并根据提交上来的验证码,发送给用户一个合法的授权文件,使其获得全部的功能。激活过程完全由软件自身和网络完成,不再需要用户发送,并且激活过程也是即时的。为了防止用户将序列号共享他人,服务器在验证序列号合法性的同时会进行次数检测,即一个合法的序列号最多能和几组特征码绑定。当多出指定的次数时,这个序列号将变为不合法。
微软公司成功地将“激活”这一网络软件加密形式应用在了WindowsXP软件中,在随后的Office XP 、Office 2003 和Windows Vista中也都延续了这种网络保护机制。Adobe公司也在旗下最新的软件产品如PhotoShop、Acrobat中使用了“激活”这一技术。可以说,“激活”这一基于网络验证的软件加密形式,在商业软件的保护中取得了广泛的认可和成功。
在这些商业软件的带动下,共享软件的加密方式也逐步向网络靠拢,越来越多的共享软件开始采用“激活”的网络保护机制。有些则对激活机制进行了部分精简改良,形成了一种更适合小型共享软件发展的网络保护机制——验证。所谓验证,其实就是在传统的软件注册机制上加上了网络验证功能。当用户以“一人一码”的注册方式注册成功后,软件自身会不定期或者在进行自身更新时,向远程验证服务器提交软件注册信息及相关环境信息进行验证,检查是否有过多用户使用同一授权文件,从而扼制软件的非法复制和传播。
图1 软件“激活”机制示意图
3 软件加密的网络化发展
互联网的广泛应用催生了共享软件这种软件形式,共享软件的销售特点促使了软件加密由传统的捆绑加密形式向软件注册机制发展,随着互联网的发展,网络的大范围推广解决了传统注册机制的缺点和所带来的一系列问题。在商业软件的带动下,软件加密技术开始向网络化发展。
3.1 软件加密网络化的可行性
网络化的加密技术已经成功并广泛地应用在商业软件领域中,那么,网络化的软件加密形式对于从事共享软件开发的个人和团队来说是否可行呢?
软件加密的网络化部署需要一定的软硬件基础环境,如软件中网络注册功能和远程服务器端验证功能的实现及远程服务器建立和设置还有相应的互联网络支持等。
其中基于软件网络功能部分,在现在的主流编程语言中都提供了较好的支持。下面提供一个具有简单功能的验证程序的实现方法:
服务器端:采用ASP Access数据库实现Web服务器程序(见表1),为方便架设,可以用Netbox等软件将服务器端封装成一个独立的Web服务器执行程序。
表1 网络验证程序服务器端程序列表
客户端:采用indy控件中的idhttp组件,构造Http头,向指定的服务器发送用户名和密码,然后从服务器端的数据库中获取对应的注册信息。
实现加密网络化的另一个主要问题在于解决验证服务器的建立和相应的网络支持。
互联网的普及使着大多数软件都具备了相应的网络功能,为了支持这些网络功能,都设立了专用的服务器提供网络服务,如产品在线更新、技术支持等,这使得网络化的加密形式,诸如“激活”和“验证”等有了坚实的硬件和网络应用部署基础。借由这些提供用户网络服务的服务器,软件作者就可以方便地实施部署自己的网络化加密。同时,加密的网络化也促使软件加密和软件程序中的网络功能模块结合在一起,相辅相成,如:只有经过验证的正版注册的用户才享有软件的更新,在软件检查更新的同时校检用户的注册信息等。另外,软件在进行网络校检和认证的过程中,传输的只是较小的一部分数据信息,因此,对于服务器性能和网络带宽不会有太高的要求同时也不会造成明显的负担。即便是对于租用的服务器来说,也不会带来过多额外的费用。
因此,网络化的加密形式对于较小规模的共享软件开发团队来说是完全可行的,相比传统的软件加密形式使得软件较容易遭到破解而产生损失,网络化的加密形式所带来的收益足可以应付其所带来的额外开支。
3.2 软件加密网络化的优势
优势一:减少软件支持带来的开发成本
使用网络化加密技术的软件,只需要一次性地将用户的注册信息输入到服务器端,以后用户如果因为各种个人行为,如升级硬件、更换主机等,导致注册信息发生改变,都只需通过软件自身到服务器端去获取信息,不再需要人工参与,有效地减少了维护用户注册所带来的开发成本。
优势二:有效地对软件实施保护,防止软件被轻易破解
软件的加密和破解是矛与盾的关系,他们在互相斗争中发展进步[1],传统的软件加密技术,由于软件保护都在本地实现,因此较容易被破解。然而,网络化的加密技术,将软件保护分为两部分,一部分在本地,另一部分则在远程服务器,即使本地部分遭到破解,那软件也会相应损失其部分的功能,而远程服务器部分(网络部分)在一般情况下是不可能被破解的,因此,从很大程度上来讲,网络化的加密技术可以有效地防止软件被完全破解,从而防止软件的非法使用,维护软件作者的个人收益。
4 结束语
软件加密正借由着互联网的高速发展一步步地向网络化迈进,随着越来越多的商业和共享软件开始应用网络化的加密技术,网络化的加密形式也将不断地进行发展、丰富、整合、和完善。相信不久的将来,将会有更多方式的新型网络加密形式涌现出来,网络化的软件加密形式也将逐步形成一个完整、独立的加密体系,被越来越多的软件开发者所应用并推广开来。
参考文献:
[1] 看雪.加密与解密——软件保护技术及完全解决方案[M]. 北京:电子工业出版社,2001:1-2.
[2] 段钢.加密与解密[M].2版.北京:电子工业出版社,2003:1-3.
[3] 飞天诚信.软件加密原理与应用[M].北京:电子工业出版,2004:2-5.
关键字:互联网;软件加密;网络化;激活
中图分类号:TP309文献标识码:A文章编号:1009-3044(2008)33-1318-02
Software Encryption Technology in the Development of Internet
SONG Ran-xin
(Yang-En University, Quanzhou 362014, China)
Abstract: With the development of the computer technology, software encryption has included math software hardware network and many other subjects. In particular,with the development of internet,software encryption has changed from traditional method to network. The method of "Activatation" and "Authentication" is spreading form Business software to Shareware.The article introduces the history of software encryption with the development of internet and the basic tenets of encryption in different stages,it points that the trend of software encryption is network.
Key words: Internet; software encryption; network; activate
1 引言
软件加密,这个计算机领域并不陌生的词汇,随着计算机相关技术的不断发展,时至今日,已经发展成一个相当大的概念,其方法,手段和内容多种多样,技术更是涵盖了数学、计算机软件、硬件、网络等多方面的内容。随着互联网的迅速发展和普及,软件加密技术越来越紧密地和互联网联系了起来。那么,软件加密在互联网的发展带动下产生了怎样的变化?软件加密又将向着什么的趋势发展下去呢?下面,将就这两个问题具体展开论述。
2 软件加密在互联网的发展带动下产生的转变
互联网发展过程中的软件加密技术随操作系统的更新大致上可以划分为两个阶段[1]:
2.1 Windows 98--Windows 2000时期
这个时期互联网的发展促使软件加密形式发生改变。
随着Windows和家用PC的普及,计算机发展步入了互联网时代,此时,各种软件基本都能在网络上找到,一种新的软件销售形式应运而生,也是现在软件大多采用的形式,那就是共享软件(Shareware)。一般软件从网络上下载以后就可以使用,但是会有一些诸如时间和功能等的限制,当用户试用一段时间后,觉得满意,再付费购买。
共享软件的出现改变了软件的销售形式,这种从传统的销售到网络销售的模式变化直接导致了软件加密模式的变化,软件的加密形式从早期的捆绑磁盘和加密狗加密转变为软件的注册机制[3]。软件注册机制的基本流程就是用户决定购买软件后,通过汇款或网上支付来购买软件,软件开发商会根据用户提供的姓名等信息通过网络发送给用户一个注册码或者注册文件来解除共享软件的使用限制。
此时的共享软件的加密方式大多都是围绕注册码或注册文件展开,为防止软件被非法复制使用,即有人将自己的注册信息共享给他人,一种改良的软件注册机制——许可证加密方式出现了,把原来的“一人一码”改为“一机一码” [3],原理是,软件通过检测当前计算机的一些软硬件信息,生成特征码,用户付费注册时将此特征码和个人信息交给软件开发商以获取根据这些信息生成的注册信息。这种注册方式虽然一定程度上解决了软件被非法使用的问题,但是同时也会给用户带来很多不便,每当用户升级变更硬件或更换计算机时,原来的特征码就会发生变化,注册信息也就随之失效,这时就需要重新向开发商提交并索要一次注册信息,对于开发商来说,也无疑中成倍的增加了软件维护所带来的费用。
2.2 Windows XP--Windows Vista时期
这个时期软件加密技术向网络化发展。
随着互联网的高速发展,网络已经走进了千家万户,网络的普及使得计算机软件都具备了相关的网络功能,如产品更新,服务支持等。软件加密技术也毫不例外的和网络有了更多的联系。在微软公司的新一代操作系统Windows XP中,把“激活”这种新的软件加密机制应用并推广了起来[3]。所谓激活技术(见图1),其实是对传统的许可证加密方式的网络化改良:用户输入一个和产品绑定的序列号,软件通过检测相应的计算机环境信息并根据输入的序列号生成验证码,然后提交给开发商所设立的远程验证服务器上,服务器会自动验证序列号的合法性,并根据提交上来的验证码,发送给用户一个合法的授权文件,使其获得全部的功能。激活过程完全由软件自身和网络完成,不再需要用户发送,并且激活过程也是即时的。为了防止用户将序列号共享他人,服务器在验证序列号合法性的同时会进行次数检测,即一个合法的序列号最多能和几组特征码绑定。当多出指定的次数时,这个序列号将变为不合法。
微软公司成功地将“激活”这一网络软件加密形式应用在了WindowsXP软件中,在随后的Office XP 、Office 2003 和Windows Vista中也都延续了这种网络保护机制。Adobe公司也在旗下最新的软件产品如PhotoShop、Acrobat中使用了“激活”这一技术。可以说,“激活”这一基于网络验证的软件加密形式,在商业软件的保护中取得了广泛的认可和成功。
在这些商业软件的带动下,共享软件的加密方式也逐步向网络靠拢,越来越多的共享软件开始采用“激活”的网络保护机制。有些则对激活机制进行了部分精简改良,形成了一种更适合小型共享软件发展的网络保护机制——验证。所谓验证,其实就是在传统的软件注册机制上加上了网络验证功能。当用户以“一人一码”的注册方式注册成功后,软件自身会不定期或者在进行自身更新时,向远程验证服务器提交软件注册信息及相关环境信息进行验证,检查是否有过多用户使用同一授权文件,从而扼制软件的非法复制和传播。
图1 软件“激活”机制示意图
3 软件加密的网络化发展
互联网的广泛应用催生了共享软件这种软件形式,共享软件的销售特点促使了软件加密由传统的捆绑加密形式向软件注册机制发展,随着互联网的发展,网络的大范围推广解决了传统注册机制的缺点和所带来的一系列问题。在商业软件的带动下,软件加密技术开始向网络化发展。
3.1 软件加密网络化的可行性
网络化的加密技术已经成功并广泛地应用在商业软件领域中,那么,网络化的软件加密形式对于从事共享软件开发的个人和团队来说是否可行呢?
软件加密的网络化部署需要一定的软硬件基础环境,如软件中网络注册功能和远程服务器端验证功能的实现及远程服务器建立和设置还有相应的互联网络支持等。
其中基于软件网络功能部分,在现在的主流编程语言中都提供了较好的支持。下面提供一个具有简单功能的验证程序的实现方法:
服务器端:采用ASP Access数据库实现Web服务器程序(见表1),为方便架设,可以用Netbox等软件将服务器端封装成一个独立的Web服务器执行程序。
表1 网络验证程序服务器端程序列表
客户端:采用indy控件中的idhttp组件,构造Http头,向指定的服务器发送用户名和密码,然后从服务器端的数据库中获取对应的注册信息。
实现加密网络化的另一个主要问题在于解决验证服务器的建立和相应的网络支持。
互联网的普及使着大多数软件都具备了相应的网络功能,为了支持这些网络功能,都设立了专用的服务器提供网络服务,如产品在线更新、技术支持等,这使得网络化的加密形式,诸如“激活”和“验证”等有了坚实的硬件和网络应用部署基础。借由这些提供用户网络服务的服务器,软件作者就可以方便地实施部署自己的网络化加密。同时,加密的网络化也促使软件加密和软件程序中的网络功能模块结合在一起,相辅相成,如:只有经过验证的正版注册的用户才享有软件的更新,在软件检查更新的同时校检用户的注册信息等。另外,软件在进行网络校检和认证的过程中,传输的只是较小的一部分数据信息,因此,对于服务器性能和网络带宽不会有太高的要求同时也不会造成明显的负担。即便是对于租用的服务器来说,也不会带来过多额外的费用。
因此,网络化的加密形式对于较小规模的共享软件开发团队来说是完全可行的,相比传统的软件加密形式使得软件较容易遭到破解而产生损失,网络化的加密形式所带来的收益足可以应付其所带来的额外开支。
3.2 软件加密网络化的优势
优势一:减少软件支持带来的开发成本
使用网络化加密技术的软件,只需要一次性地将用户的注册信息输入到服务器端,以后用户如果因为各种个人行为,如升级硬件、更换主机等,导致注册信息发生改变,都只需通过软件自身到服务器端去获取信息,不再需要人工参与,有效地减少了维护用户注册所带来的开发成本。
优势二:有效地对软件实施保护,防止软件被轻易破解
软件的加密和破解是矛与盾的关系,他们在互相斗争中发展进步[1],传统的软件加密技术,由于软件保护都在本地实现,因此较容易被破解。然而,网络化的加密技术,将软件保护分为两部分,一部分在本地,另一部分则在远程服务器,即使本地部分遭到破解,那软件也会相应损失其部分的功能,而远程服务器部分(网络部分)在一般情况下是不可能被破解的,因此,从很大程度上来讲,网络化的加密技术可以有效地防止软件被完全破解,从而防止软件的非法使用,维护软件作者的个人收益。
4 结束语
软件加密正借由着互联网的高速发展一步步地向网络化迈进,随着越来越多的商业和共享软件开始应用网络化的加密技术,网络化的加密形式也将不断地进行发展、丰富、整合、和完善。相信不久的将来,将会有更多方式的新型网络加密形式涌现出来,网络化的软件加密形式也将逐步形成一个完整、独立的加密体系,被越来越多的软件开发者所应用并推广开来。
参考文献:
[1] 看雪.加密与解密——软件保护技术及完全解决方案[M]. 北京:电子工业出版社,2001:1-2.
[2] 段钢.加密与解密[M].2版.北京:电子工业出版社,2003:1-3.
[3] 飞天诚信.软件加密原理与应用[M].北京:电子工业出版,2004:2-5.