基于PUF的硬件辅助软件认证方法
2021-03-24李雪筠黄正峰李晓维李华伟
郑州大学学报(理学版) 2021年1期
李雪筠,叶 靖,黄正峰,李晓维,李华伟
(1.合肥工业大学 电子科学与应用物理学院 安徽 合肥 230601; 2.中国科学院计算技术研究所 计算机体系结构国家重点实验室 北京 100190; 3.中国科学院大学 北京 100190)
0 引言
近年来,随着物联网的飞速发展,互联嵌入式设备的数量持续增长,广泛应用于家居、医疗、工业等领域。然而由于大多数互联嵌入式设备的安全机制不足,针对其软件的盗版或篡改等攻击愈演愈烈,给制造商带来严重的经济损失。因此,保护软件的完整性和防篡改性尤为重要。现有软件保护策略主要分为软件增强和硬件辅助两类。
传统的软件增强策略通常分为混淆、防篡改以及水印三种,通过对软件代码自身进行修改,使攻击者无法篡改程序或篡改后的程序难以执行。混淆处理侧重于防止逆向工程,通过增加程序的复杂性,使软件代码难以理解[1-2],从而阻止攻击者对软件的更改。常见的代码混淆主要包括布局混淆、数据流混淆、控制流混淆和预防性混淆[3],其中控制流混淆包括使用不透明谓词、插入多余控制流等方式;防篡改通过添加防篡改代码等方式检测程序是否被篡改,一旦发现篡改将终止程序执行。代码自检方案[4-5]采用自修改和自解密代码段来防止软件篡改;数字水印有静态和动态两种,用以发现软件盗版时证明软件的所有权[6]。然而,由于大多数设备制造商使用相似的微控制器和微处理器,硬件执行环境的兼容使得针对特定软件的攻击应用于其他设备,而越来越多的嵌入式设备通过互联网连接在一起,也使得病毒类攻击的传播更广泛。……
登录APP查看全文