浅析软件加密安全技术
2018-03-30李乃龙
李乃龙
摘 要:伴随着互联网技术和信息软件技术的发展,各类办公和生活软件走进了人们的生活,并且在衣食住行等各个领域广泛应用。各类服务软件特别是财务金融软件的应用,在方便人们工作生活,为广大使用者带来便利和帮助的同时,信息安全和数据保密问题也是日益凸显,数据泄露、信息窃取的事件层出不穷,如何保护用户隐私、实现软件的使用安全成为人们讨论的热点。为此,软件加密近年来逐渐成为行业关注的焦点,越来越多的软件开发商和终端客户关注软件加密技术的发展,论文就软件加密当前的现状、分类和发展进行探讨。
关键词:信息安全;软件加密;现状研究;方式分类
中图分类号:TP274+.2 文献标识码:B
Abstract: With the development of Internet technology and information software technology, various office and life software have entered people's lives, and are widely used in various fields such as clothing, food, housing and transportation. The application of various service software, especially financial and financial software: on the one hand, it facilitates people's work and life, brings convenience and help to the majority of users; on the other hand, information security and data confidentiality during the use of software is also Increasingly, the incidents of data leakage and information theft are also endless. How to protect user privacy and how to implement software security has become a hot topic. To this end, software encryption has become the focus of the industry in recent years. More and more software developers and end customers pay attention to and care about the development of software encryption technology. This paper studies the status quo, methods and development of software encryption.
Key words: information security; software encryption; current research
1 引言
近些年,软件产业发展迅速,各种应用软件产品层出不穷,已经成为人们日常生活中不可或缺的一部分。各类软件特别是财务金融软件的应用,在方便人们工作生活,为广大使用者带来了便利和帮助的同时,也让人们深刻认识到软件在使用过程中出现的信息安全和数据保密问题,有关数据泄露、信息窃取的事件也是屡见不鲜,保护用户隐私、做好软件加密已经被提上日程。
所谓软件加密并不是需要对整个软件加密,而是只需要在软件安装或者运行时进行环节加密。开发商作为软件的研发者和运营者,通常会使用加密技术来保护其软件,实现信息安全。另外,通过软件加密,可以实现软件部分授权内容的按需购买。加密技术根据是否需要专用的硬件设备,可以分为基于硬件的加密和基于软件的加密。基于硬件的加密是指通过专用的硬件设备绑定实现加密,目前常用的硬件加密方式是加密锁,俗称加密狗。基于软件的加密是指不需要专用的硬件设备,一般采用与终端设备软硬件信息绑定的数字许可证,也称电子授权。
所谓硬件加密是一种纯客户端技术,缺乏上层管理和有效统计功能,同时会带来生产、物流、驱动安装等诸多不便,不仅成本高,而且无法实现软件的网络化发行和销售。另外,此种方式容易通过硬件复制实现破解,对软件的安全性带来隐患,目前基于硬件的软件加密方式正在逐渐走向衰落。
2 软件加密方式分析
2.1 基于硬件的加密
基于硬件的加密方式主要是指加密锁加密,用户所需的各类重要数据和信息,如加密密钥、敏感数据、授权文件、自定义算法等都可以存储在加密锁中。常用的加密锁按照接口形式可以分为并口加密锁和USB口加密锁。早期,比较普遍使用的是并口加密锁,后来因为插拔不方便和与其他连接的设备存在插口冲突,目前已經逐渐被淘汰。当前,开发商使用的加密锁基本都是USB接口,根据CPU类型分为:单片机作CPU的加密锁和智能卡芯片作CPU的加密锁。因为单片机硬件本身容易被破解或复制,所以中高端的加密锁基本都在使用智能卡芯片作CPU。伴随着智能卡加密锁的广泛应用,行业中对其进行破解技术也不断出新,芯片分析技术和仪器越来越先进、智能卡程序写好后要交给芯片厂去制造可能被泄漏、同一品牌的加密锁所使用的CPU程序是相同的等因素都导致了加密锁容易被破解,导致信息泄露和内容被复制。加密锁的不足和缺点:一是适用于传统的一次性永久授权,无法方便实现试用版本和按需购买;二是无法实现基于互联网的电子化发行、升级、跟踪和管理;三是硬件的存在带来了生产、物流、安装和维护成本;四是一旦被破解,就可以大批量复制,难以补救。
2.2 基于软件的加密
基于软件的加密方式主要是电子授权技术,具体还分为注册码和许可证文件两种:注册码也称为序列号或授权码,通过对软件用户计算机软硬件信息的某种变换得到,可用的软硬件信息包括CPU序列号、BIOS序列号、网卡号、硬盘序列号、计算机名称等。使用的变换算法有自定义算法或标准的加密算法等。用户在软件安装过程或第一次使用前,需要输入注册码进行验证。验证通过后,软件就可以正常使用了。注册码保护方式的优点是使用简单,缺点是安全性不高、无法实现复杂的授权需求。许可证文件和注册码绑定的计算机软硬件信息相同,相比注册码只能使用一两个软硬件信息,许可证文件可以使用多个软硬件信息,实现复杂的授权需求。典型的许可证文件实现方法是使用非对称算法的私钥对许可证文件进行签名,而公钥嵌在软件代码中。因为加解密过程不对称,私钥又存在授权服务器上,所以很难通过分析授权文件进行破解。
电子授权保护方式的优点是不需要额外的硬件设备、安装驱动和客户端组件,可以实现软件的电子化发行。缺点则是对不能联网的用户,需要手工提取计算机信息来获得注册码,然后再手工导入造成不便。另外,国内提供电子授权产品的开发商相对不足,限制了电子授权保护技术的广泛应用。
总体而言,基于软件的电子授权加密目前发展势头良好,已经广泛应用于各类软件系统中,伴随着互联网技术的快速发展,已经越来越多的把人工智能、大数据和云计算等技术理念进行融合,这种加密方式能够实现软件电子化发行,操作简便,易于管理。电子授权方式既无法被复制,又需要网络激活和验证,所以具有非常好的保护效果。基于软件的电子授权加密方式顺应了无硬件化、网络化和信息化的发展趋势,未来可期。
3 软加密方式的探究
软加密方式具有其独特的加密优势和专属特性,通过网络通讯和服务器认证技术,可以获得更加理想的安全应用效果。在软件安全系统首次运行时实现服务器端的“备案”,在存储客户端硬件特征时实现获取开发商授权。服务器认证既可以获得首次运行的激活,还可以后续再次核查和升级授权内容。另外,还可以采用客户端与服务器实时连接的验证方式,保证安全系统指纹始终依附在服务器上,达到更高的安全的要求。
软加密技术的优势特点有三个。
一是双因素验证。早期的硬加密和软加密,在安全验证上都是单因素的,即基于加密锁或本机硬件指纹。在集成了服务器认证之后,加密方式变为既与本机硬件指纹相关,又与服务器相关的双因素。双因素验证极大的提高了系统整体安全性,盗版者无法通过破解其中的单因素来窃取,使软加密的安全性超过传统硬加密成为现实。
二是追踪破解。没有哪个保护技术是绝对可靠、无懈可击的,但运行的软件代码总是可以被跟踪和分析。双因素验证的软加密方式有助于实现对破解应用的追踪。除非通过逆向工程的办法把所有与服务器通讯相关的代码完全替换,否则服务器将有可能对软件的破解拷贝进行追踪。
三是利于补救。软加密的另一个优势是可以方便快捷的推出被破解版本的补救方案,并且其补救措施的成本几乎是零。在发现原有版本被破解后,开发者可以在平台上为产品增加新的功能模块,同时可以升级原有的功能算法和应用程序代码,推出升级补丁,反馈客户完成升级和软件加密保护。
4 结束语
软件加密行业的发展趋势与互联网技术和软件行业的发展趋势密切相关。随着人工智能、云计算和区块链等技术的快速发展,软件产品的提供方式正在向着网络化和平台化的方向转变。就目前的发展态势而言,基于硬加密的加密锁已经接近饱和,不久的将来会被其他先进技术替代。基于软加密的电子授权方式具有独特的加密优势,并且随着时代的需要不断的进行着迭代和升级,正在经历从早期的注册码形式向功能丰富的许可证文件形式转变,验证方式也从离线手工驗证发展为自动网络验证,特别是在授权管理思想提出后,电子授权技术已经从单一的软件授权认证发展为认证、管理和统计等多种功能,未来发展前景良好,已经成为软件加密技术的大势所趋。
参考文献
[1] 郑羽.加密与解密实战入门[M].北京:电子工业出版社,2006.
[2] 史子荣.软件加密技术从入门到精通[M].北京:清华大学出版社,2007.
[3] 邓安文.密码学——加密演算法[M].北京:水利水电出版社,2006.
[4] Matt Robshaw.快速软件加密法[M].湖北辞书出版社,2006.
[5] 武新华,安向东,等.加密解密全方位学习[M].北京:中国铁道出版社,2005.43-51.
[6] 于溪.加密与解密点通点睛[J].齐鲁电子音响出版社,2007.12-52.
[7] 徐秀花,卫勐.软件加密和破解技术[J].北京印刷学院学报,2010.04.
[8] 赵晓敏,赵常林.计算机网络安全技术研究[J].鸡西大学学报,2007年4月第七卷 第二期.
[9] 周黎明.计算机网络的加密技术[J].计算机与信息技术,2007年 第22期.
[10] 刘学会,祁新安.加密技术、加密方法以及应用[J].计算机与信息技术,2007年第20期.
[11] 钟静.电子商务技术及应用[M].北京:电子工业出版社.
[12] 谷大武.高级加密标准(AES)[M].北京:清华大学出版社.