咸 凛,郝 嘉
(中国电子科技集团第三十研究所,四川 成都 610000)
PUF是近年来安全保密领域的新概念,因其自身特殊性,非常适合于解决目前存在的信息安全问题,于是成为安全领域的研究热点。由于它在系统认证和密钥生成等方面具有广泛的潜在应用前景,因此研究PUF在实际密码系统中的使用,既可以更好地理解和应用PUF,也便于在以后研究和开发中有效提升密码系统的安全性。
在传统的PBE系统中,密钥通过“盐(salt)+口令”的方式进行生成保护,其中“盐”由伪随机数发生器产生。PBE系统通过盐和口令生成密钥加密密钥(Key Encrypting Key,KEK),再使用KEK对用户的内容加密密钥(Contents Encrypting Key,CEK)进行加密保护,最后PBE将盐与加密保护后的CEK数据存储在系统中的非易失存储器中。图1显示了现有PBE系统密钥的生成方式。
图1 现有PBE系统密钥生成
在PBE系统中,伪随机数发生器用于产生系统密钥保护使用的“盐”,而盐在PBE系统中用来保护KEK,防御字典攻击[1]。可见,盐的安全将直接影响整个系统的安全性。
现有伪随机数生成器大都基于公开算法,因此只要获得伪随机数的生成种子,攻击者就可以轻易伪造一个与原伪随机数发生器响应行为一模一样的克隆伪随机数发生器,从而获得PBE系统的盐。攻击者在获得盐后,即可根据字典数据生成大量候选KEK,解密加密的CEK,大幅度缩减破译尝试时间。在获得盐和破译的CEK后,攻击者还可以完美克隆PBE系统,进而对整个密码密钥系统造成更大破坏。
物理不可克隆函数(Physical Unclonable Function, PUF)是指对一个物理实体输入一个激励,利用其不可避免的内在物理构造的随机差异输出一个不可预测的响应。现实中,每一个物理对象在加工制造过程中由于制造工艺的局限性,在物理对象内部会引入一些随机差异(变化),且这些随机差异的引入在制造过程中是不可控、无法避免也无法复 制的[2]。
因此,在PBE系统中使用PUF,从信息安全的角度来看,具有以下优势。
(1)具有天然的物理防克隆攻击特性。由于制造工艺的局限性,无法复制两个一样的PUF设备。在PBE系统中使用PUF,可以使得整个硬件具有物理不可克隆性。
(2)使用具有模糊提取模块的PUF比使用非易失性存储单元能更安全地保护盐。在最初的生成阶段,给PUF输入一个激励并产生一个响应,然后模糊提取算法根据响应产生一个包含额外信息的盐,其中额外信息被称为辅助数据。恢复阶段,只需要输入辅助数据和激励给模糊算法,算法即可从PUF中重建相同的盐,再使用盐即可重建KEK。由于盐可以通过PUF恢复,因此只需要存储辅助数据即可。
(3)由于随机性由设备本身提供,不需要传统非易失性存储步骤,额外地提供了对探测攻击和其他可能的侧信道攻击的安全性。使用PUF可以在规定的时间内派生出安全密钥,且在使用后删除。因此,密钥不需要永久保存成数字格式,而只当需要操作时出现在非易失性存储器中。这限制了攻击者提取设备中密钥的攻击时限,有效改善了密钥存储的安全性,同时大大降低了密钥管理和维护成本[3]。
可见,在PBE系统中使用PUF生成和保护密钥,可以有效抵抗克隆攻击。
初始化阶段,采用模糊注册算法[4]使PUF生成盐的过程如图2所示。首先,激励进入PUF产生响应值;其次,响应值与纠错码字异或产生辅助数据;最后,将产生的响应值作为盐送入后级使用,同时存储产生的安全数据。
图2 PUF生成盐和辅助数据
基于PUF的PBE系统初始化过程如图3所示。
基于PUF的PBE初始化包括以下三个步骤:
(1)生成盐和KEK,激励输入PUF产生辅助数据和盐,将用户口令和盐一起输入单向散列函数,得到的散列值就是KEK;
(2)加密会话密钥,KEK生成完成后,使用KEK对CEK进行加密;
(3)丢弃KEK,将并加密后的CEK和辅助数据一起保存在安全的地方,KEK可通过辅助数据和口令重建。
PBE初始化完成后,正式使用时需要采用模糊提取算法[5]通过辅助数据重建盐,再利用盐和口令重建KEK,进而解密得到CEK。
盐的重建过程如图4所示。首先,将与初始化过程相同的激励输入PUF产生响应值;其次,将响应值与辅助数据异或产生纠错码;再次,将纠错码送入解码器通过纠错算法进行纠错;最后,将解码器产生的纠错码与辅助数据异或产生响应,此时的响应即是盐。
图4 盐的重建
PBE系统在PUF完成盐的重建后即可恢复KEK,进入正常工作流程。基于PUF的PBE系统的工作流程如图5所示。
图5 基于PUF的PBE系统工作流程
基于PUF的PBE系统工作流程包括以下三个步骤:
(1)重建KEK,利用辅助安全数据和PUF,使用模糊提取算法重建盐,再将盐和用户口令输入单向散列函数,重建KEK;
(2)解密会话密钥,利用重建的KEK密钥对加密存储的会话密钥进行解密,恢复会话密钥;
(3)使用解密得到的会话密钥完成消息的加解密。
需要特别注意,传统PBE系统在使用时,用户只需要正确输入口令即可正常使用PBE系统。相较于传统PBE系统,基于PUF的PBE系统除了要求用户在使用时正确输入口令外,还需要输入与初始化阶段一致的正确激励。如果缺少激励,即便用户输入正确口令,PBE系统也无法正常使用。
由于基于PUF的PBE系统具有这样一种“激励”的特性,可以将“激励”与身份认证、接入鉴权等安全功能进行拓展绑定。用户想获得正确的激励则,需要通过相关的安全检查,进一步提升整个PBE系统的安全性。同时,由于盐的重建依赖于辅助数据和PUF对输入激励产生的物理响应,因此可以将辅助数据、激励甚至加密后的CEK存放在专门的服务器上,只在使用时下发,最大程度减少PBE系统携带的密码资源,保障PBE系统的安全。即便PBE系统遇到了丢失或被攻击者捕获,由于PUF具有物理不可克隆性,攻击者也无法克隆PBE系统,最大程度减少了系统面临的安全风险。
在PBE系统中使用PUF,为PBE系统的密钥管理与安全增强提供了一种新思路。区别于传统的密钥提取与管理技术,基于PUF的PBE系统将物理特性与密钥生成管理结合,赋予了系统良好的抗攻击性。相比传统密钥,基于PUF的PBE系统可以携带极少密码资源,因此具有管理成本低、隐秘性强的特点,同时又由于继承了PUF技术的天然特性,系统还具有防止字典攻击和克隆攻击的优点。随着PUF技术的进一步成熟,PUF技术有望在越来越多的密码系统中得到应用,并作为重要的安全技术手段显著增强密码系统的安全性。