SCI期刊 | 网站地图 周一至周日 8:00-22:30
你的位置:首页 >  » 正文

软件防篡改技术探索

2021-4-13 |

1基于软件层面的防篡改技术

1.1软件哨兵。所谓的软件哨兵,事实上是一段程序,规模微小,嵌在软件中,可以用于执行代码模糊、加密等任务,能够使软件不易被入侵,维护软件的安全性和完整性。在软件中,嵌入哨兵的数目可多可少,可以存放在不同的位置,它们所产生的作用也有所不同。这种软件哨兵的工作原理是,如果攻击者想访问并企图篡改软件,一定要避开或者清除这些哨兵。如果攻击者真的避开某些哨兵,留下的还没被清除的哨兵便会立刻发现这种恶意攻击,能有效阻止攻击者篡改程序的继续运行。不仅如此,正常程序的某些区域还被哨兵安置了监测代码,使得攻击者的入侵行为难上加难。软件哨兵这种技术有一大优势就是不仅能防止软件被篡改,还能把篡改的代码进行自动修复。因此,为了预防软件被篡改,用户通常会在软件中嵌入大量的软件哨兵,力求使攻击者无懈可击。

1.2软件老化。所谓的软件老化,就是指软件经过一段时间后,性能大大下降,并且出现瘫痪的现象。目前解决这种办法通常是软件的更新,即利用软件的再生技术。通过在合适的时间终止某个程序的应用,再把内部错误文件、程序等清除掉,切换新的应用功能,最后达到重新使用程序。利用此种方法进行防篡改,就必须要对软件进行功能升级,定时对软件进行检测,并且程序上要和相应的插件保持同步升级。通过此来缩短旧软件的生命周期,从而迫使攻击者不断进行软件更新,提高及时发现攻击者和盗版者的可能性。但是,此技术也存在缺陷,因为这种技术的操作对象是以文档为主导的应用程序,只能适合对特殊数据的处理。这种技术只能把原版本文档格式修改转变为另一个版本,但不能逆向修改,这样势必给用户使用带来诸多不便。为此,软件开发商应提供一个方便的应对策略。

1.3断言检查。所谓的断言,就是计算机一种特有的逻辑表达方式,用来特别解释说明一个条件或程序变量之间的关系。通过严格去检查程序中每一个断言是不是正确,能有效地对软件进行检测,发现软件是否被篡改。如在程序中,在某特定点设置此表达式的值为真,但如出现软件被篡改,当在此特定点之前分配其值为某些参数的非法值时,程序运行到此就会出错。实质上,断言是用来调试和验证程序的一种工具,在任何时候都能启用,故能更有效防止软件被篡改。但这种方法也有缺陷。第一,变量的非期望值可能来自于程序错误,而不是来自于程序篡改。程序本来可从错误中恢复,但这种防篡改技术可能会终止程序的运行,降低了程序的容错性。第二,大量的断言检查对于程序的执行效率影响性增大。最后,由于这种技术很难实现自动化,不得不加大人工的投入。

1.4水印技术。水印技术的应用甚为普遍。因为它能通过水印来验证版权保护信息和身份属性的真假。软件防篡改的保护技术也引用这个特点,在软件程序中打一个特有的独立的“水印”作为该程序的独立标识,并且以这种表示为依据找出这段程序的作者、使用者、发行商等信息,且其中带有版权所有信息与身份验证程序,从而对软件是否发生盗版、篡改等行为做出分析。当有篡改行为或盗版行为发生时,软件程序内部的水印就会遭到破坏,当水印遭到破坏时内部程序就会产生感知立刻终止软件程序继续运行,从而形成双保险的防篡改机制。

1.5密码技术。防止软件被篡改的根本任务就是阻止软件代码被篡改。利用密码技术对代码进行加密,是目前防止攻击者修改软件的最可靠方法。加密是利用加密算法将软件代码转换为不可读的格式,从而达到保护数据的目的。普遍采用的方法之一是利用公钥算法实现的数字签名技术来防止应用软件被篡改。应用程序的源代码在连接编译时,利用程序发布方的私钥对其进行加密,即对程序进行签名,签名与程序绑定在一起,就有了对该程序是否被篡改进行检验的依据。签名一旦成功,就具有确定性,无法伪造,也不可否认。另外一种方法是利用散列函数能对报文进行鉴别的特点。这种技术原理是:系统周期性地对数据文件利用散列函数产生一个报文摘要,并存储起来。然后对数据文件,周期性地将新的报文摘要与旧的报文摘要进行比较,如果新旧数据有任何不同,则说明所监控的文件已被篡改。然而,此技术一旦攻击者获得密钥,就可篡改软件,而且由于系统必须在运行程序之前解密代码,这会影响程序的执行效果,因此一般要用其他设备先解密代码。

2基于硬件层面的防篡改技术

不仅在软件层面能对软件实行保护,防止软件被篡改,利用硬件也可以,但是需要软件的配合。软件卫士技术和对软件的各个盘实行硬加密方式,是当前人们经常使用的硬件防篡改技术。这种防篡改技术的原理,主要运用软件的储存位置硬盘,赋予它们保护功能,彻底地防止软件被篡改。为了加大在硬件层面上对软件实现更有效的保护,从根本上防止软件被攻击者篡改。当前,Intel公司发起了一个新的组织,希望通过这个组织研发出一种安全可靠和信任度高的硬件运算平台来对软件进行保护。而微软公司为了实现信任度较高的计算,正准备推出一种命为“Palladium”的结构模式,这个模式可以创建一个更加安全的环境,使微软应用软件系统有效安全地运行。“Palladium”的结构模式能提供一种安全机制,使软件不会被攻击者利用各种程序进行窥探和随意修改,并且保证了只有用户信任的其他软件和编程才能进行访问。据说,这种结构模式对那些未被用户信任或者授权的程序软件,在远程就可以被检测到并且清楚它们。不过,这种技术受很多因素限制,可不可以成功还只能拭目以待。

3结束语

上文从软件和硬件两个层面,对软件防篡改技术进行分析论述,并提出有用的建议,仅供参考。希望在今后的软件防护工程中,能综合上述的各种技术,使防篡改的技术得到更大的改善,提高防篡改技术的安全性和可靠性,从根本上杜绝软件被篡改的情况。

作者:于文新 单位:同济大学软件学院

Top