基于PUF的安全固态盘双向认证协议

2020-04-24 03:07冯志华鄢军霞
计算机工程与设计 2020年3期
关键词:口令固态攻击者

冯志华,罗 重+,鄢军霞,邓 威

(1.中国航天科工集团第二研究院 北京计算机技术及应用研究所,北京 100854; 2.武汉软件工程职业学院 信息学院,湖北 武汉 430205)

0 引 言

固态盘由于其出色的数据读写性能,逐渐成为主流存储载体,存储着大量企业和个人的机密数据和敏感信息。为确保所存储重要数据的安全,当前主要采用加密的方法对固态盘中的数据进行保护。

然而仅考虑对数据的加密不足以保证数据的安全。Gemalto公司2019年更新的数据泄露水平指数(breach level index)最新调查报告显示,敏感数据的安全问题主要来自存储介质的遗失和盗用,而非病毒和黑客。设计安全的密钥管理机制和身份认证协议成为固态盘数据安全的基础。

现有针对固态盘的身份认证和密钥管理存在着以下难点:

(1)身份认证:简单的口令认证容易因熵值过低而易被攻破,而引入生物特征作为认证因子在提高安全性的同时也会带来较高成本。对于身份认证协议,选择可靠有效的身份认证因子能够直接影响身份认证协议安全性的强弱[1];

(2)密钥管理:直接将密钥存储于固态盘内存在较大安全隐患,有研究结果表明,当口令与数据密钥无关时攻击者可能绕过加密固态盘身份认证过程从而直接获取数据密钥[2]。分布式密钥托管方案受使用环境的局限性较大,过于依赖密管中心(key distribution center,KDC)的运行[3]。

针对以上问题,本文提出一种基于PUF的安全固态盘两方认证协议。以加密固态盘PUF模块生成的物理指纹作为身份认证和密钥管理过程中的最高可信根,实现多用户环境下固态盘用户的身份识别和密钥分发。并使用BAN逻辑对所设计身份认证协议进行形式化分析证明其安全性。

1 固态盘安全威胁

出于安全考虑,当前固态盘主要采用加密方式对数据进行保护。在直接暴力破解加密算法的收益远低于成本的情况下,攻击者更倾向于绕过密码算法对固态盘进行攻击。因此,出于密钥管理、身份认证以及固态盘自身特性引起的安全威胁尤其值得注意。固态盘安全威胁如图1所示。

图1 固态盘安全威胁

密钥管理是固态盘数据存储安全的核心。加密固态盘密钥管理有多种形式。将数据密钥存储于固态盘内是常用的解决方案,一旦设备失窃,攻击者可以通过某些特定攻击手段获取密钥进而获取所存秘密信息。荷兰拉德堡德大学研究人员发现部分加密固态盘自加密功能能够被轻易绕过,当数据密钥不是由用户口令值派生时,攻击者可以通过固态盘的调试接口,对固态盘固件进行篡改,改变RAM中固件的原始认证机制,跳过身份认证环节从而直接获取数据密钥解密固态盘中的数据[2]。因此对于固态盘固件的升级和使用也应采取防护手段防止安全机制的失控。

将密钥直接存储在固态盘内同时存在其它安全隐患。固态盘使用闪存作为数据存储介质,为延长闪存颗粒使用寿命,需要在闪存颗粒变得不可靠之前进行磨损均衡。同时垃圾回收机制的存在会使得固态盘内数据产生不可预料的易地搬迁行为。原始存储的数据在未被覆盖之前一直都会存在。如果数据密钥直接存储在固态盘中未单独隔离出的受保护存储区域,那么未受保护的数据密钥在删除之后仍有可能被检索出来。

依赖KDC进行密钥管理与身份认证的方案虽然不需要在固态盘内存储密钥,但同样存在一系列问题。在固态盘工作时,每一个新的用户任务执行都需要有KDC的授权认证,一旦KDC发生故障,整个存储系统都无法使用。所有的用户密钥都存放在KDC中,一旦KDC被攻破,整个存储系统的数据都面临失窃的风险。其访问控制过于依赖代码的安全性和健壮性,当认证协议设计不完善时可能遭受信道监听重放等攻击。同时其存在内部管理员通过访问权限绕过访问控制的缺陷[3]。

作为数据存储设备,加密固态盘出于使用环境以及管理手段的限制,用户可能无法完全隔离攻击者对加密固态盘的接触,因此有必要在固态盘与主机接口处实现访问控制机制。针对加密硬盘的典型攻击手段“恶意女仆攻击”(evil maid attack)[4]是加密固态盘面临的一大安全挑战。通过该攻击手段,恶意人员可能在加密固态盘拥有者离开设备时直接接触设备,通过修改主引导区程序记录执行击键记录,插入微型可启动USB设备,刷新BIOS或UEFI,甚至用相同的型号替换机器[4,5],从而盗取用户口令获得加密硬盘的访问权限。因此,将加密固态盘的安全性寄托于用户口令的保护上是不完善的,需要引入固态盘硬件特性增强数据安全性。

2 双向认证协议介绍

面对固态盘面临的安全威胁,为确保存储数据的安全,必须提出有效的身份认证协议及密钥管理方案。

最早于1981年提出基于口令的用户认证和密钥协商协议之后,许多基于该思想的认证协议被提出。然而由于口令的低熵特性,这类协议容易受到口令猜测攻击。为克服基于口令的认证协议所面临的困难,结合生物特征和口令的多因子认证协议应运而生。相比基于口令的认证协议,使用人脸、指纹、虹膜、指静脉等生物特征的认证协议中,认证因子不易遗失,提高了猜测、复制难度,但仍存在生物特征被复制盗用风险,且需要额外的特征提取装置,实现更为复杂且成本相对较高。

类似于生物特征,在芯片制造过程中不可避免的引入随机制造差异,不同实体电路拥有独一无二的物理“指纹信息”,即PUF技术[6,7]。其优势在于。

(1)PUF信息随电路实体绑定,不存在遗忘的风险;

(2)PUF信息无法被克隆;

(3)猜测PUF值十分困难。

因此选择PUF作为安全协议最高可信根,对身份认证和数据密钥进行保护。

2.1 安全模型与符号定义

本文提出的固态盘双向认证协议在挑战-响应机制的基础上,在拥有PUF实体的加密固态盘、UKey和用户三方之间进行相互认证。用户提供口令的认证。UKey拥有单向散列函数H,对称加密算法E。加密固态盘拥有单向散列算法H,对称加密算法E,PUF实体,模糊提取函数Gen和Rep。加密固态盘上电后PUF模块输出经模糊提取器纠错之后的加密固态盘物理指纹F,F仅在固态盘主控芯片片内使用。协议应用安全模型如图2所示。

图2 安全模型

该模型包含UKey、加密固态盘和用户3个部分。在固态盘进入正常工作状态之前,用户需使用UKey进行身份认证。用户输入正确的口令,UKey和固态盘控制芯片基于PUF值进行双向认证,认证通过则UKey发送所存数据密钥密文至加密固态盘,加密固态盘解密出数据密钥。由此对固态盘内所存密文信息解密,进入正常工作状态。

对协议描述所需符号给出定义见表1。

2.2 基本概念

单向散列函数:加密单向散列函数将任意长度的字符串映射到称为散列值的固定长度的字符串。它可以表示为:h∶X→Y, 其中X={0,1}*,Y={0,1}n。X是任意长度的二进制字符串,Y是固定长度的二进制字符串。加密单向散列函数具备很好的抗原像攻击、抗第二原像攻击和抗强碰撞攻击的特性,不可能从计算得来的散列值来逆向计算其输入值,因此能很好地保护原始信息不被泄漏。

模糊提取器:模糊提取器实现PUF值纠错功能,上电之后输出具备一致性的上电初始值,为固态盘提供稳定物理指纹信息。模糊提取器(fuzzy extractor)[8,9]可很好地实现PUF值纠错的功能:模糊提取器是一对随机流程,分为生成(generate)和重现(reproduce),用于获得具备一致性的PUF响应。

表1 符号定义

Gen:以PUF上电初始值P为输入,结合随机数r生成加密固态盘物理指纹F和辅助数据HD=(w,r)。

Rep:以带噪音的PUF上电初始值P′和辅助数据HD=(w,r) 为输入,输出加密固态盘物理指纹F。 其中每次上电初始值间的汉明距离dist(P,P′) 必须小于一定值。

辅助数据无需保密,因为即使获取辅助数据也可保证输出的不可预测性[10]。但是需要保证辅助数据的完整性才可恢复出具有一致性的PUF值,因此辅助数据附带校验信息,使用散列函数即可实现完整性校验。

2.3 协议描述

所提出的双向认证协议包含3个阶段:注册阶段、身份认证阶段、认证密钥更换阶段。

(1)注册阶段

注册阶段,在安全的环境下,即设备管理员确认用户真实物理身份,同时确认固态盘主机无击键记录,搭线,病毒等安全威胁的环境下,将加密固态盘与用户身份绑定。用户i将UKeyUi插入主机,设置初始口令值ki, 口令ki的hash值Ki=H(ki), 计算PIDi=H(IDi‖Ki)。 加密固态盘上电后获得初始响应值P,模糊提取函数Gen从P中获取加密固态盘物理指纹F和辅助数据HD。 加密固态盘拼接口令hash值Ki和物理指纹F得Ki‖F, 计算拼接值的hash值H(Ki‖F)。 加密固态盘无需存储认证密钥相关信息,仅需维持用户PIDi表以及记录对应PIDi所在数据分区。UKey存储Di=H(Ki‖F)、 辅助数据HD以及用户口令ki的hash值Ki=H(ki)。

使用加密固态盘物理指纹F和用户身份信息拼接值的散列值Keyi=H(PIDi‖F) 作为根密钥加密固态盘数据密钥DKi得 {DKi}Keyi, 存储于UKey中。

(2)身份认证阶段

欲访问加密固态盘中存储的数据时,用户需配合UKey进行身份认证。

身份认证阶段具体步骤如下:

2)加密固态盘收到认证请求命令之后生成随机数r1, 发送M1=至Ukey;

3)UKey接收消息M1, 生成随机数r2, 使用注册阶段存储的Di=H(Ki‖F) 作为密钥分量,计算

SK1=H(r1⊕Di)C1=ESK1(r1‖r2)

计算结束UKey发送M2= 至加密固态盘;

4)加密固态盘接收消息M2, 生成随机数r3。 使用模糊提取函数Rep和辅助数据HD从PUF上电初始值中提取物理指纹信息F, 使用F计算认证密钥SK1

加密固态盘发送M3= 至Ukey。

5)UKey接收消息M3, 计算

C3=ESK2(r3‖{{DKi}Keyi})

(3)认证密钥更换阶段

认证密钥更换阶段发生于用户需要更换口令的时刻。更换流程如下:

1)身份认证执行完毕的情况下,用户输入认证密钥更换命令,加密固态盘生成并发送随机数r4;

2)用户输入新口令k′, UKey计算K′=H(k′), 生成随机数r5, 计算SK3=H(r4⊕Di)

C4=ESK3(r4‖r5‖HD‖Ki‖K′i)

向加密固态盘发送M5=

3)加密固态盘接收M5, 生成随机数r6, 使用模糊提取器和散列函数计算会话密钥并解密C4, 验证r4是否相符,相符则计算

D′i=H(F‖K′i)SK4=H(r5⊕Di)C5=ESK3(r5‖r6‖D′i)

向UKey发送M6=

4)UKey接收M6并解密C5, 计算

SK5=H(r6⊕D′i)C6=ESK5(r6)

向加密固态盘发送M7=

5)加密固态盘接收M7并以D′i和r6恢复会话密钥SK5解密C6, 验证r6是否相符,相符则确认密钥更换流程完成,认证密钥更换流程结束。

2.4 密钥的保护与传递

本方案设计中,数据密钥由根密钥加密存储于UKey中,实现数据密钥与加密数据的物理隔离。根密钥由加密固态盘PUF值,UKey设备ID以及用户口令K三者共同组成,确保攻击者无法在未知口令的情况下通过篡改认证机制获取固态盘数据密钥。

用户通过口令验证同时UKey完成与加密固态盘的相互认证之后,UKey使用最后一次握手的会话密钥加密所存数据密钥传递至加密固态盘,确保安全的将数据密钥传递给加密固态盘。

3 协议安全性分析

BAN逻辑作为安全协议有效的形式化验证模型,被广泛用于分析身份验证和密钥分发协议的安全性。本文使用BAN逻辑分析提出的身份认证协议,从形式化角度证明协议安全性。认证密钥更换协议分析流程类似,故不再赘述。

3.1 身份认证协议理想化

对前述身份认证协议进行理想化,理想化过程如下:

(1)口令认证及用户身份信息PIDi发送;

(2)固态盘收到认证请求和用户身份信息PIDi之后,返回随机数和身份信息PIDi⊕r1异或值,r1可视作由PIDi加密,PIDi为加密固态盘和UKey共享密钥。M1∶S→U∶{r1}PIDi;

(3)UKey接收消息M1后解析并处理生成消息M2, 发送至加密固态盘M2∶U→S∶{{r1‖r2}SK1,HD,K};

(4)加密固态盘接收消息M2并处理,验证UKey是否合法,合法则生成消息M3, 发送至UKeyM3∶S→U∶{r2‖r3}SK2;

(5)UKey接收消息M3并处理,验证加密固态盘是否合法,合法则生成消息M4, 发送数据密钥至加密固态盘M4∶U→S∶{r3‖{KEY}}SK2

Key={DKi}Keyi)

3.2 BAN逻辑分析

(1)用到的BAN逻辑推理规则消息含义规则

临时值验证规则

接收消息规则

消息新鲜性规则

信念规则

密钥与秘密规则

会话密钥规则

(2)初始化假设

由于加密固态盘会话密钥生成过程如下F=Rep(P,HD),D=H(F‖K),SKi=H(ri‖D)。 UKey在注册阶段已存储会话密钥分量D, 因此假设A1,A2成立。r1为会话密钥SK1的必要参数,r2为会话密钥SK2的必要参数。而会话过程中S认为r1是新鲜的,假设A3成立,根据消息新鲜性规则可认为消息M2中的r2也是新鲜的。由会话密钥规则知如果委托人P认为会话密钥是新鲜的并且委托人P和Q认为X是会话密钥的必要参数,则委托人P认为他/她与Q共享会话密钥K,故有A5和A6成立。

同上,r2为会话密钥SK2的必要参数,而会话过程中U认为r2是新鲜的,假设A4成立。由会话密钥规则知A7成立。

因此,给出身份认证协议的初始化假设

(3)预期证明目标

(4)形式化分析过程

U收到消息M3时,U◁{r2}SK2。

根据消息含义规则可得

(1)

由假设A4可知,U|≡#(r2)。

由临时值验证规则可知

(2)

S收到消息M2时,S◁{r1}SK1。

由临时值验证规则可知

(3)

S收到消息M4时,由消息含义规则

(4)

目标③S|≡U|≡KEY得证。

4 协议安全性验证

本节使用SPIN工具对协议进行模型检测,并对可能存在的攻击场景和攻击者行为进行描述,给出所提出协议的特性分析。

4.1 实验环境

(1)操作系统:Windows 10;

(2)Spin版本:6.4.9;

(3)TclTk版本:8.6.8.0。

4.2 实验过程

(1)诚实主体建模

为防止反射攻击,协议设计每条消息结构均有所差异,因此建立四通道协议模型,减小模型复杂度防止状态空间爆炸问题。

协议诚实主体为UKey和SSD,SSD发起通信,二者互相接收消息并验证所接收消息合法性。

(2)攻击者建模

考虑PUF可能会遭受侵入式和故障注入等攻击,但这些攻击不会破坏安全协议的完整性,同时可以通过设备层面的防护手段来解决此类攻击[11],而且攻击者无法对PUF进行逆向工程,故选择Dolev-Yao模型思想作为攻击者模型建立依据。

1)攻击者已知完整的身份认证协议;

2)攻击者无法直接通过物理接口读取UKey内部信息;

3)攻击者可以截获UKey与加密固态盘之间的通信报文,并在接下来的认证协议中冒充协议合法主体的身份以获取秘密信息;

4)攻击者可以是系统的某个合法用户,拥有属于自身合法的UKey和用户口令,能够访问固态盘中属于自己的数据;

5)攻击者可以拿到加密固态盘对其加密手段进行破解,但无法同时获取用户Ukey;

6)攻击者拥有多项式计算能力,可以轻易地破解低熵密码或者口令,但无法预测随机数,同时无法在给定时间内在没有对应密钥的情况下从给定的密文中破解出明文,也无法将给定明文加密成一个有效密文。

4.3 实验结果

对协议认证性和保密性进行检测,检测结果如图3、图4 所示。

图3 协议运行序列

图4 协议验证结果信息

由协议运行序列图可知,协议运行过程中攻击者无法进行有效攻击。由协议验证结果信息图可知,单个全局系统状态需要96字节内存,检测后状态树深度27层,无错误发生。检测结果表明了所设计协议的安全性。

4.4 协议特性分析

形式化分析证明协议具备对重放攻击,中间人攻击等攻击手段的防护能力。针对攻击者可能具备的其它攻击手段,对协议安全特性进行分析。

(1)抗恶意女仆攻击:方案采用UKey和用户口令认证,实现what you have和what you know的双因子认证。攻击者即便通过技术手段窃取到用户设置的口令,在没有得到UKey的情况下也无法对加密固态盘中数据进行解密读取;

(2)会话密钥的保护:DPA(差分功耗攻击)通过监测在同一密钥下多组数据的加解密从而积累所使用密钥的旁路信息来进行密钥的恢复[12]。会话密钥以PUF值为可信根,引入随机数作为动态密钥分量。由于认证过程所使用的认证密钥每一步都引入了随机数参与,每一次认证的会话密钥均是动态变化的。也无法通过让被认证方反复执行解密运算,获取大量功耗或电磁波形从而分析出认证密钥。即便攻击者通过侧信道分析出某一次的会话密钥,也无法获取后续会话密钥。对侧信道攻击和中间人攻击具备一定防护能力;

(3)数据密钥的保护:传统加密固态盘数据密钥保护方法将密钥直接保存在固态盘或者UKey的flash中,故容易遭受侵入式或半侵入式攻击。本协议中数据密钥的保护采用固态盘物理指纹即PUF值作为最高可信根,结合用户身份信息对数据密钥进行加密,只有通过双向认证UKey才会向外发送加密后的数据密钥。方案同时实现数据密钥与固态盘的物理隔离,单独获取UKey或者加密固态盘均无法恢复出完整数据密钥;

(4)抗物理探测攻击:加密固态盘除自身PUF模块以外不存储会话密钥相关信息,辅助数据及口令值均由UKey提供,即使攻击者直接使用侵入式或半侵入式手段获取了PUF的结构,由于PUF的物理不可克隆性,也无法恢复出会话密钥SK的值;

(5)攻击者即便是系统某合法用户,由于合法用户的UKey仅存储自身口令与固态盘物理指纹拼接之后的散列值,无法获得原始固态盘物理指纹,同时由于双向认证协议的存在,无法冒充加密固态盘,从而无法获取其它合法用户的数据密钥以及访问其它合法用户所存储的数据。

5 结束语

本文提出一种基于PUF的安全固态盘双向认证协议,实现对加密固态盘的身份认证和密钥管理。所设计协议利用PUF作为认证过程最高可信根,相比传统固态盘身份认证协议,无需在盘端存储认证密钥。在每次握手交互过程中引入随机数隐藏固定共享密钥信息,能够有效抵抗重放攻击,物理探测攻击,侧信道攻击。同时,该协议将PUF部署到固态盘端,无需提取并存储大量PUF原始数据,将用户口令、UKey设备ID与PUF值结合作为根密钥防止恶意女仆攻击,同时可针对多合法用户进行部署,有利于固态盘分区加密多用户场景使用。在日益严峻的信息安全大环境下,该协议对抵御非法访问和恶意攻击具备一定意义。

猜你喜欢
口令固态攻击者
机动能力受限的目标-攻击-防御定性微分对策
固态Marx发生器均流技术研究
Sn掺杂石榴石型Li7La3Zr2O12固态电解质的制备
透明陶瓷在固态照明中的应用进展
高矮胖瘦
口 令
正面迎接批判
好玩的“反口令”游戏
有限次重复博弈下的网络攻击行为研究
宽禁带固态功放在导航卫星中的应用