時至今日,互聯網和物聯網已經滲透到我們生活的點點滴滴,數據在其中的重要性不言而喻,一旦數據遭到惡意攻擊,導致泄漏或篡改等,這兩張網的安全性也就不復存在。因此,2015年重新頒布的《國家安全法》中第24、25條特別強調了數據安全要自主可控,而作為數據安全最重要環節之一的數據存儲安全也就成為了業界關注的焦點。
硬盤是數據的棲息地,那么如何確保數據能安全的存儲在硬盤上呢?眾所周知,人們為防止自己家中財物被盜取,往往會在門上加上一把鎖,沒有鑰匙就沒辦法入門,一樣的道理,為了保護數據,可以對數據進行加密,只有擁有密鑰的用戶才能獲取數據內容,這就是密碼技術。
密碼技術的核心是對信息按照一定的規則重新編碼來保證信息的機密性,國際上已有一系列密碼算法,而為了信息安全自主可控,我國商用密碼局近年來也組織制定了一些自主研發的密碼算法,包括SM1、SM2、SM3、SM4、SM7、SM9等。結合國家密碼算法,從硬盤固件安全和數據安全兩個方面出發,可以一定程度確保整個數據存儲系統的安全。
下面先簡述幾種常用國密算法的基本原理和應用場景,再從固件安全和數據安全兩個方面,詳細介紹國密算法在對應安全節點的具體應用。
幾種常用的國密算法
一系列國密算法中每個算法都有其獨特的用途,有些用于大量數據的加解密,有些用于身份的認證,有些用于防止數據被篡改。這些算法的安全性經過大量的論證,并基于現代密碼學的原理,逐步公開算法的具體實現,任何單位和個人都可以使用國密算法來保護自己的信息安全,其中應用最多最廣的是SM2、SM3、SM4算法。
SM2算法是一種基于橢圓曲線的非對稱密碼算法,即使用私鑰加密后的密文只能用對應公鑰進行解密,反之使用公鑰加密的密文也只能用對應的私鑰進行解密。通過對私鑰進行橢圓曲線運算可以生成公鑰,而由于橢圓曲線的特點,知道公鑰卻很難反推出私鑰,這就決定了SM2算法的安全性。SM2算法最常見的應用是進行身份認證,也就是我們熟知的數字簽名與驗簽,通過私鑰的私密性來實現身份的唯一性和合法性。
SM3算法是一種雜湊算法,任意長度的數據進過SM3算法后會生成長度固定為256bit的摘要。SM3算法的逆運算在數學上是不可實現的,即通過256bit的摘要無法反推出原數據的內容,因此在信息安全領域內常用SM3算法對信息的完整性進行度量。
SM4算法是一種對稱密碼算法,它以128bit為一組進行加解密。密鑰也固定為128bit,使用某一密鑰加密后的密文只能用該密鑰解密出明文,故而稱為對稱加密。SM4算法采用32輪非線性迭代實現,加解密速度較快,常應用于大量數據的加密,保存在存儲介質上的用戶數據往往就使用SM4算法進行加密保護。
國密算法在固件安全中的應用
固件控制著整個存儲系統的正常運行,倘若非法人員可以隨意導入固件、修改固件,那么數據也將完全暴露,因此保護數據存儲安全的首要一點就是要確保固件在導入、保存和執行過程中的安全。
在固件導入過程中使用SM2算法進行驗簽,其中用到的公鑰保存在主控芯片內部,私鑰由受信用的固件廠商保存。對于要導入的固件,需要使用私鑰對其進行簽名,將簽名和固件一起導入到盤片,帶有簽名的固件下載到緩存RAM后,再用公鑰進行SM2驗簽。只有使用合法私鑰簽名的固件才能通過驗簽,成功導入,沒有簽名或者使用非法私鑰簽名的固件無法通過驗簽而被丟棄。如此,擁有合法私鑰的用戶才擁有固件的導入權限,從源頭上確保了盤片內部固件的合法性。
國密算法在數據安全中的應用
以固態硬盤為例,用戶數據由主機寫入到硬盤的流程如上圖所示,虛線部分為國密算法在數據安全中的應用。若用戶數據的明文直接保存在存儲介質上,那么只要拿到存儲數據的存儲介質,就能以一定的途徑獲取到其中存儲的用戶數據,比如換上其它的主控芯片、對存儲介質上的電平進行分析等。我們可以在數據讀寫路徑上加上一道門鎖——SM4加解密:數據由主機傳輸到緩存RAM的過程中,使用SM4 算法加密,寫入到緩存上的就是密文,并最終以密文的形式保存在存儲介質Flash上;讀取數據時再解密出明文返回給主機。
以上所述的加密過程對用戶是完全透明的,用戶完全感知不到加解密過程的存在。為確保明文數據只對授權用戶可見,需要對加解密數據的密鑰——介質密鑰(MKey)進行保護,將其與授權用戶關聯起來。一種簡單的關聯方式如下圖所示,一方面使用SM3算法對用戶口令進行雜湊生成口令摘要,保存口令摘要用于身份鑒權;另一方面,對用戶口令進行派生構造加密密鑰(EKey),對介質密鑰進行加密保存。這個過程主要有以下三個方面:
創建——如上圖所示,用戶創建自己口令的同時,會生成取自口令摘要的加密密鑰EKey和取自真隨機數的介質密鑰MKey;通過SM4算法將MKey用EKey加密;最終將口令摘要和MKey密文保存在Flash上。
鑒權——創建用戶口令后再次上電,鑒權之前,由于無法獲取MKey而使盤片處于鎖定狀態。鑒權的過程即時將輸入的用戶口令使用SM3算法進行雜湊得到一份摘要,再從Flash上加載出保存的口令摘要,兩份摘要相同則認為用戶身份合法,反之不同則不合法。
解鎖——輸入正確的用戶口令,通過身份鑒權之后,才能構造出正確的EKey,解密出MKey明文,進而對讀寫的數據進行正常的加解密,實現盤片的解鎖,如上圖所示。
這個關聯過程也叫做密鑰管理過程,上面介紹的僅僅是一個基本思路,事實上在實際使用過程中,往往采用密鑰多級加密方式,也往往會在這個過程中加入一些真隨機數,來確保鑒權的有效性和介質密鑰的私密性。
綜上所述,對用戶數據的直接保護也使用了兩道門鎖——一道是對數據的輸入和輸出加上SM4加解密,確保存儲的用戶數據是密文;另一道是對介質密鑰加上SM3和SM4算法,確保介質密鑰直接與可信用戶關聯,進而實現了用戶數據明文只有可信用戶唯一可見。
結語
SM2、SM3、SM4算法,從固件安全和數據安全兩個維度,為數據存儲安全建立了一道堅實的保護墻。將自主研發的國家商用密碼算法應用到數據存儲安全,是順應了國產化需求的,也是實現數據安全自主可控道路上重要的一步。