更全的杂志信息网

基于USB Key的安全增强密钥生成方案

更新时间:2009-03-28

1 引言

近年来,嵌入式设备以其集成度高、体积小、功耗低等特点广泛应用于工业控制、国防军事、消费电子等多个领域。但是,由于嵌入式系统安全防护机制弱、易受物理攻击等特点,其隐私数据的安全性正面临严重威胁[1]。比如,国内电力部门采用特殊移动终端收集电能表数据等信息,经处理后上传到云服务器端[2]。虽然给数据采集带来了便捷性,但是该移动终端设备在设计时很少考虑针对隐私数据的保护机制,容易受到物理攻击,造成用户隐私信息泄漏的后果。又比如,智能终端常用来存储用户敏感信息,并广泛应用于电子支付、身份认证等各个方面[3]。由于嵌入式系统的开放性,敏感数据存在被恶意程序窃取的风险;另外,一旦设备丢失,攻击者就可能窃取敏感信息,并伪装用户身份进行非法操作。

针对嵌入式系统隐私数据泄漏的问题,目前已经出现了许多成熟的保护方案(比如加密保护、完整性检测、访问控制等),这些方案的安全级别主要取决于密钥的安全强度[4]。如果密钥泄漏,整个安全机制将会失效。因此针对密钥的保护是保护嵌入式系统隐私数据的关键。

再次,计算权向量并进行一致性检验。根据上述各个矩阵,通过根法对其权向量进行计算,以矩阵A为例来说明各单层次判断矩阵权向量的计算方式:设A矩阵的权重向量为W,求判断矩阵A每行的元素乘积,开3次方并进行归一化处理,可得权重向量,根据公式(1)

嵌入式系统的密钥一般永久存储在片外非易失性存储器(NVM)中,智能终端的密钥就是以这种方式进行存储。攻击者可以通过物理访问NVM的方式直接窃取密钥,也可以对NVM与芯片之间的信道进行侦听,从而窃取密钥[5]。为提高嵌入式系统密钥的安全性,学者们设计了将密钥存储在片上NVM或者片上易失性存储器(比如SRAM)的方法。但这些方法归根结底都需要在嵌入式系统上存储密钥。只要攻击者能够物理访问嵌入式系统,密钥就存在泄漏的风险。特别的,当嵌入式系统不再通电时,存储器的内容仍然被保留,攻击者若对设备进行侵入式攻击,就能窃取密钥[6]

针对嵌入式系统下密钥存储面临的安全问题,本文提出了一种安全增强密钥的生成方案。本文首先对安全增强密钥(SEK)的特点进行了分析,并给出了利用USB Key生成SEK的详细设计方案,最后对方案原型进行了实现。

2 背景知识

2.1 安全增强密钥

本文提出的SEK在概念上是指天然地能够有效抵抗针对嵌入式系统的物理攻击的密钥。它是一种仅在需要时生成,使用后即销毁的密钥,在其生成周期之外,攻击者无法窃取SEK。在设计上,SEK由嵌入式系统和外设利用DHKE共同生成。仅仅拥有嵌入式系统或者仅仅拥有外设都无法生成SEK。攻击者通过物理访问嵌入式设备的方式无法得到生成SEK的有效信息,无法破坏生成SEK所需的相关数据,也无法通过侦听信道的方式窃取密钥。考虑到嵌入式设备的特殊性,本文方案以USB Key作为外设,利用USB Key的安全机制保护生成SEK的部分数据,进一步增强了攻击者窃取SEK的难度。

2.2 DHKE

DHKE[7]是在公共信道上安全地协商密钥的特定方法。它允许尚未认证的双方在非安全信道上建立共同的密钥。之后双方可以利用此密钥实现信息的安全传输,而不必担心信息被窃取。DHKE的安全性基于有限域上计算大素数离散对数的困难性[8]

2.3 USB Key

KEM是本方案中的核心部分。双方的KEM功能相似,代码基本相同。该模块包含以下3个模块:

3 威胁模型与安全假设

通常情况下,嵌入式系统的隐私数据加密后存储在NVM中。只要密钥不泄漏,就能保证隐私数据的安全。密钥一般存储在片外存储器或片上存储器中。如果攻击者能够物理访问嵌入式设备或者对嵌入式系统总线进行侦听,就可能获得密钥从而窃取隐私数据。此外,如果攻击者对密钥进行破坏,即使合法用户也无法还原隐私数据的真实涵义,此种情况下,相当于合法用户丢失了隐私数据,造成的损失更为惨重。另外,由于无法保证嵌入式系统与外设之间信道的安全性,攻击者可以发起信道攻击,窃取双方通信的交互数据。如果该数据含有生成密钥的关键信息,就容易造成密钥泄漏的后果。威胁模型如图1所示。

美国幼儿身体活动的环境政策存在于幼儿体育政策中,部分体育政策存在于幼儿保育政策中,所以,本文对所查阅的文件经过多次的剔除,以剥离出幼儿身体活动相关的环境指导政策。在经过综合、汇总与逻辑梳理后,总结为以下几方面进行具体研究。

  

图1 威胁模型图

本文方案利用USB Key通过DHKE为嵌入式系统提供密钥,不考虑针对密钥的边信道攻击。假设攻击者可以物理访问嵌入式设备,并能够对嵌入式系统总线进行侦听。此外,假设恶意程序可以在SEK生成周期内发起针对密钥的攻击,但无法破坏嵌入式系统内核访问控制的保护机制。

4 方案设计

本章首先给出了本文方案的总体架构,对设计思路进行了详细阐述,并对设计的各个模块进行了介绍。之后给出了嵌入式系统(ES)与USB Key(UK)之间的认证方法,密钥种子生成方案,以及SEK生成协议的详细设计,并对方案中各部分的优势进行了分析。

4.1 架构

利用DHKE生成SEK的过程需要双方协商进行。设计了密钥协商模块(KEM)来完成这种功能。KEM的功能主要是在ES端和UK端生成密钥种子,之后利用密钥种子进行DHKE协商运算,并利用协商出的结果生成SEK。总体架构如图2所示。

  

图2 总体架构图

步骤2 ES_KEM:generate(m1);

(1)密钥交换模块(Key Exchange Module,KEM)

USB Key由智能卡技术演化而来,通常配有与智能卡相同标准的片上操作系统(COS)[9]。USB Key采用硬件与PIN码相结合的方式进行身份认证,仅仅拥有USB Key或者仅仅拥有PIN码都不能达到认证的目的。另外,基于USB Key自身固有的保护机制,外部不能直接访问其存储空间,而只能通过USB Key的程序实现[10]

以培养高素质劳动者和中初级专业人才为目标,以学生技能形成为重点,结合教材内容,建设案例库、网络课程、声像资料、电子教案、数字化素材库和虚拟仿真实训系统等数字化教学资源;实现网上学习、在线辅导、考试评价、证书考核等功能。建立网络交流平台,教师上传教学资源共享资料,学生上传学习资料,实现教学与学习资源共享。

①密钥交换运算模块(Key Exchange Operation Module,KEOM)

KEOM用来执行DHKE算法,该算法主要实现有限乘法群上的模乘操作。

②种子生成模块(Seed Generation Module,SGM)

步骤1 UK_KEM=>EK_KEM:{q,α},UK_KEM向EK_KEM发送q,α。

③密钥生成控制模块(Key Generation Control Module,KGCM)

KGCM模块对密钥的生成过程进行控制。

颂赞简洁含蓄,表面上是歌颂药师如来绣像,字里行间透露出对妻子的浓浓爱意,表达了对妻子苦心绣佛像的感动,以及夫妻之间浓浓的爱意。在中国古代文学作品中,男子对妻子表达爱意的这类作品是极少的。

(2)认证模块(Authentication Module,AM)

AM是双方进行认证的固有模块,负责UK连入嵌入式设备时进行身份认证,主要是对PIN码进行验证。

4.2 认证模块

UK与ES之间传统的认证方式与一般的口令认证方式相同。即用户在ES端输入PIN码后,经UK验证通过才能获得UK的使用权。在该认证过程中,如果攻击者对信道进行侦听,PIN码就存在泄漏的风险。此外,恶意程序可以窃取认证过程中的会话信息数据并发起重放攻击,破坏认证的安全性。因此传统的认证协议安全性较弱,需要对其进行改进。

在本文方案中,UK与ES之间的安全认证是双方互相确认合法身份的过程,也是保证正确生成SEK的前提。因此AM既需要验证PIN码的合法性,又需要验证嵌入式设备的合法性。鉴于UK与ES之间信道的非安全性,传统的认证协议无法达到安全认证的要求,本文方案在传统认证协议的基础上进行了改进。在认证之前,UK端须存有PIN码和嵌入式设备唯一设备号DeviceID的度量值。在认证协议的会话信息中添加了随机数n,抵抗重放攻击;采用对DeviceID和PIN码的哈希值进行验证的方法,抵抗信道攻击。改进后的认证协议的主要过程如图3所示。

  

图3 USB Key认证流程图

步骤1 UK=>ES:{n},UK向ES发送随机数n。

步骤2 ES=>User:{request},ES向User请求PIN码。

步骤3 User=>ES:{PIN},User输入PIN码。

步骤4 ES:create(HP,HD),ES利用sha1算法生成PIN码的哈希值HP=hash( )PIN||n和Device ID的哈希值HD=hash( )

DeviceID。步骤5 ES=>UK:{HP,HD},ES发送HP,HD到UK。步骤6 UK:Verify(HP,HD),UK读取存储区中PIN码的值PIN′生成HP=hash()PIN′||n ,并验证与 HP是否相同;读取DeviceID的度量值HD,验证与HD是否相同。之后返回验证结果。

若验证成功,ES与UK认证成功。若验证失败,终止操作并退出。

对比原有认证协议,在安全性方面,改进后的认证协议增加了对DeviceID的认证过程,可以确保嵌入式设备的合法性,能够抵抗伪造平台攻击。此外,改进后的认证协议不是对PIN码直接进行认证,而是采用对PIN码哈希值进行验证的方法,即使攻击者侦听到了UK与ES间传输的数据,也无法根据HP还原PIN码,无法得到有价值的信息。另外,HP中加入了随机数n,可以确保会话信息的新鲜性,恶意程序即使窃取了HP,仍然无法发起针对认证过程的重放攻击。在性能方面,该认证协议只是引入了随机数n和DeviceID,并增加了一些哈希运算操作,对认证效率影响很小,对用户体验几乎没有影响。因此该协议在提高安全性的同时,也具有很强的实用性。

4.3 密钥种子的生成

SEK的生成需要密钥种子s1,s2,且SEK的安全性主要取决于密钥种子的安全性。因此针对密钥种子的保护机制是实施安全策略的关键。

4.3.1 ES端KEM的加载机制

ES端的密钥种子s1由SGM利用设备唯一硬件特征值UniqueValue生成,UniqueValue由KGCM利用嵌入式设备部分组件的序列号生成。为保证s1的隐私性,必须加强对密钥生成算法的保护。将SGM的代码存储在UK端并受UK固有安全机制的保护,可以确保SGM的安全性,从而保证s1的隐私性。另外,鉴于ES的非安全性,KEM的代码存储在ES端容易遭受篡改攻击。因此,本文方案将KEM的代码存储在UK端,仅在使用时加载到ES端,可以确保KEM的可靠性。

4.3.2 s1、s2的生成

s1、s2的生成流程如图4。在ES端,首先从UK端加载KEM到ES内核态运行。KGCM调用系统API提取UniqueValue,并进行哈希运算。SGM利用UniqueValue的哈希值生成s1。在UK端,加载KEM后,KGCM首先查询s2。若找到s2,直接读取即可。否则,KGCM利用随机数生成器提取nonce,SGM利用nonce生成s2,并将s2存储在UK端。

  

图4 密钥种子生成流程图

北掌水库总库容465.4万m3,库水回水长度约2.0 km。北掌水库两岸土质岸坡塌岸严重,预测库区塌岸宽度范围 30~80 m,塌岸方量 161.1~215.1 万 m3,对库容及大坝安全均造成威协,建议对库区土质岸坡塌岸线范围内的岸坡进行削坡或防护处理,边坡坡度库水位以上按 45°~55°考虑,库水位以下按 13°~15°考虑。此外,大坝坝型为均质土坝,库区两岸第四系中、上更新统低液限黏土均可作为土料使用,库区两岸土质岸坡削坡土料可作为上坝土料使用。

s1、s2对物理攻击具有抵抗性。由于SGM存储在UK端,攻击者对ES进行物理攻击只能得到UniqueValue,无法得到密钥生成算法,因此无法窃取s1,保证了s1的安全性;攻击者对ES进行篡改攻击,无法篡改UniqueValue,因此不能阻止s1的正确生成,保证了s1的可靠性。此外,本文方案的s1、s2具有容易更新的特点,对s1、s2的更新可以实现对SEK的更新,从而提高设计方案的灵活性。具体的,可以通过对SGM中密钥种子生成算法的更新或者对nonce重新提取实现更新s1、s2的目的。

4.4 SEK生成协议

SEK是由ES与UK通过SEK生成协议生成,因此SEK生成协议的正确执行对SEK的安全性至关重要。SEK生成协议由双方的KEM执行,因此需要确保双方KEM的可靠性。在设计时,UK端KEM受UK固有安全机制的保护,ES端KEM采用从UK端加载的方法来确保其可靠性。此外,由于信道的非安全性,SEK生成协议的会话信息存在泄漏的风险,因此设计该协议时,需要保证即使攻击者侦听到了会话信息,也无法得到SEK。本文方案采用DHKE来创建SEK可以达到上述目的。

SEK生成协议执行时,首先由ES和UK利用各自的密钥种子s1、s2生成会话信息m1、m2。之后双方交换会话信息,并利用各自的密钥种子和收到的会话信息生成会话密钥K1、K2。如果正确执行DHKE,双方生成的会话密钥相同。该会话密钥经过处理后就能得到所需的SEK。该生成协议具有安全性强、可靠性良好、易实现等特点。其安全性不依赖于会话信息的保密性,而主要依赖于密钥种子的安全性,因此只要保证密钥种子的安全性,即使攻击者侦听到了通信数据,也无法得到SEK。

为了打赢脱贫攻坚战让贫困户早日脱贫,2019年,蛋肉鸡体系创新团队将进一步加大扶贫工作力度,以精准扶贫为立足点和出发点,针对重点帮扶县,团队成员会继续做好“点对点”的扶贫工作;对已经进行扶贫工作的农户回访确保贫困户真正的脱贫。会充分发挥当地扶贫企业的带动引领作用,通过扶贫企业的帮扶规模进一步扩大,确保重点扶贫县内贫困户都能够享受到扶贫帮助,以促进农民持续稳定增收,做到精准扶贫。进一步健全长效扶贫机制,努力发挥创新团队的专业优势,为企业扶贫提供技术支撑,保障蛋肉鸡产业的健康发展,实现企业增效、农民增收,巩固扶贫成果。

SEK生成协议在双方搭建KEM并生成密钥种子之后开始执行,参与实体为双方的KEM。协议执行的流程图如图5所示。

4.3.3 密钥种子的安全性分析

  

图5 SEK生成协议流程图

SGM是双方密钥种子的生成模块,记ES端密钥种子为s1,UK端密钥种子为s2。该模块由一个自创的算法实现。

运行在UK上的KEM受UK固有安全机制的保护;ES上的KEM运行在内核空间,受操作系统内核访问控制的严格保护[11]。接下来详细描述各模块的功能。

UK_KEM:generate(m2);

ES_KEM利用s1生成m1=αs1modq,UK_KEM利用s2生成m2=αs2modq。

由图6并根据扫描电镜分析:产品中值粒径在9.01~12.65μm之间波动,随着氨钼比的增大,产品中值粒径呈现不规律变化,颗粒粒径与粒径分布没有明显改变。反应结束后取出冷却,数分钟后晶体析出,产物未出现团聚,颗粒大小较均匀,颗粒表面形貌完整均呈片状。通过比较,选择原料:水:氨水比例为1.00∶2.10∶0.40,即氨钼比(摩尔比)0.906为最优。

步骤3 ES_KEM=>UK_KEM:{m1};UK_KEM=>ES_KEM:{m2}。

Beautiful Gir——通过邀请在商场逛街的漂亮女孩子免费来做头发,实现不会理发的理发师,建立起的美国高端美发连锁机构;

1.3 价值共创意愿 价值共同创造是消费者和公司密切地参与共同创造价值,这种价值对于个体消费者来说是独特的,对公司是可持续的过程。Prahalad等[19]定义价值共创是客户和供应商之间在共同构思、共同设计和新产品共同开发活动中的合作。在市场营销文献中,人们普遍认为价值观可以在共同创造过程中创造,客户从被动的价值接收者开始转变为与供应商的积极合作伙伴关系。于是,价值共创的出现体现了现代商业从商品主导到以客户为中心的转变。

步骤4 ES_KEM:generate(K1,m3);

UK_KEM:generate(K2,m4)。

后危机时代农业发展的国际比较 ……………………………………………………………………………………… 杨雨萱(3/03)

ES_KEM计算K1=(m 2)s1modq;m3=αK1modq。

当前,我们正处于只争朝夕的新时代,没有时间让我们等待三五年再开展工作,需要我们马上就做。怎么办?经过调研分析,我认为最有效的就是自身努力了。比如说新疆监狱的警囚比十分低,是个很大的问题,怎么解决这个问题呢?有人说,申请中央编制?从申请,到批复,到招录,到培训,到上岗,到能真正发挥作用,这是一个漫长的过程,哪一个监狱的民警没有个三五年能真正成熟起来?可是,当前监狱存在的问题需要马上解决。我们就得顾全大局、上下齐心、内部挖潜调剂解决。司法所的建设也得这么干,需要上下同心、刀刃向内。

UK_KEM计算K2=(m1)s2modq;m4=αK2modq。

如果双方都正确执行DHKE,会有

K1=(αs2)s1modq=(α s1)s2modq=K2。步骤5和步骤6将对此进行验证。

双方交换信息m1、m2。

步骤5 ES_KEM=>UK_KEM:{m3};

ES_KEM发送m3。

步骤6 UK_KEM:Verify(m3,m4),UK_KEM验证m3,m4是否相等。若验证成功,返回结果并进行步骤7。否则验证失败,退出SEK的生成过程。

步骤7 ES_KEM:generate(SEK),destroy(related data);

UK_KEM:destroy(related data)。

ES_KEM利用 K1生成SEK。SEK交付后,ES和UK销毁相关数据,比如s1,K1,K2,m1,m2,m3,m4,SEK等数据,并清除内存中KEM。

一是木栓点和水裂纹。和春季晚霜冻害、夏季高温干旱持续时间长有关。一方面,异常气候影响了果皮正常生长,使果实组织和细胞受到伤害;另一方面,果肉由于受到果皮的保护,仍旧保持原来的生长能力,干旱后突然降雨或浇水,果肉生长迅速,果皮生长跟不上,造成果皮与果肉生长不一致而形成水裂纹。

在方案执行过程中,鉴于信道的非安全性,K1、K2可能无法正确生成。因此该协议采用对m3、m4进行验证的方法来确保K1、K2的正确生成。如果m1、m2在通信过程中被篡改,m3、m4将无法验证成功。该验证方案没有额外增加验证模块(比如哈希运算模块),而是通过DHKE代码中固有的模乘运算模块执行,可以提高验证效率,减少代码量,增加代码的重复利用率。

针对DHKE算法,假设攻击者已知q和α,并且窃听到信息m1、m2。攻击者需要利用数据集{q,α,m1,m2}得到SEK,这个问题称为迪菲-赫尔曼问题[12]。文献[7]指出求解s1或s2是解决迪菲-赫尔曼问题的唯一方法。因此攻击者必须计算m1或m2以α为底的离散对数。但是,对于攻击者,利用m1计算s1或者利用m2计算s2,大概需要q1/2次操作[13]。只要选用合适的q,攻击者无法通过针对DHKE的攻击获得密钥[14]

5 方案原型的实现

5.1 硬件平台

对嵌入式设备和USB Key进行开发设计,实现了本文方案的基本功能。采用了hikey开发板作为本文方案的嵌入式设备,其处理器为HiSilicon Kirin 620,linux内核版本为4.1.2,配有2 GB LPDDR3 SDRAM内存,以及8 GB eMMC Flash,该开发板有两个USB 2.0接口,符合本方案对USB端口的需求。对嵌入式设备的开发需要宿主机环境和交叉编译环境。采用arm-linux-gcc作为编译工具,并以minicom作为串口调试工具。采用深思洛克公司的精锐IV产品进行USB Key开发,该产品RAM容量为64 KB,芯片安全等级为EAL 5+,支持标准C语言编程,非常适合本文方案的原型开发。采用Keil C51 V8.09作为USB Key的开发工具。

4)通过研究结果分析得出沼肥的不合理利用和沼气池建设材料的弊端是影响沼气池环境排放和经济效益的主要因素。

5.2 软件实现

在实际的开发过程中,本文方案所有的软件实现都基于C语言来完成。具体实现过程中,主要增加了KEM相关代码设计部分。对AM的改进设计直接在原有认证模块上更改。

5.2.1 KEM的加载流程设计实现

将SGM、KGCM、KEOM的代码存储在UK端的存储器中,UK端的COS可以直接加载并运行这些模块。但是,在嵌入式系统端,仅在执行生成SEK的任务时才加载相应的模块并运行,因此需要在开发板上设计加载程序KEM_Loder,并且需要保证KEM_Loader的可靠性。KEM_Loader负责将KEM的代码加载到内核态运行,从而为KEM提供访问保护。在KEM_Loader运行前,为确保其代码没有被破坏,由OS Kernel对其进行度量,并交给UK进行验证。如果KEM_Loader已经被破坏,由UK端加载备份的KEM_Loader到ES内核。在设计时,将KEM_Loader设计为linux Kernel的一部分,将度量函数KL_measure()添加到内核中,并与linux Kernel一起植入hikey开发板的FLASH中。另外在USB Key的开发阶段,将KEM_Loader的代码和度量值HKL存储在UK中。ES端KEM的加载流程如图6所示。

  

图6 嵌入式系统端KEM加载流程图

5.2.2 密钥种子的生成实现

嵌入式系统端密钥种子的生成需要开发板的唯一硬件特征值UniqueValue。在实现过程中其数据结构定义如下:

struct{

char cpu_serial[CPU_SERIAL_LEN]; //用于保存CPU序列号

char board_serial[Board_SERIAL_LEN]; //用于保存开发板序列号

char flash_serial[FLASH_SERIAL_LEN]; //用 于 保 存FLASH序列号

}UniqueValue;

在ES端KGCM代码中添加sha1哈希算法,该算法利用UniqueValue的值,实现生成160 bit的消息摘要HUV的功能。在SGM的代码中构造函数Seed_Generation(),该函数实现密钥种子生成的功能,以HUV为输入,输出2 048 bit的s1。在UK端KGCM代码中添加随机数生成算法,该算法利用随机数生成器生成160 bit的随机数。函数Seed_Generation()能够利用该随机数生成2 048 bit的s2。双方的函数Seed_Generation()代码相同,其功能是对输入的160 bit的数据进行加扰和扩展,实现不唯一,灵活性很强,对该函数的更新可以作为对密钥种子更新的一种方法。

5.2.3KGCM、KEOM的实现

本文的核心部分是KEM,鉴于UK资源有限,所设计的KEM的代码量和计时,双方的SGM和KEOM以减小代码量,增加代码要调用双方系统各自的

因此双方的KGCM功能相似,但实现不同。嵌入式系统端的KGCM主要由UniqueValue提取模块、会话控制模块、系统调用模块、SEK生成模块组成。UK端的KGCM主要由随机数提取模块、会话控制模块、系统调用模块组成。

利用开源的OpenSSL-0.9.8y来实现本文方案中所需的DHKE算法。在具体实现时,使用其中的Anonymous Diffie-Hellman的代码来实现所需的功能。该版本的DHKE算法不包含基于签名的认证过程,由于在DHKE执行之前UK与ES已经完成了认证过程,因此该算法很适合本文方案的需求。DHKE算法中生成参数集{q,α}的操作会消耗大量计算资源,为减少UK和ES的开销,在对UK进行开发设计时,即将参数集{q,α}写入UK端。DHKE执行时,UK只需读取该参数集并发送给ES即可,不必额外执行生成该参数集的操作。在DHKE算法中,q越大安全性越强,消耗的计算资源越多。为了兼顾DHKE算法的安全性和执行效率,以2为有限循环群Gq的生成元,采用2 048 bit的q。此时攻击者如果对DHKE进行攻击,大概需要q1/2≈22 0481/2=21 024次操作。DHKE算法执行后,生成的K1的长度与q的长度相同,也为2 048 bit。

由于不同的密码算法对SEK长度有不同的要求(比如AES算法的密钥长度可以是128 bit,192 bit,256 bit,三重DES算法的密钥长度可能是112 bit或者168 bit),因此在ES端的KGCM中设计函数SEK_Create()来满足密钥长度的不同需求。该函数以2 048 bit的K1为输入,并输出SEK。在具体的算法实现上采用sha1哈希算法对K1进行计算生成160 bit的key_material,并假设所需的SEK的长度为length。如果length≤160,只需取key_material的前length位作为SEK即可;如果length>160,将key_material和 K1的前(length-160)位连接在一起生成SEK。

6 方案评估

本章将从方案原型的性能和安全性分析两方面进行评估。

6.1 性能测试

主要测试SEK的生成过程对ES性能的影响。相对于从NVM上读取密钥K进行加密运算的方式,本方案SEK的生成过程可能会增加时间开销。因此,性能测试采不同次结果如图7所示

  

图7 性能测试结果

以利用SEK进行加密运算的方案作为实验组,并以直接读取密钥K进行加密运算的方案作为对照组。对照组AES加密过程的时间开销主要由读密钥K的时间、读明文数据时间、AES加密运算时间、写密文数据时间构成;实验组AES加密过程时间开销主要由SEK生成时间、读明文数据时间、AES加密运算时间、写密文数据时间构成。从图中可以看出,实验组时间开销均大于对照组,这是因为SEK的生成时间大于密钥K的读取时间。SEK生成时间不包含ES与UK认证的时间,约为4.12 ms,主要由DHKE算法进行的模乘操作运算时间和UK端与ES端传输数据时间构成。

SEK的生成增加了整个加密过程的时间消耗,但随着数据长度增加,额外时间开销占整个加密过程时间开销的比例减小。当加密数据长度足够大时,SEK的生成时间开销几乎可以忽略不计。因此本文的SEK生成方案增加的额外时间开销在用户可以接受范围内,几乎不影响用户体验。

6.2 安全性分析

本节首先分析了对密钥存储进行保护的现有各种方法的特点,然后分析了本文方案相对于现有方案的优势,并分析了本文方案对各种潜在攻击的防护能力。

针对嵌入式环境下利用片外NVM存储密钥面临的安全问题,国内外研究者已经展开了许多研究,设计了多种对密钥存储进行保护的方法。比如,利用片上NVM存储密钥的方法可以节省片上空间[15],降低信道攻击带来的风险,但NVM在片上的位置容易被发现,且芯片断电后密钥仍存储在片上NVM中,容易遭受侵入式攻击[16]。利用片上易失性存储器来存储密钥的方法灵活性较强,但会增加片上空间,并需要额外的电池为易失性存储器供电,且该方案无法抵抗Cold Boot[17]等物理攻击。物理不可克隆函数[18](PUF)是进行密钥生成的新兴技术。当向PUF发送挑战时,它会基于集成电路中的固有“指纹”产生响应,进而生成密钥。但PUF会增加额外的片上面积开销,且鲁棒性较差。这使得PUF技术很难取代传统的将密钥存储在NVM中的方法[19]

相对于以上方法,本文方案采用技术成熟的UK作为外部设备通过DHKE的方式为ES提供安全增强密钥,具有灵活性强、成本低、易实现等特点。该方案不会增加片上空间,可以抵抗现有的许多潜在攻击。以下分析了本文方案对各种潜在攻击的防护能力。

侵入式攻击:侵入式攻击是指攻击者利用逆向工程或微探测的方法分析芯片电路结构,并能够窃取片上NVM和片外NVM内容的攻击方式。此种攻击对嵌入式系统的安全性危害很大。但在本文架构中,SEK不在嵌入式设备上存储,而是利用密钥种子s1、s2生成,且生成算法存储在UK端,攻击者只能得到生成s1所需的设备唯一硬件特征值uniqueValue,而无法得到s1、s2,无法生成SEK。

信道攻击:信道攻击源于嵌入式系统的非安全性,假设攻击者可以对ES与UK之间的信道进行侦听,窃取会话信息,并能够对会话信息进行破坏。攻击者对信道进行侦听可以获得信息{q,α,m1,m2,m3},但攻击者利用该信息无法计算得到SEK。攻击者也无法通过对会话信息的破坏得到SEK,而且通过本方案对K1和K2的验证能够察觉这种攻击。

进程攻击:进程攻击是指恶意程序绕过进程隔离机制,非法地访问进程内存空间,从而窃取敏感数据。本文方案的KEM代码存储在UK端,只有在SEK的生成周期内才允许由KEM_Loader加载到ES端,且SEK生成后立即从内存中释放,可以保证KEM的可靠性,不给攻击者留下针对KEM进行攻击的机会。此外,KEM在内核空间运行,使得KEM受操作系统内核访问控制更为严格的保护,能够有效地抵御此种攻击带来的风险。

伪造平台攻击:此种攻击是指攻击者伪造嵌入式平台,并诱使用户接入。当用户使用UK连入伪造的嵌入式设备后,窃取会话信息和密钥。本文方案中ES与UK之间的认证具有平台关联性,UK可以通过对DeviceID的验证发现此种攻击,并拒绝服务。另外,即使攻击者建立了伪造平台与UK之间的连接,由于无法伪造生成s1所需的唯一硬件特征值UniqueValue,攻击者无法生成对应的SEK。

篡改攻击:篡改攻击是指攻击者对嵌入式设备数据进行篡改甚至破坏。在本文方案中,SEK的生成不需要提取ES端存储器上的数据,仅需要嵌入式设备唯一硬件特征值UniqueValue。除非破坏嵌入式设备,否则攻击者无法破坏UniqueValue,因此攻击者无法阻止SEK的正确生成。另外,攻击者可以对KEM_Loader的代码进行破坏,但是UK能够检测到此种攻击,并加载备份的KEM_Loader到ES端,从而确保KEM的正确加载执行。

相对于传统的密钥存储方法,本文的SEK不需要直接存储,而是利用密钥种子和DHKE生成。因此密钥的安全性很大程度上取决于密钥种子的安全性。攻击者若要窃取s1,必须窃取USB Key端的密钥种子生成算法,而该密钥种子生成算法和s2都存储在UK端的安全区域,即使合法用户也无法直接读取。此外,即使攻击者获得了UK及其相应PIN码,如果无法物理接触对应的嵌入式设备,攻击者也无法生成SEK。因此,除非攻击者获得了PIN码,USB Key,并能物理访问对应的嵌入式平台,否则无法生成SEK。此外,通过SEK的更新机制,可以提高密钥生成的灵活性,并进一步降低密钥泄漏的风险。

7 结束语

本文提出了一种为嵌入式系统动态地生成可重复使用的密钥的方案。该方案利用USB Key固有的安全特性和DHKE来提高密钥的安全性,能够有效地解决嵌入式系统在密钥存储方面的安全问题。USB Key作为外部设备,不会增加嵌入式设备的片上面积开销,不需要额外的电池供电。另外,对本文方案原型系统的测试结果表明,生成SEK的时间消耗在用户可以接受的范围内,具有较高的实用价值。

参考文献

[1]Parameswaran S,Wolf T.Embedded systems security—an overview[J].Design Automation for Embedded Systems,2008,12(3):173-183.

[2]Chen X,Liu H,Dai J.Security key designed for LAN and mobile terminal[C]//2013 Fourth World Congress on Software Engineering(WCSE),2013:121-124.

[3]赵波,费永康,向騻,等.嵌入式系统的安全启动机制研究与实现[J].计算机工程与应用,2014(10):72-77.

[4]Sadeghi A R,Naccache D.Towards hardware-intrinsic security:foundations and practice[M].New York:Springer-Verlag,2010.

[5]Xie Yufeng,Xue Xiaoyong,Yang Jianguo,et al.A logic resistive memory chip for embedded key storage with physical security[J].IEEE Transactions on Circuits and Systems II:Express Briefs,2016,63(4):336-340.

[6]Zhao Shijun,Zhang Qianying,Hu Guangyao,et al.Providing root of trust for arm trustzone using on-chip sram[C]//Proceedings of the 4th International Workshop on Trustworthy Embedded Devices,2014:25-36.

[7]Diffie W,Hellman M.New directions in cryptography[J].IEEE Transactions on Information Theory,1976,22(6):644-654.

[8]汤卫东,李为民.利用Diffie-Hellman算法改进Kerberos协议[J].计算机工程与设计,2007,28(2):343-345.

[9]Margalit Y,Margalit D,Kastershtien R.USB key apparatus for interacting with a USB host via a USB port:U S,Patent 6,763,399[P].2004-07-13.

[10]贾凡,谢蒂.USB Key保护进程的设计与实现[J].计算机工程与应用,2011,47(15).

[11]Mavrogiannopoulos N,Trmač M,Preneel B.A linux kernel cryptographic framework:decoupling cryptographic keys from applications[C]//Proceedings of the 27th Annual ACM Symposium on Applied Computing,2012:1435-1442.

[12]Alias Y F B,Isa M A M,Hashim H.Sieving technique to solve the discrete log hard problem in Diffie-Hellman Key Exchange[C]//2015 IEEE Symposium on Computer Applications&Industrial Electronics(ISCAIE),2015:129-133.

[13]Pohlig S,Hellman M.An improved algorithm for computing logarithms overGF(p)and its cryptographic significance(Corresp.)[J].IEEE Transactions on Information Theory,1978,24(1):106-110.

[14]Geary A C.Analysis of a man-in-the-middle attack on the Diffie-Hellman key exchange protocol[R].Naval Postgraduate School,Monterey,CA,2009.

[15]Li N,Mansouri S S,Dubrova E.Secure key storage using state machines[C]//2013 IEEE 43rd International Symposium on Multiple-Valued Logic(ISMVL),2013:290-295.[16]Skorobogatov S P.Semi-invasive attacks:a new approach to hardware security analysis[D].University ofCambridge,2005.

[17]Halderman J A,Schoen S D,Heninger N,et al.Lest we remember:cold-boot attacks on encryption keys[J].Communications of the ACM,2009,52(5):91-98.

[18]Pappu R,Recht B,Taylor J,et al.Physical one-way functions[J].Science,2002,297(5589):2026-2030.

[19]Helfmeier C,Boit C,Nedospasov D,et al.Physical vulnerabilities of physically unclonable functions[C]//Proceedings of the Conference on Design,Automation&Test in Europe,2014.

 
赵波,李二辉,马骏,黄宇晴
《计算机工程与应用》2018年第10期文献

服务严谨可靠 7×14小时在线支持 支持宝特邀商家 不满意退款

本站非杂志社官网,上千家国家级期刊、省级期刊、北大核心、南大核心、专业的职称论文发表网站。
职称论文发表、杂志论文发表、期刊征稿、期刊投稿,论文发表指导正规机构。是您首选最可靠,最快速的期刊论文发表网站。
免责声明:本网站部分资源、信息来源于网络,完全免费共享,仅供学习和研究使用,版权和著作权归原作者所有
如有不愿意被转载的情况,请通知我们删除已转载的信息 粤ICP备2023046998号