文 / 中国银联电子支付研究院 邱震尧
随着物联网技术的发展及其应用的推广,其安全性也得到了业界的广泛关注和重视,而密钥作为实现身份认证与数据加密的关键,在物联网安全中扮演着重要的角色。为了保证脆弱环境下众多物联网节点设备中的密钥不被攻击者所窃取,白盒加密技术可作为传统TEE或SE硬件解决方案的一种可选的软件替代方案。
本文对白盒加密技术与应用情况进行了调研,包括典型的构造策略及技术方案,最后分析了白盒加密技术在功能性与安全性上的优缺点,并就物联网等具体应用场景的适用性给出了相应的结论。
一、背景与意义
在物联网等存在轻量级移动设备的应用场景中,通常需要通过密钥实现设备身份认证及数据加解密等操作,而如何保护密钥存储的安全性一直是物联网安全领域亟需解决的关键问题之一。由于物联网设备节点很多处于难以监管的公共开放场所,直接在设备存储器中存放敏感的密钥信息容易遭到攻击者的物理破解或侧信道攻击。
在移动应用环境下,一般可通过安全元件(Secure Element)或可信执行环境(TEE)实现硬件与系统级的密钥安全保护,将与密钥相关的安全操作封闭在一个独立的软/硬件安全环境中进行。然而,在轻量级的物联网设备节点中,为了降低部署成本,可能不具备SE与TEE等与安全芯片强相关的硬件条件。
为了实现物联网设备的“去TEE化”,同时保证物联网节点的安全性,需要一种纯软件的方式实现设备密钥的安全保护。作为密码工程领域的一种新的技术方法,白盒加密技术将密钥与加解密算法相混淆,可抵御白盒密码攻击,防止攻击者通过读取设备内存等手段获取密钥数据。因此,白盒加密技术可作为保护物联网设备密钥安全的可行选项之一,进而实现物联网设备认证与数据加密的安全解决方案。
二、技术概述
1、基本概念
针对密码算法及其实现的攻击方式通常可依攻击者对加解密过程的掌握和控制程度分为黑盒攻击、灰盒攻击和白盒攻击三种,具体攻击类型如图1所示。
图1:密码攻击分类
1)黑盒攻击
黑盒攻击(Black-Box Attack)是指加密程序对于攻击者而言是一个黑盒,攻击者仅能观察到加密算法的明文输入与密文输出等外部信息,无法获取程序运行时的内部操作和数据,如图2所示。需要说明的是,通用的加密算法通常是公开的,黑盒攻击并不代表攻击者不知道加密算法细节,而是无法获取加密密钥和算法内部运算的更多中间结果。
图2:黑盒攻击
黑盒攻击是最弱的一种密码攻击,一般通过对明文和密文进行统计分析实现,抵抗黑盒攻击是密码算法设计的最基本要求。在密码学理论中,唯密文攻击、已知明文攻击、选择明文攻击、选择密文攻击等都属于此定义下的黑盒攻击。
2)灰盒攻击
灰盒攻击(Grey-Box Attack)又称为侧信道攻击(Side-Channel Attack),是指攻击者可通过程序运行时泄露的电磁辐射、功耗、运算时间等物理信息分析出一定的内部操作和数据,从而实现对加密数据或密钥的破解,如图3所示。
图3:灰盒攻击
在大量的实践案例中,攻击者已实现了对多种密码算法和相关软硬件设施的侧信道攻击。例如,攻击者通过对高通芯片中的QSEE安全执行环境进行侧信道分析,可还原出ECDSA椭圆曲线签名的一些具体计算操作,进而推测出256位的密钥。
与黑盒攻击不同的是,侧信道攻击属于工程性攻击,而不是针对算法数学理论的攻击手段。目前,防止侧信道攻击已成为密码算法设计的一个新要求。
3)白盒攻击
白盒攻击(White-Box Attack)是指攻击者对加密系统的运行环境和可执行程序拥有完全控制,可观察和修改任意的内部操作和数据,包括设备的CPU、寄存器、内存等数据等等,如图4所示。在白盒攻击环境下,密码算法的一般软件实现方式通常会导致密钥通过内存等途径直接泄露。
图4:白盒攻击
白盒攻击是三种攻击类型中最强的一种,且涉及到密码算法本身的理论安全性及其工程实现的应用安全性。如何设计能够抵抗白盒攻击,保护白盒环境下密钥和敏感数据不被攻击者窃取的有效方案是目前密码技术领域的一个重要问题。
4)白盒密码技术
白盒密码技术(White-Box Cryptography)是能够抵抗白盒攻击的加解密方法,以实现对密钥的安全保护,其定义如下。
传统的密码分析方法通常基于黑盒攻击展开,仅对密码算法本身进行理论分析,而没有考虑算法的实际运行环境。然而,物联网节点等终端设备的运行环境有时面临着白盒攻击的威胁,可能被攻击者完全控制,进而可能轻易获取其中的密钥等信息。因此,基于白盒密码技术的安全产品的一个主要目的就是保护终端设备中的密钥安全性。
2、构造策略
白盒密码的构造方法主要包括标准密码算法白盒化以及构造新的白盒密码算法两种策略。
1)标准密码算法白盒化
白盒密码的一般构造方法通常基于标准密码算法白盒化策略,通过将标准密码算法中的密钥与算法实现融合和混淆,使得密钥与加密程序不可区分,即使攻击者掌握了对白盒密码系统的控制能力,也无法进一步获取原始的密钥信息。
标准密码算法白盒化又可根据密钥是否可更新分为静态白盒技术与动态白盒技术两种,如图5所示。
图5:静态白盒与动态白盒
静态白盒:白盒生成后密钥是确定的,更新密钥需要重新生成并分发白盒。
动态白盒:白盒与密钥不完全绑定,可通过对输入中经白盒处理后的密钥进行替换实现密钥的更新。
2)构造新的白盒密码算法
近年来,随着物联网、金融等行业的应用场景拓展与安全要求提高,白盒密码的应用需求随之扩大,具有白盒特性的新密码算法及相关产品应运而生。该类算法不基于现有标准密码算法,无需进行密钥分发与存储,而是根据不同的设备指纹或密钥为用户生成不同的加密白盒,并直接通过SDK或接口等形式分发给用户进行加解密操作,可实现“一机一密”的功能。
三、技术方案
根据白盒密码的不同实现方式,本报告选取了查找表技术、SOTP密码算法和软件TEE三种典型的白盒密码相关技术方案进行研究,分别对应标准密码算法白盒化、构造新的白盒密码算法以及系统安全方案三类构造策略。
1、标准密码算法白盒化:查找表技术
查找表技术是由Chow等人最早提出的白盒加密技术方案,可基于DES或AES等分组密码算法实现,属于标准密码算法白盒化范畴。
任何有限函数理论上都可转化为一个包含所有可能的输入和输出的查找表。举一个极端的例子,如果将AES-128加密用一个简单的查找表来表示,即先将128比特密钥固定,每种可能的128比特明文输入(共2^128种可能)一一对应了一种128比特密文输出,那么AES-128可以用一个5.4×10^39字节(2^128×128比特)的查找表替换。简单查找表的理论大小与输入输出大小的对应关系如表1所示。
表1:简单查找表大小
然而,这种简单查找表的大小随着输入输出的长度增大而指数级增大,存储这样庞大的查找表在现实应用中不具有可行性。为了使查找表缩小到可接受的大小,需要将加密算法进行拆解,生成一系列较小的查找表进行组合使用。
Chow等人于2003年提出了DES算法和AES算法的白盒化实现,其基本原理为将密码算法的每一轮运算拆分为一个个小模块,对每个小模块进行混淆处理,并将每个模块所有可能的输入输出转换为一个查找表。即将所有操作转化为依赖于密钥的随机查找表网络,密钥被硬编码到查找表中。白盒密码的执行过程转换为一个个查找表的查找过程,使得攻击者无法从查找表中分析得到密钥。查找表技术的原理示意图如图6所示。
图6:查找表技术
包含查找表的白盒算法与标准算法的大小比较如表2所示。由此可见,虽然查找表的引入导致了算法大小的增加,但对算法的拆解使得查找表大小仍保持在可接受范围内。
表2:白盒算法与标准算法大小比较
2、构造新的白盒密码:SOTP密码算法体制
SOTP(Super One-Time-Password)密码算法体制是一种新型白盒密码。
SOTP算法根据用户密钥信息设计均匀、非线性的单项扩散变换,保证由配置数据到用户密钥的不可逆性,根据参数配置信息生成相应的密码部件,构建用于加密的密码墙,如图7所示。
图7:密码墙构造步骤
具体而言,密钥通过特定算法生成与之一一对应的配置参数,配置参数确定了密码墙中的密码砖、数据回流、交织层等各个组件的信息。根据配置信息生成的密码墙即为与密钥唯一对应的白盒加密算法,可理解为将标准加密算法中的各类组件和过程进行随机重组,生成与密钥唯一对应的独一无二的新算法。密码墙的示例结构如图8所示。
图8:密码墙
通过密钥生成与密钥绑定的独一无二的密码墙(即白盒算法)后,可将数据输入密码墙中以实现加密,加密步骤如图9所示。攻击者无法通过密码墙恢复出密钥信息,可以抵抗白盒密钥攻击。
图9:密码墙加密步骤
3、系统安全方案:软件TEE
软件TEE方案采用虚机源码保护技术,从系统层面而非算法层面进行密钥和加密程序的保护,相当于在APP内部通过纯软件方式建立了一块可信执行环境,如图10所示。虚拟源码保护方案将待保护的核心代码通过独有的指令集编译生成虚机指令,并在虚机安全运行环境中执行,实现对核心代码的强保护、反调试和探针监控。
图10:虚机源码保护
四、总结分析
1、功能性
针对现有对称密码算法,特别是AES、DES/3DES、SM4等分组密码算法,目前已经有较为丰富的白盒化方案与应用。SOTP等全新构造的白盒密码算法同样也基于对称密码体制。
而由于公钥密码算法在数学构造上的特殊性,绝大多数白盒密码解决方案仅支持分组密码等对称密码体制,而身份认证、数字签名等功能一般需要公钥密码算法的支持。某些厂商声称支持RSA等公钥密码算法,但缺乏具体技术文档的支撑。
2、安全性
标准密码算法白盒化技术采用符合标准的国际密码算法(AES等)或国密算法(SM4等)。改变算法内部的构造会对算法造成影响,具体影响性目前仍然没有足够数学评估,是否会造成安全强度降低还有待论证。但是相对于将密钥存储在不可靠介质上,白盒的攻击难度提高很多。
全新构造的白盒密码算法由于未经国际或国家标准认证,且缺乏明确的安全评估指标体系,因此应用具有一定的风险,需要相关机构对算法进一步证明并经过国家密码管理局等机构的技术认证。
3、应用分析
与手机等个人智能终端设备不同,轻量化的物联网设备通常暴露在公共环境中,更容易遭受白盒攻击。白盒技术可用于缺少TEE芯片支持的轻量级物联网设备环境中,对涉及身份认证、数据加密等功能的密钥进行安全保护。
当前的应用白盒应用方案多针对基于移动APP。需要根据物联网实际应用场景定制安全加固方案,将白盒与物联网的安全认证系统结合。
声明:本文来自电子商务电子支付国家工程实验室,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。