秦 放,張福健
(成都三零嘉微電子有限公司,四川 成都 610000)
隨著信息社會的飛速發(fā)展,全世界的數(shù)據(jù)存儲總量在快速膨脹。數(shù)十年來,數(shù)據(jù)存儲設(shè)備也實(shí)現(xiàn)了從磁帶到軟盤、機(jī)械硬盤(Hard Disk,HDD)再到固態(tài)硬盤(Solid State Disk,SSD)的發(fā)展。
固態(tài)硬盤擺脫了機(jī)械硬盤的磁頭、盤片轉(zhuǎn)軸及控制電機(jī)等機(jī)械部件,沒有電機(jī)加速旋轉(zhuǎn)的過程,內(nèi)部不存在任何機(jī)械活動部件,不會發(fā)生機(jī)械故障,也不怕碰撞、沖擊和震動。因此相對于HDD 而言,其在性能、可靠性、能耗、輕便性等方面有著絕對優(yōu)勢,目前廣泛應(yīng)用于軍事、工控、電力、醫(yī)療、航空、導(dǎo)航設(shè)備、消費(fèi)電子等領(lǐng)域。
隨著新一代信息技術(shù)如人工智能、5G 網(wǎng)絡(luò)、工業(yè)互聯(lián)網(wǎng)、云計(jì)算、大數(shù)據(jù)、智能設(shè)備等行業(yè)的高速發(fā)展,人們對存儲器的要求也在不斷提高。國內(nèi)固態(tài)硬盤相關(guān)技術(shù)產(chǎn)品要實(shí)現(xiàn)關(guān)鍵核心技術(shù)的突破,達(dá)到或趕超國外先進(jìn)技術(shù),需要盡快解決以下幾個關(guān)鍵問題:高速模擬接口IP 技術(shù)的全面掌握,高性能糾錯IP技術(shù)的全面掌握,閃存技術(shù)自主可控,高性能高安全固態(tài)存儲模塊的實(shí)現(xiàn)[1]。
國外的加密硬盤種類眾多,但都采用國際算法AES[2]作為數(shù)據(jù)的加密算法?!笆奈濉币?guī)劃出臺后,自主可控將是國家科技發(fā)展的重要方向。研制支持國密算法的國產(chǎn)化安全硬盤符合國家戰(zhàn)略,符合各行業(yè)國產(chǎn)化需求。本文提出并實(shí)現(xiàn)了一種將多核盤控處理器應(yīng)用框架與國密算法[3-5]有機(jī)結(jié)合的安全存儲技術(shù)實(shí)現(xiàn)途徑,與主板BIOS 弱耦合,可擴(kuò)展性強(qiáng)。
安全SSD 基于自主的GV48 控制器設(shè)計(jì),在SSD 內(nèi)部用4 個高性能的CPU 分別實(shí)現(xiàn)了前端高速主機(jī)接口功能(SATA CPU)、后端閃存管控功能(NFC CPU)、盤級健康管控功能(Monitor CPU)、安全控制功能(Sec CPU)。
前端主機(jī)接口控制CPU 實(shí)現(xiàn)了SATA 接口,支持NVMe1.3a 標(biāo)準(zhǔn),完整兼容SATA 3.2 規(guī)范,基于ATA8-ACS3 標(biāo)準(zhǔn)的ATA SMART 自定義接口具有良好的指令擴(kuò)展性和功能擴(kuò)展性[6]。
后端閃存管控CPU管理了8個高性能NANDFlash通道,內(nèi)置了高級別糾錯ECC 算法,支持MLC 系列閃存顆粒,適配了長江存儲國產(chǎn)顆粒。
盤級健康管控CPU 控制多種傳感器實(shí)時對SSD內(nèi)部電壓、電流和溫度進(jìn)行監(jiān)控,配合盤內(nèi)集成的UPS 備用電源,保證在異常掉電、高低溫或其他惡劣條件下的數(shù)據(jù)完整性。
GV48 控制器還具有一顆專注于安全加密存儲功能的SecCPU,內(nèi)置可重構(gòu)加密算法引擎,提供了一定數(shù)量的可復(fù)用GPIO,可實(shí)現(xiàn)認(rèn)證外設(shè)的擴(kuò)展功能,能夠滿足自主可控的安全存儲方案實(shí)現(xiàn)的需求??刂破骷軜?gòu)圖如圖1 所示。
圖1 多核控制器架構(gòu)
本文主要論述基于GV48 控制器的SecCPU 算力和可重構(gòu)算法功能,實(shí)現(xiàn)安全啟動和全盤加密應(yīng)用的技術(shù)路徑。
磁盤加密存儲技術(shù)基本上可分為文件系統(tǒng)加密、磁盤分區(qū)加密、全盤加密。SSD 作為整機(jī)設(shè)備中的重要部件,存儲了大量用戶的敏感數(shù)據(jù)。由于采取對文件系統(tǒng)和磁盤部分分區(qū)進(jìn)行加密的策略仍然存在操作系統(tǒng)層面的數(shù)據(jù)訪問安全隱患的問題,因此只有全盤加密策略是安全性最高的。
在全盤加密的情況下,為了在進(jìn)入用戶操作系統(tǒng)(User OS)之前就完成合法用戶的身份認(rèn)證進(jìn)而解密系統(tǒng),同時又要實(shí)現(xiàn)與BIOS 的弱耦合,需要在SSD 中植入一個精簡的前置啟動系統(tǒng)(Boot OS)。Boot OS 對于用戶來說是不可見的,它放置在一個隱藏的分區(qū),這個分區(qū)可以通過ATA 標(biāo)準(zhǔn)的HPA[6]功能來實(shí)現(xiàn),如圖2 所示。
圖2 基于HPA 功能的數(shù)據(jù)隱藏
配合ATA HPA 功能及ATA HPA AOM(Address Offset Reserved Area Boot Method),再加上擴(kuò)展的自定義私有命令集框架,就能在SSD 內(nèi)部部署雙系統(tǒng),即通過BIOS 引導(dǎo)的隱藏Boot OS 和用戶可見的User OS。雙系統(tǒng)之間實(shí)現(xiàn)物理隔離,整機(jī)上電后BIOS 完成初始化并引導(dǎo)Boot OS,在Boot OS 階段進(jìn)行用戶認(rèn)證和配置管理操作,解密User OS 所在磁盤分區(qū)后,切換HPA 工作模式二次引導(dǎo)進(jìn)入User OS。該過程的引導(dǎo)流程圖如圖3 所示。
圖3 安全SSD 引導(dǎo)流程
用戶若重新分區(qū)則會更新主引導(dǎo)記錄(Master Boot Record,MBR),但前置系統(tǒng)Boot OS 的MBR用戶是不可更新的,用戶僅能更新用戶系統(tǒng)User OS 的MBR。首次安裝操作系統(tǒng)時會將該操作系統(tǒng)的MBR(該系統(tǒng)所在分區(qū)首地址)覆蓋寫入磁盤MBR(硬盤首地址)[7];其次在后續(xù)安裝多個操作系統(tǒng)時更新MBR 為可選項(xiàng),可根據(jù)用戶需求選擇。MBR 結(jié)構(gòu)和安全SSD 的MBR 切換流程如圖4、圖5 所示。
圖4 MBR 結(jié)構(gòu)
圖5 安全SSD 的MBR 切換流程
安全SSD 中的密鑰采用三層密鑰體制,自上而下依次是:基于SM3 算法擴(kuò)展的MK、基于SM2[4]算法的保護(hù)密鑰對、基于SM4[3]算法的數(shù)據(jù)存儲加密密鑰。
安全SSD 中的密鑰遵循以下安全性保護(hù)原則:
(1)所有密鑰均由真隨機(jī)數(shù)噪聲源產(chǎn)生或衍生;
(2)任何時候、任何情況下,安全SSD 生成的加密存儲密鑰均不能以明文形式出現(xiàn)在硬件設(shè)備外部,只能以密文形式存儲于GV48 主控芯片的片內(nèi)NorFlash 中;
(3)保護(hù)密鑰及密鑰對支持定期更換,所有密鑰支持備份及恢復(fù);
(4)安全SSD保證密鑰生成、配置、存儲、備份、恢復(fù)及銷毀整個生命周期的安全。
安全SSD 中密碼算法配用情況如表1 所示。
表1 密碼算法配用
安全SSD 中各層級密鑰配用情況如表2 所示。
表2 各層級密鑰配用
安全SSD 按照其密碼資源特征而設(shè)定了6 種狀態(tài),分別是初始態(tài)、出廠態(tài)、管控態(tài)、就緒態(tài)、用戶工作態(tài)和銷毀態(tài)。
(1)初始態(tài):安全SSD 的硬件完成狀態(tài),無任何軟件。
(2)出廠態(tài):廠家完成了Boot OS 及配置管理工具的安裝,完成了安全固件燒寫并初始化設(shè)定默認(rèn)管理員和默認(rèn)口令。
(3)管控態(tài):當(dāng)管理員成功登錄之后的狀態(tài)。
(4)就緒態(tài):安裝操作系統(tǒng)及磁盤分區(qū)后,能夠支持管理員和用戶登錄前的狀態(tài),就緒態(tài)時磁盤中的所有數(shù)據(jù)均為全密狀態(tài)。
(5)用戶工作態(tài):用戶成功登錄后達(dá)到的狀態(tài)。
(6)銷毀態(tài):在管理員登錄后,觸發(fā)硬件銷毀,銷毀所有密碼資源、系統(tǒng)數(shù)據(jù)和用戶數(shù)據(jù)后達(dá)到的狀態(tài)。
以上描述的安全SSD 密碼資源狀態(tài)轉(zhuǎn)換跳轉(zhuǎn)過程如圖6 所示。
圖6 安全SSD 狀態(tài)轉(zhuǎn)換過程
圖6 中所示各步驟的解釋如下:
(1)初始化管理員;
(2)管理員配置管控;
(3)恢復(fù)出廠態(tài);
(4)管理員退出登錄;
(5)管理員登錄;
(6)用戶登錄;
(7)用戶退出登錄;
(8)緊急硬件銷毀。
安全SSD 中的配置管理工具有兩個版本,一個版本支持在Boot OS 中運(yùn)行,稱為Boot OS 版配置管理工具;另一個版本支持在用戶系統(tǒng)中運(yùn)行,稱為User OS 版配置管理工具。
Boot OS 版配置管理工具具有分區(qū)配置、用戶配置和登錄三個主要功能。分區(qū)配置和用戶配置功能在管理員登錄后使能,可對硬盤進(jìn)行分區(qū)管理,也可對普通用戶進(jìn)行增加和刪除的操作,在增加用戶時需配置用戶權(quán)限,指定用戶可訪問的硬盤空間。用戶登錄功能支持合法用戶登錄,獲取其相應(yīng)的空間使用權(quán)限[7]。
User OS版配置管理工具僅具有用戶登錄功能,支持用戶登錄登出等操作。用戶成功進(jìn)入User OS后可正常訪問自己權(quán)限內(nèi)的磁盤空間。
下面對涉及安全管控核心的Boot OS 下管理員配置管理工具的工作流程進(jìn)行說明。
首先,整機(jī)上電后經(jīng)過GRUB 引導(dǎo),安全SSD進(jìn)入Boot OS,如圖7、圖8 所示。
圖7 上電后GRUB 引導(dǎo)
圖8 Boot OS Kernel 加載
Boot OS 啟動后自動加載文件系統(tǒng)中的安全配置管理工具,進(jìn)入用戶登錄界面,如圖9 所示。
圖9 用戶登錄界面
以管理員身份登錄成功后,可按具體需求查看、管理和配置用戶資源,如圖10 所示。
圖10 出廠默認(rèn)配置
進(jìn)行系統(tǒng)分區(qū)設(shè)置,如圖11 所示。
圖11 配置用戶系統(tǒng)分區(qū)
接下來依次配置公共用戶明文分區(qū)和私有用戶密文分區(qū),如圖12、圖13、圖14 所示。
圖12 配置公共用戶明文分區(qū)
圖13 配置私有用戶密文分區(qū)
圖14 多用戶配置后資源
當(dāng)管理員完成配置后,就可以切換為用戶模式或退出重啟。這時,私有用戶各自的密文分區(qū)僅在私有用戶成功登錄后可見,并且私有用戶分區(qū)中所有數(shù)據(jù)在靜態(tài)存儲狀態(tài)下為受保護(hù)的密文,達(dá)到了區(qū)分用戶的安全存儲功能。
安全SSD 為了滿足高性能安全存儲的讀寫要求,SecCPU 加解密功能綁定了SATA 接口數(shù)據(jù)的流向,即私有用戶數(shù)據(jù)寫入安全SSD 時,數(shù)據(jù)流將直接DMA 到SecCPU 的加密引擎流控[8],實(shí)現(xiàn)快速加密存儲;當(dāng)私有用戶從安全SSD 讀取數(shù)據(jù)時,密文數(shù)據(jù)經(jīng)過SecCPU 的解密引擎流控脫密后,DMA給SATA 接口,實(shí)現(xiàn)快速讀取。
作為安全SSD 的擴(kuò)展功能,在流控?cái)?shù)據(jù)中增加了滿足GM/T 0018《密碼設(shè)備應(yīng)用接口規(guī)范》[9]的協(xié)議解析分支,當(dāng)滿足該協(xié)議分支的調(diào)用式接口函數(shù)命令進(jìn)入流控后,會觸發(fā)SecCPU 的內(nèi)部中斷,使SecCPU 對數(shù)據(jù)幀進(jìn)行協(xié)處理,完成對應(yīng)的加解密、簽名驗(yàn)簽操作后,再打包返回給應(yīng)用層。因此,安全固態(tài)硬盤實(shí)現(xiàn)了為應(yīng)用層的各種業(yè)務(wù)提供符合國家標(biāo)準(zhǔn)的密鑰管理、數(shù)字簽名/驗(yàn)簽、數(shù)據(jù)加密/解密和數(shù)據(jù)完整性驗(yàn)證的服務(wù),在實(shí)現(xiàn)用戶數(shù)據(jù)安全存儲的同時,解決了終端信息設(shè)備對輕量級總線密碼模塊調(diào)用式需求的問題。
安全SSD 支持的接口功能如下:
(1)基于密鑰分層保護(hù)的本地密鑰管理;
(2)用戶身份鑒別;
(3)真隨機(jī)數(shù)采集;
(4)基于SM4 算法的數(shù)據(jù)加密/解密;
(5)基于SM2 算法的數(shù)字簽名/驗(yàn)證;
(6)消息鑒別碼的產(chǎn)生與驗(yàn)證。
安全SSD 調(diào)用式接口的性能指標(biāo)如下:
(1)SM2 簽名不低于50 TPS,驗(yàn)簽不低于30 TPS;
(2)SM3 摘要計(jì)算不低于30 Mbit/s;
(3)SM4 加解密性能不低于30 Mbit/s。
安全SSD 提供了多種數(shù)據(jù)銷毀方式,包括觸敏銷毀、軟件銷毀和硬件銷毀,全面防護(hù)用戶數(shù)據(jù),避免泄露風(fēng)險,如表3 所示。
表3 3 種銷毀方式
(1)觸敏銷毀:安全SSD 內(nèi)部監(jiān)控用戶的讀寫操作,如果針對某個文件或者地址的訪問被觸發(fā),則自動觸發(fā)銷毀。
(2)軟件銷毀:用戶在獲得權(quán)限后,通過命令字觸發(fā)銷毀。
(3)硬件銷毀:通過觸發(fā)控制器外接的銷毀引腳觸發(fā)銷毀。
銷毀完成后,安全SSD 處于鎖定狀態(tài),不能接收主機(jī)命令,需要斷電重啟后用戶才能使用。若在銷毀過程中突然斷電,銷毀過程會在下次上電時繼續(xù)。數(shù)據(jù)銷毀完成后,所有數(shù)據(jù)返回值都將成為默認(rèn)的0xFF。硬件銷毀是用來應(yīng)對突發(fā)情況下的緊急銷毀,銷毀引腳內(nèi)置上拉電壓3.3 V,默認(rèn)高電平。銷毀引腳被拉低到電壓0V 持續(xù)3 s,數(shù)據(jù)銷毀即被觸發(fā),安全SSD 內(nèi)部開始進(jìn)行銷毀,此時觸發(fā)引腳上的電壓變化不會影響銷毀過程。圖15、圖16 所示為硬件銷毀實(shí)物示意圖。
圖15 硬件銷毀引腳
圖16 硬件銷毀實(shí)物
固態(tài)硬盤是信息安全的關(guān)鍵部件,大量的用戶數(shù)據(jù)存儲其中,雖然其擁有者會在系統(tǒng)層面采取一些必要的安全訪問控制策略,但如果存儲在固態(tài)硬盤中的數(shù)據(jù)為明文,那么訪問控制機(jī)制很容易在系統(tǒng)層面被繞開,并且在數(shù)據(jù)共享流轉(zhuǎn)時傳統(tǒng)的固態(tài)硬盤很難有明確的安全邊界。文中的安全SSD 實(shí)現(xiàn)技術(shù),在國產(chǎn)化自主可控的基礎(chǔ)上,采用軟硬件一體化設(shè)計(jì)思路,具有諸多創(chuàng)新點(diǎn)。
(1)全國產(chǎn)化設(shè)計(jì),自主可控。
GV48 芯片是一款自研的全國產(chǎn)化多核存儲控制器芯片,它很好地適配了長江存儲的MLC/TLC國產(chǎn)存儲顆粒。片內(nèi)集成了SM2/3/4 算法引擎,為加密存儲提供了國密算法內(nèi)生硬件級支持。該安全SSD 已經(jīng)在龍芯3A4000 平臺上適配使用。從主控芯片、存儲顆粒、密碼算法、適配平臺等層面均實(shí)現(xiàn)了全國產(chǎn)化設(shè)計(jì),完全自主可控。
(2)基于ATA 標(biāo)準(zhǔn)的HPA 功能實(shí)現(xiàn)與整機(jī)BIOS 弱耦合的隱藏Boot OS 技術(shù)路線。
ATA HPA 功能可以在安全SSD 上劃分出隱藏空間和用戶空間,并在兩個空間分別部署系統(tǒng)(Boot OS 和User OS)。安全SSD 在出廠時會預(yù)裝Boot OS,BIOS 指定通過隱藏空間的Boot OS 啟動,并且只能在Boot OS 下等到安全認(rèn)證授權(quán)后才能讓HPA切換到User OS 工作模式。整個過程隱藏了自定義的Boot OS 系統(tǒng),同時也極大地減少了安全功能對主板廠家BIOS 的依賴。在龍芯3A4000 平臺上,對PMON和昆侖固件均實(shí)現(xiàn)了Boot OS 部署和快速適配。
(3)實(shí)現(xiàn)了硬件級全盤加密策略。
利用GV48 芯片的可重構(gòu)算法核分別例化出SM2、SM3 和SM4 算法引擎,以SecCPU 作為安全SSD 的主控管理單元,進(jìn)行用戶鑒權(quán)認(rèn)證、用戶密鑰配置管理、磁盤分區(qū)管理、數(shù)據(jù)銷毀等操作??梢詫?shí)現(xiàn)對用戶系統(tǒng)分區(qū)、用戶密文分區(qū)的全盤加密策略,能很好地保護(hù)本地?cái)?shù)據(jù)的安全。
(4)創(chuàng)新性地采用了流控轉(zhuǎn)向技術(shù),使安全SSD 具備了密碼模塊服務(wù)功能。
利用SecCPU 對存儲數(shù)據(jù)流控的配置能力,參考GM/T 0018、GM/T 0028、GM/T 0039 等規(guī)范,實(shí)現(xiàn)了滿足國密安全等級二級要求的硬件密碼模塊功能,使安全SSD 還能夠?yàn)橛脩籼峁┱{(diào)用式密碼服務(wù)。該密碼模塊功能是通過增加定制化流控協(xié)議實(shí)現(xiàn)的,是作為安全存儲類接口以外的擴(kuò)展,能為User OS 中的安全應(yīng)用提供密碼服務(wù)能力支撐,與現(xiàn)有的安全存儲功能共存,豐富了安全SSD 的功能。
(5)功能完善的配置管理工具。
Boot OS 啟動后立即加載配置管理工具。配置管理工具具有分區(qū)管理、用戶配置和用戶登錄功能,用戶配置功能在管理員登錄后使能,可以對分區(qū)進(jìn)行管理,也可以對普通用戶進(jìn)行增加和刪除操作,在增加用戶時需配置用戶權(quán)限,指定用戶可訪問的硬盤空間。用戶登錄功能支持合法用戶登錄,獲取其相應(yīng)的空間使用權(quán)限,簡單易用。
計(jì)算機(jī)技術(shù)飛速發(fā)展,除了CPU 的性能和集成度不斷提高,與之密切相關(guān)的存儲器也得到了快速發(fā)展。國內(nèi)各大整機(jī)廠商的存儲和服務(wù)器產(chǎn)品也都裝備了企業(yè)級的SATA、SAS 和PCIE 的SSD,僅華為一家,目前SSD 的年出貨量已達(dá)100 萬片以上。可以說,有信息的地方就有計(jì)算機(jī),有計(jì)算機(jī)的地方就會出現(xiàn)固態(tài)硬盤。本文提出的安全固態(tài)硬盤實(shí)現(xiàn)技術(shù),通過硬件級密碼技術(shù)配合安全固件、配置管理工具等配套軟件,能夠?qū)崿F(xiàn)對固態(tài)硬盤核心數(shù)據(jù)的機(jī)密性和完整性進(jìn)行保護(hù),實(shí)現(xiàn)滿足GM/T 0028 規(guī)范的密鑰管理體系[10-11],可以防止普通固態(tài)硬盤存在的明文存儲引起的數(shù)據(jù)泄露、突破邊界防護(hù)的外部黑客攻擊以及來自內(nèi)部越權(quán)用戶的數(shù)據(jù)竊取,從而在根本上解決敏感數(shù)據(jù)泄露帶來的業(yè)務(wù)風(fēng)險問題,具有很好的實(shí)用價值和商業(yè)前景。