白盒密码概述

1.1 白盒密码概述

随着在移动互联网和物联网产业高速发展,越来越多的密码系统部署在开放的设备上,如个人电脑、移动智能手机等;而且软件分析技术(OllyDbg、WinDBG、IDA、LordPE、K-HUNT[1]等)也在不断地提升。常见的数据伪造、数据泄露、用户隐私等信息安全问题引起重视,密码学作为研究信息系统安全的一门学科得到广泛应用。而现代密码算法的理论安全性需遵守柯克霍夫在19世纪提出的Kerckhoffs原则。

Kerckhoffs原则:

除了密钥外,即使攻击者知道密码算法的每一个设计细节,整个密码系统也应该是安全的。

根据Kerckhoffs原则可知,密码算法的安全性依赖密钥的保密性,而不是算法本身的保密性。传统的密码算法是假设在黑盒攻击环境(Black-Box Attack Context)中执行,攻击者只能获得算法运行的输入和输出结果,不能观察算法的运行过程。黑盒攻击环境是评估密码算法理论安全性的标准攻击环境,但它往往不能完全反映实际中攻击者对密码算法的攻击能力。因此,引入了灰盒攻击环境(Gray-Box Attack Context)。在灰盒攻击环境中,攻击者除了可以选择密码算法的输入外,攻击者还可以观察算法运行时泄露物理信息(时间信息、电磁辐射、温度变化等),从而获取程序运行的内部数据,完成对程序的破解或对密钥的窃取。

但当密码算法的软件实现部署在一个开放和不可信的平台上时,黑盒攻击环境和灰盒攻击环境不足以模拟攻击者的能力。在SAC 2002 年会上,Chow 等人首次提出白盒攻击环境(White-Box Attack Context)的概念[1]:

• 攻击者完全控制软件的执行环境,并对算法实现具有完全的访问权。

• 攻击者可以读取内存中的密钥,观察程序执行,改变计算的结果等。

• 攻击者可以检查内存、拦截CPU调用,随意选择执行程序。

图1 黑盒、灰盒和白盒攻击环境

传统密码算法的实现不适用于白盒攻击环境中。针对白盒攻击环境应运而生的白盒密码学(White-Box Cryptography)提供加密算法的安全软件实现,使攻击者即使控制执行环境或访问软件实现,也无法提取密钥,从而达到保护密钥的作用。在资源受限应用场景下,分组密码算法(Block Cipher)由于在性能与效率上的优势,在数据加解密、消息认证码与数字版权管理方案得到广泛应用,因此越来越多的厂商引入白盒分组密码(White-Box Block Cipher)对软件密钥进行保护。

图2 白盒密码学思想

白盒分组密码分为标准分组密码的白盒实现和新型白盒分组密码。标准分组密码的白盒实现是将已知的密码算法(如AES、DES、SM4等)通过白盒密码技术进行设计,使得在白盒攻击环境下,不改变原算法的功能同时保证安全性。而新型白盒分组密码是针对白盒攻击环境特定设计的密码算法,与传统的密码算法不同的是,它能够抵抗白盒攻击环境下敌手的攻击,且本身是一个新的算法[2]。

1.2 标准分组密码的白盒实现

2002 年,Chow 等人提出基于查找表实现的白盒AES(CEJO-WBAES)[3] 和白盒DES[4]。中心思想是为了隐藏对称加密算法AES和DES中的密钥,将密钥相关的部分转化为一系列查找表的组合实现,同时增加内部编码和外部编码进行混淆,这样整个算法就变成了查表操作。

在上述分析方法的影响下,CHES 2016/2017 连续两年举办的白盒AES 算法实现竞赛均无方案能抵抗密钥恢复攻击。

SM4(原SMS4) 分组密码算法由中国密码管理办公室在2006 年正式发布。由于SM4 标准国外学者研究较少,因此其白盒实现方案也少有研究成果公开发表。在2009年,上海交通大学肖雅莹和来学嘉基于仿射函数变换提出了SM4算法的白盒实现[5]。基本思想是将密钥隐藏于SM4的S盒运算中,并通过可逆仿射变换作为输入和输出编码,将编码后的输入输出值做成查找表。随后林婷婷与来学嘉提出了针对白盒SM4的安全性分析[6]。2018 年,潘文伦等人通过调整仿射常数的恢复顺序来改进林婷婷与来学嘉的白盒SM4 破解方法,将其攻击复杂度降到[7]。

1.3 新型白盒分组密码

从2002 年到2020年,研究人员不断改进AES、DES 和SM4等标准分组密码算法的白盒实现,然而这些白盒实现都受到实际的密钥提取攻击和查找表分解攻击。因此针对白盒攻击环境的特点,学者们设计有别于传统SPN、Feistel 结构的新型白盒分组密码(ASASA、SPACE、SPNbox、WhiteBlock、WEM、FPL、Galaxy)。相比于对标准分组密码算法的白盒实现,这些新型白盒分组密码能达到在性能和安全性方面的平衡。

图3 新型白盒分组密码

1.4 小结

白盒分组密码由于在软件实现中具有良好的兼容性、便捷性和可维护性, 并且使开发人员能够保护应用程序免受逆向工程、篡改和自动化攻击,已经在软件完整性保护、身份认证、密钥管理与分发等信息安全保护技术加以实际应用。

本期作者:工业和信息化部电子第五研究所 乐琦雯

参考文献

[1]J.Li,Z.Lin,J.Caballero,Y.Zhang,andD.Gu.K-Hunt:Pinpointinginsecure cryptographic keys from execution traces. In Proceedings of the ACM SIGSAC Conference on Computer and Communications Security (CCS 2018). ACM, New York, NY, USA, pp. 412-425, 2018

[2] 林婷婷,来学嘉.白盒密码研究[J].密码学报.2015,2 (3): 258–267.

[3]Chow S, Eisen P A, Johnson H, van Oorschot P C. White-Box Cryptography and an AES Implementation [C/OL] // Nyberg K, Heys H M. In Selected Areas in Cryptography, 9th Annual International Workshop, SAC 2002, St. John’s, Newfoundland, Canada, August 1516,2002. Revised Papers. 2002: 250–270. https://doi.org/10.1007/3540364927_17.

[4] Chow S, Eisen P A, Johnson H, van Oorschot P C. A White-Box DES Implementation for DRM Applications [C/OL] // Feigenbaum J. In Security and Privacy in Digital Rights Management, ACM CCS9 Workshop, DRM 2002, Washington,DC, USA, November 18, 2002, Revised Papers. 2002: 1–15. https://doi.org/10.1007/9783540449935_1

[5]肖雅莹.白盒密码及AES与SMS4算法的实现[D]. [S. l.]: 上海交通大学,2010.

[6]林婷婷, 来学嘉. 对白盒SMS4 实现的一种有效攻击[J].软件学报.2013,24:2238–2249

[7]潘文伦, 秦体红, 贾音, 张立廷. 对两个SM4 白盒方案的分析[J]. 密码学报.2018, 5 (6): 651–671.

标签: