?

基于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上啟動的系統,通?;贚inux內核,作為系統維護工具,如恢復磁盤文件、查殺病毒等[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的產品秘鑰二維碼實現
基于固件的遠程身份認證
高性能扁絲技術及市場的最新進展
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合