软件加密是指用一定的方法将代码转化成另一种形式,不影响程序功能的前提下增加程序的保密性和安全性。由于软件加密概念重要,现在市场上也有许多相对成熟的软件加密产品供应, 例如星泰、钟鸣、纵横等。使用这些产品确实能够对软件程序早期及中期的保护作出有力、有效的贡献。但完全依赖加密技术来解决软件安全问题,是大错特错的。
首先,要注意的是加密算法只是安全的一环。在软件的全生命周期内,软件设计、开发、测试、部署、维护都要遵循一系列安全保障标准,如经过的测试、流程、治理等等。软件开发遵从关注点分离、面向对象设计思想和开发规范等原则,对程序界面和底层算法都做出及时、迅速的优化和修改,及时消除已发现的新漏洞和新特征, 才能更有效保护软件的安全性。
其次,软件加密也并非完美。颠覆保护方案,攻下加密者,是从古至今正在进行。很多时候,著名的软件加密技术也不精湛,经不住技术人员的破解。举例看,曾经备受推崇的360软件加密功能, 却早早被瑞星,异星等反病毒软件轻松解决了。所以, 只要有人能够破解, 其他人就可以通过公布该软件的漏洞从中乘机取利。
我们应该加强对软件开发进行规范化和标准化的程度,确保整个软件系统的安全性。软件加密也只是其中的一种手段,需要与软件开发生命周期结合起来。在开发过程中,要注意合理的使用保密技术,并选用更好的算法和工具。 只有这样,才能够确保更高的软件安全性。