基于Ukey和LiveOS的加密硬盘安全认证方案

2016-12-13 05:11陈锦飞
关键词:秘钥通用性固件

徐 欣,陈锦飞

(杭州电子科技大学通信工程学院,浙江 杭州 310018)



基于Ukey和LiveOS的加密硬盘安全认证方案

徐 欣,陈锦飞

(杭州电子科技大学通信工程学院,浙江 杭州 310018)

针对目前硬盘加密方案通用性较差以及身份认证过程安全性不够的问题,提出一种全加密固态硬盘安全认证和可信启动方案.利用商密Ukey实现秘钥的安全存储,利用定制精简的LiveOS系统实现Ukey和加密硬盘的安全配对、认证、秘钥传递以及硬盘系统的可信启动.最后提出了一种秘钥安全恢复方案.方案基于现有安全ASIC芯片构建,并在通用PC系统上验证通过,具有很好的通用性、安全性及易用性.

加密硬盘;身份认证;可信启动

0 引 言

在现代信息系统中,用密码技术对信息保密的安全性取决于对密钥的安全保护[1].目前,基于硬件实现的硬盘加密方案通常是通过在主机与硬盘的数据传输链路之间串接现场可编程门阵列(Field-Programmable Gate Array,FPGA)模块来实现数据实时加解密,使用智能卡存储秘钥及认证身份[2],但缺乏用户交互,无法判定智能卡持卡人的身份,且通用性较差.自加密硬盘(Self-Encrypting Drives,SED)在硬盘控制器内实现加密引擎,可直接与PC主板对接,通用性较好,但没有兼顾通用性和安全性的秘钥管理和身份认证方案.文献[3]使用ATA硬盘密码锁,通过口令验证用户身份.口令验证易被暴力破解,而且能通过搭线攻击窃取.文献[4]提出了一种基于Ukey(USB Key)的安全BIOS模型,使用Ukey存储秘钥,利用定制BIOS来实现加密硬盘和Ukey的相互认证,但这意味着加密盘只能工作在定制的BIOS环境下,无法与其它PC环境兼容,因此通用性大大降低.本文基于Ukey和定制化LiveOS,针对通用性更好的自加密硬盘提出并实现了一种安全认证方案,在保证认证安全性的同时,也具有很好的通用性.

1 整体设计方案

系统框架如图1所示.采用自加密硬盘的计算机开机后,首先会启动主板BIOS,然后引导LiveOS从Ukey启动,实现硬盘对Ukey及用户身份的认证,认证通过后,LiveOS从Ukey读取秘钥注入硬盘,硬盘用此秘钥实现对数据流的实时加密写和解密读操作.

硬盘为SATA接口固态硬盘(Solid State Drives,SSD),主控为专用集成电路(Application Specific Integrated Circuit,ASIC),内部结构如图2所示.主控实现了基本的SATA协议解析及MMC/eMMC(Embedded Multi Media Card)阵列读写控制,同时也集成了各种硬件加密模块,如RSA/ECC,DES/AES,sha128/256以及商密算法SM2,SM3和SM4.除此之外,主控还支持ISP(In-System Programming),可通过固件(Firmware)灵活控制各模块的使用,与PC端应用层配合实现安全应用.

商密Ukey集成了商密算法的USBkey,UKey与USB技术,USB主控结构与图2类似,实现了基本的USB协议,集成了各种硬件加密模块,同样支持ISP.由于加解密运算完全在UKey内进行而不会在其他设备上留下任何痕迹[5],因此使用Ukey作为秘钥存储和身份认证设备,在保障秘钥和认证安全性的同时,也具有很好的通用性,可应用于任何留有USB接口的计算机.

RSA,AES等国际加密算法可能存在“后门”风险,为提高安全性,本设计方案中无论自加密硬盘还是Ukey均选择商密算法来保障数据的安全.

图1 系统框架

图2 SSD主控芯片结构

2 LiveOS定制

LiveOS是一种可在U盘和CD上启动的系统,通常基于Linux内核,作为系统维护工具,如恢复磁盘文件、查杀病毒等[6].本文基于Linux内核定制出LiveOS,并在其中集成整个认证系统,固化于Ukey之中,实现开机引导.Ukey通常在通用系统上与应用层软件配合实现身份认证,本文首次在Ukey中固化可引导的LiveOS实现认证,相比通用系统,定制化的LiveOS不会有病毒木马的威胁,同时对于全加密硬盘而言,认证通过之前盘内系统无法启动,LiveOS认证相比BIOS认证具有更好的通用性.

LiveOS主要由2部分构成:裁剪的Linux内核以及虚拟文件系统initrd(initial RAM Disk).

1)Linux内核开放源码.用户可根据自己的需求裁剪和编译Linux内核[7].LiveOS只作为认证平台,为提高启动和运行速度,内核应尽可能精简.将最基本的ATA/SCSI驱动,USB驱动,FAT/NTFS/EXT3/EXT4文件系统驱动等编译成内核模块.为保证安全性,LiveOS应离线运行,因此去除所有网络驱动,显示驱动保留最基本的文字终端即可.

2)虚拟文件系统initrd(initial RAM Disk)即Linux初始RAM磁盘.其中包含各种可执行程序和驱动程序,在LiveOS中,initrd作为最终的根文件系统被Linux内核挂载,整个文件系统均在RAM中运行.Initrd文件目录遵循FHS(Filesystem Hierarchy Standard)规范[8].

3 基于LiveOS的认证系统设计

认证系统随LiveOS开机启动,实现Ukey与加密硬盘的初始化配对、认证,秘钥传递以及硬盘系统的可信启动.认证系统与Ukey及加密硬盘使用SCSI Generic协议通信,应用层通过ioctl()发送事先协商好的命令,设备固件(firmware)响应命令并完成相应操作.

3.1 Ukey和加密硬盘的初始化配对

为保证加密盘内数据安全,确保只有唯一的Ukey才能解密盘内数据,需要设计一种安全配对机制,防止伪造Ukey破解硬盘.本文通过公钥交换实现Ukey和加密盘的一一配对.公钥交换流程如图3所示.

Ukey和加密硬盘控制IC内部均有SM2密钥对生成模块,由于密钥对的唯一性,通过交换公钥配对,既能对后续秘钥传递过程进行加密,也可通过SM2签名实现加密盘对Ukey的认证.设备初始化时生成的SM2私钥是其唯一性标识,为保障安全,私钥在任何情况下都只能在设备内部使用,对外没有读写接口.

图3 公钥交换配对流程

为保证数据流的加解密速度,硬盘加密引擎使用对称加密算法SM4加解密数据.Ukey和加密盘完成配对后,必须设置一个SM4秘钥,所有写入硬盘的数据均通过此秘钥加密.硬盘内数据的保密性取决于该秘钥的安全,因此需要将此秘钥通过安全信道存放于Ukey之中.秘钥安全存储流程如图4所示.

图4 秘钥安全存储过程

加密盘控制IC拥有真随机数发生器TRNG(True Random Number Generator),截取128 bit用作SM4秘钥.由于配对过程已交换公钥,SM4秘钥在加密盘内部通过Ukey公钥加密,再通过认证系统传递给Ukey,Ukey用自身私钥解密存储.秘钥加密传输保证了SM4秘钥的安全性.

为验证Ukey持有者的身份,初始化阶段,用户需设置一个用于身份认证的PIN码,该PIN码使用国密哈希算法SM3加密,存储在Ukey中用于认证阶段的第一步认证.

Ukey和加密盘配对完成后,需要各自设置初始化标识,在LiveOS启动后的认证阶段,读取该标识并进入相应操作.LiveOS关机后,加密盘的秘钥掉电销毁,初始化过程完成.

3.2 LiveOS安全认证及硬盘系统可信启动

加密盘初始化后,硬盘已进入加密状态,由于加密秘钥保存在与之配对的Ukey之中,只有从Ukey注入秘钥到加密盘中,才能进行硬盘读写操作,解密数据以及硬盘系统的可信启动.只有通过安全认证才能成功注入正确的秘钥.整个认证过程分3个阶段.

第一阶段为PIN码认证阶段,流程如图5所示.

图5 PIN码认证阶段

BIOS启动后,由于加密盘处于加密状态,盘内系统无法启动,必须插入Ukey启动LiveOS开启认证.认证系统会检查Ukey和加密盘的初始化标识,如果均未初始化,会询问用户是否开始Ukey和加密盘的初始化配对;如果只有一方初始化说明Ukey和加密盘必定不是一一配对关系.只有两者均初始化后才能进行用户PIN码验证,用户PIN码传入Ukey计算SM3哈希值,与Ukey初始化阶段存储的哈希值比较,一致则进行下一步认证,否则认证失败.

第二阶段为加密盘认证Ukey和秘钥注入阶段,流程图如图6所示.

身份认证有2种最基本的手段:根据你所知道的信息来证明你的身份(what you know)及根据你所拥有的东西来证明你的身份(what you have).

PIN码是用户对Ukey所有权的证明,即what you know,而加密盘对Ukey的认证解决的正是what you have的问题.只有唯一与加密盘配对的的Ukey才能注入正确的秘钥,并解密硬盘.

定制的LiveOS不会有感染木马病毒的风险,但只能为认证提供一个安全的软件环境,由于存在搭线攻击的可能,即PC主板有可能被植入用于抓取总线数据的硬件,从而导致SCSI命令和数据流被截获,攻击者通过重放命令和数据流从而在没有Ukey的情况下解密硬盘,因此避免重放攻击至关重要.

在秘钥注入阶段,来自Ukey的加密盘SM4秘钥在Ukey内部通过加密盘自身公钥加密,密文通过特定的SCSI命令传输给加密盘解密,一旦攻击者重放此命令和密文,加密盘即可解密出正确的数据加密秘钥,攻击者无需Ukey便可解密硬盘.因此在加密盘固件响应秘钥注入命令前,应该实施一个与Ukey有关的认证过程,而且同样应该防止重放攻击.采用图6所示的挑战响应式认证可以有效防止重放攻击.先由加密盘产生随机数,该随机数送入Ukey,Ukey用自身SM2私钥对该随机数签名,然后加密盘使用之前与之配对的Ukey SM2公钥解签名,解签成功即可证明Ukey即为加密盘唯一的配对Ukey.由于用于签名的随机数每次均不同,即使攻击者重放签名也无法解签成功.

加密盘解签成功后通知LiveOS应用层进行下一步操作,同时,加密盘固件产生一个标志位用于证明解签成功,这一点对防止秘钥注入阶段的重放攻击也至关重要.在加密盘响应秘钥注入口令时,必须先检查该标志位,存在此标志位即证明Ukey认证是通过的,然后解密出正确的秘钥,否则,不进行解密操作.

第三阶段为磁盘数据解密和盘内系统的可信启动.

PIN码和Ukey认证通过后,加密盘即可获得用于数据实时加解密的SM4秘钥,该秘钥用来对数据流的加密写和解密读操作,这对于用户来说是透明的.LiveOS重启过程中加密盘不会掉电,因此SM4秘钥得到保留,如果加密盘内预装有操作系统,经过MBR和Bootloader阶段,系统启动,启动后即可对加密盘进行读写操作.对windows操作系统而言,其登陆口令易被win PE等工具破解,但对加密硬盘而言,没有Ukey的认证过程,盘内系统将无法启动.Ukey和LiveOS的认证方案一定程度上实现了硬盘系统的可信启动.

4 秘钥恢复方案

加密盘内数据的解密秘钥存储在Ukey之中,一旦Ukey丢失,盘内数据将无法解密,这无疑会造成严重的数据损失.因此设计一种安全的秘钥恢复方案显得尤为重要.本文设计了一种双因子认证的秘钥安全恢复方案.

为了恢复秘钥,秘钥除了存储在Ukey之中,还必须加密保存在加密盘内的安全存储区.本文使用双因子加密备份秘钥.首先是用户因子,即在Ukey与加密盘的配对阶段,用户除了设置PIN码外,也需要设置一个秘钥恢复密码Ku,在加密盘内部使用Ku对加密盘SM4秘钥K进行第一次SM4加密.供应商因子是供应商的秘钥恢复Ukey,在加密盘量产阶段,秘钥恢复Ukey产生128 bit SM4秘钥Kv,Kv除了存储在Ukey的特定安全存储区外,也会存储在加密盘的安全存储区,Kv对外均无读写接口.配对阶段使用加密盘内Kv对SM4秘钥K进行第二次SM4加密,两次加密后的秘钥同样存储在加密盘安全存储区中用于秘钥恢复.

Ukey丢失后,用户需要向加密硬盘供应商提供需要恢复秘钥的硬盘和秘钥恢复密码Ku,同时供应商使用加密盘量产阶段的秘钥恢复Ukey才能恢复出秘钥.原理如图7所示.

图7 秘钥恢复原理

在秘钥恢复阶段,加密盘内部固件程序通过用户提供的秘钥恢复密码Ku以及来自供应商秘钥恢复Ukey中的秘钥Kv,对盘内加密备份秘钥进行两次SM4解密操作,从而恢复出硬盘秘钥K,然后开始“秘钥恢复配对”.“秘钥恢复配对”与正常配对流程少了SM4秘钥产生过程,即在加密盘与新配对Ukey交换公钥完成配对后,恢复出的秘钥K直接存储在新配对Ukey中,由用户设置新PIN码和秘钥恢复密码Ku,再次使用Ku和Kv对秘钥K进行两次SM4加密,同样存储在加密盘安全存储区中用于秘钥恢复.秘钥恢复配对完成后,盘内数据即可通过新配对Ukey解密并正常启动系统.

5 实验与分析

5.1 认证方案安全性分析

1)固件安全性分析

固件程序需要遵循特定的嵌入式编码规范,同时通过主控芯片厂商提供的软件开发环境以及硬件开发板才能正确导入芯片内的CODE ROM区,并在芯片内部嵌入式CPU上正常运行.因此,对于运行在PC主板CPU上的程序而言,无法对固件程序作出任何修改和破坏.即使LiveOS感染了木马病毒,木马程序只能通过通用SATA/USB协议接口与固件交互,对固件程序本身无任何影响.

2)秘钥安全性分析

加密盘数据加密秘钥在SSD内部生成,且对外无读写接口.秘钥在传输过程中均使用公钥加密,所有加解密操作均在SSD和Ukey内部进行.攻击者无法在驱动链路和内存中获得秘钥明文.方案中通过挑战响应式认证有效避免了密文重放攻击.

5.2 认证方案实现

自加密硬盘(SSD)基于Sage S881 SSD主控[9],商密Ukey基于Sage S261 USB主控[10],认证系统使用C语言编写,LiveOS.iso大小仅为13.4 MB,从Ukey启动后立刻进入认证系统,启动过程只需3 s.系统启动后自动检测Ukey和加密硬盘,并根据初始化状态进行相应操作.认证系统截图如图8所示.

图8 认证系统

如图8所示,/dev/sdc,/dev/sdb即为Ukey和加密盘在LiveOS下的设备名,有独一无二的产品序列号PSN及配对状态.用户输入PIN码即开始认证流程,认证成功后硬盘“解密”,LiveOS重启引导盘内系统启动.

6 结束语

本文将Ukey和LiveOS技术相结合,为自加密硬盘提出并实现了一种兼顾安全性和通用性的安全认证方案.本方案可用于任何需要信息保密的计算机系统,且无需对系统结构做出任何改变.下一步研究重点是认证系统的功能扩展,满足用户更多定制化的安全需求.

[1]郑东,赵庆兰,张应辉.密码学综述[J].西安邮电大学学报,2013,18(6):1-10.

[2]孙瑜.基于FPGA的数据加解密系统设计[D].大连:大连海事大学,2010.

[3]魏东晓,万海山,王亮.基于国产密码算法的加密固态硬盘设计与实现[C]//中国计算机学会信息保密专业委员会.第二十四届全国信息保密学术会议(IS2014)论文集,2014:179-188.

[4]HU Y, LV H.Design of Trusted BIOS in UEFI Base on USBKEY[C]//International Conference on Intelligence Science and Information Engineering. IEEE Computer Society, 2011:164-166.

[5]曹喆.基于USBKey的身份认证机制的研究与实现[D].上海:东华大学,2010.

[6]陈柯,刘中山,李航.一种基于Linux Live USB的启动优化研究[J].工业控制计算机,2014(10):109-110.

[7]张云蓉.基于代码分析的Linux裁剪技术研究与实现[D].哈尔滨:哈尔滨理工大学,2004.

[8]钟柏松,张宇成,周明建.Linux虚拟文件系统分析[J].计算机与现代化,2010(9):76-78.

[9]杭州华澜微电子股份有限公司.PCIe/SATA SSD Controller S88x Datasheet[EB/OL].[2015-12-06].http://www.sage-micro.com.cn/chip-10.html.

[10]杭州华澜微电子股份有限公司.USB2.0 Flash Memory Controller S261 Datasheet[EB/OL].[2015-12-06]. http://www.sage-micro.com.cn/chip-6.html.

A Secure Authentication Scheme for the Full-encrypted Drives Based on Ukey and LiveOS

XU Xin, CHEN Jinfei

(SchoolofCommunicationEngineering,HangzhouDianziUniversity,HangzhouZhejiang310018,China)

Aiming at the truth that the present disk encrypting schemes have poor versatility and are not secure enough in identity authentication, this paper proposes a secure authentication and trusted boot scheme for the full-encrypted drives(FED). We use Ukey for storing secret key and the custom-made simplified LiveOS for secure pairing, authentication, private key passing and trusted boot for system in the disk. Finally we propose a secure scheme for restoring secret key. The whole scheme is based on the current secure ASIC and is implemented on the general PC system, which has good versatility, security and usability.

encrypted drives; identity authentication; trusted boot

10.13954/j.cnki.hdu.2016.06.004

2016-04-25

徐欣(1975-),男,浙江丽水人,教授,信息系统安全.

TP309.2

A

1001-9146(2016)06-0015-06

猜你喜欢
秘钥通用性固件
ETC秘钥国产化升级改造方案设计与实现
干细胞开启未来大健康的“秘钥” 专家与媒体面对面活动走进中源协和—山西省干细胞基因工程有限公司
基于元模型的通用性列控仿真平台基础环境研究
基于SHA1的SCADA系统PLC固件完整性验证方法
抛丸机吊具的通用性设计以及抛丸器的布置
一种姿态可调的新型承载平台
基于UEFI固件的攻击验证技术研究*
基于Unity 3D的产品秘钥二维码实现
基于固件的远程身份认证
高性能扁丝技术及市场的最新进展