?

密碼系統中密鑰的狀態與保護*

2020-11-20 01:44馮文浩
北京電子科技學院學報 2020年2期
關鍵詞:公鑰完整性密鑰

王 雄 馮文浩

北京電子科技學院,北京市 100070

引言

隨著我國信息化與網絡化的快速發展與應用,網絡空間安全問題逐步凸顯。 作為網絡空間安全重要基石的密碼技術也隨著密碼法的實施展開了新的篇章。 依據密碼學上的柯克霍夫原則(Kerckhoffs’s principle),密碼算法的安全性應基于密鑰的安全性。 從已有資料看,針對密鑰的論述主要集中在密鑰管理類相關的文獻,比如文獻[1-4],或者國家制訂并發布的關于密碼管理的規范[5-7]。 但是,這些密鑰管理技術主要集中在密鑰管理系統的設計、密鑰生成、密鑰存儲或密鑰傳輸的方法,而密碼管理的規范主要集中在密鑰管理的架構設計、管理內容的定義以及管理接口的設計。 針對密鑰如何使用,密鑰是否可以使用,密鑰自身的安全防護等問題沒有系統的給出回答。 密鑰在工程應用中是一個復雜并且非常重要的內容,要求設計人員必須對密鑰有完整的認識之后才能制定有效的密鑰管理方案。本文參考美國密鑰管理相關資料[8-9],從工程實現的角度對密鑰使用及保護的相關內容進行了系統的介紹。

1 密鑰元數據

在密碼系統中,密鑰在其生命周期內涉及到生成、存到、導入和導出、分發、使用、備份和恢復、歸檔、銷毀等環節。 但是,伴隨密鑰生命周期全過程的不僅是密鑰本身,還有與密鑰不可分割的密鑰控制(屬性)信息即密鑰元數據。 密鑰元數據標識了關聯密鑰的長度、適用的密碼算法、密鑰的有效時間、密鑰狀態等密鑰信息,并給出了密鑰所有者、密鑰標識符等信息。 密鑰元數據必須與密鑰一起進行安全存儲,且密鑰使用時受到與其關聯的密鑰元數據的限制與支持。

密鑰元數據一般在密鑰生成時進行設置,并隨著密鑰生命周期的進程而發生變化,主要包括以下內容:

1)密鑰標識符:唯一標識密鑰的特定符號。

2)密鑰標簽:一組可讀的密鑰描述符(文本字符串)。

3)密鑰所有者:擁有密鑰的一個或多個實體的標識符。

4)密鑰狀態:描述密鑰當前使用條件的有限狀態。

5)密碼算法:用于使用該密鑰的密碼算法標識,如SM2、SM3、SM4、SM9 等。

6)工作模式:使用密鑰時指定的使用方案或操作模式。 比如對稱密碼算法的加密模式可以有電子密碼本ECB(Electronic CodeBook)、密碼塊鏈接CBC((Cipher Block Chaining)、輸出反饋模式OFB(Output feedback)和密文反饋CFB(Cipher feedback)。

7)密鑰參數:生成密鑰的種子或密鑰對中的素數、指數、生成元等。

8)密鑰長度:密鑰數據的長度(以位為單位),如256 位的SM2 密鑰、128 位的SM4 密鑰。

9)密鑰類型:標識了密鑰的種類,比如加密公鑰、簽名私鑰等。

10)密鑰保護:保護該密鑰的安全的類型,可以是完整性、機密性和源認證保護。 比如對稱密碼算法密鑰及其摘要值一起加密,實現密鑰數據的機密性和完整性保護。

11)日期-時間:密鑰生命周期中密鑰狀態有關的重要時間信息,生成時間、激活時間、更新時間、停用時間、撤銷時間、銷毀時間。

12)撤銷原因:如果密鑰被撤銷,必須對密鑰撤銷的理由進行說明,比如密鑰丟失、保存密鑰的密碼模塊丟失、密鑰所有者濫用密鑰等。

2 密鑰狀態與轉換

雖然密鑰生命周期從時間的維度刻畫了密鑰,但是,密鑰是否可以使用并沒有明確的說明。比如,在密鑰使用階段,如果懷疑密鑰泄露,此時密鑰是否可以使用;密鑰到達有限期后是否可以繼續使用或是有選擇的使用。 所以,密鑰生命周期的各個環節并不能完整的刻畫密鑰。 但是,通過密鑰狀態則可以將密鑰是否可以使用的問題有效的清晰表達。

密鑰定義有六種狀態,即預激活、激活、掛起、停用、盜用、銷毀。

2.1 預激活狀態

該狀態下,密鑰已經生成但是還沒有被授權使用。

在密鑰管理系統中,管理中心一端的大量密鑰往往處于預激活狀態,比如進行被管端密鑰更新之前,管理中心需要提前生成大量密鑰用于更新。 此時產生的密鑰雖然已經經過檢測,但是并沒有分發到最終目的設備,沒有進行使用授權,所以全部處于預激活狀態。

一般來說,這種狀態下密鑰只能用于所有權證明或者密鑰信息的確認。 所有權證明是用來驗證密鑰的所有者,比如公鑰證書在簽發之前。密鑰信息的確認用來確認密鑰的元數據信息,密鑰類型等。 因為沒有被授權使用,所以該狀態的密鑰不能用于信息的加解密,簽名等操作。

2.2 激活狀態

該狀態下,密鑰已被授權正式使用或者密鑰已經通過更新替換原有密鑰。

在密鑰管理系統中,處于激活狀態的密鑰可以用來對信息進行處理(例如加解密,簽名等)。此外,該密鑰也可用于所有權證明或者密鑰信息的確認。

一般來說,這種狀態下的密鑰會根據密鑰所屬的類型來完成相對應的功能。 例如,私有簽名密鑰可以用來對明文信息進行簽名。 對稱加密密鑰可以用來對數據進行加密等。

2.3 掛起狀態

該狀態下,密鑰暫時停止使用。 定義該狀態一般是用于處理密鑰或密碼系統中的特殊情況。

在密鑰管理系統中,如果系統通過對相關信息綜合后感知到密鑰可能存在泄漏的情況,系統將密鑰狀態轉換為掛起狀態,并對泄露情況進一步核實。 如果結果顯示密鑰沒有被泄露或盜用,可以將密鑰恢復到之前的狀態。 當簽名私鑰的所有者信息出現錯誤或變更,該密鑰所生產的簽名將無效,此時,需要將密鑰轉換為掛起狀態。

處于該狀態的密鑰并沒有完全喪失全部功能。 比如,如果掛起的原因不是密鑰泄露且該密鑰是對稱密鑰,那么該密鑰仍然可以用于解密之前加密過的信息。 如果該密鑰是驗簽公鑰且掛起原因不是密鑰泄露,那么驗簽公鑰同樣可以用來對簽名私鑰生成的簽名信息進行認證。

2.4 停用狀態

密鑰的元數據會保存有密鑰的使用期限。在密鑰使用期滿后,系統將密鑰置為停用狀態。處于停用狀態的密鑰不能用于信息加密或信息簽名,但可以用于解密或者認證簽名。

2.5 盜用狀態

處于該狀態的密鑰已經證實存在泄漏行為。當密鑰提供給未經授權的實體或由未經授權的實體使用時,密鑰就會被盜用。 被盜用的密鑰不能用于信息加密保護。

在某些情況下,泄露的對稱密鑰或泄露的密鑰對公鑰仍然可用于處理加密保護的信息。 例如,如果簽名在簽名私鑰泄露之前已經受到物理保護,或者簽名數據中包含了可靠的時間戳,則可以驗證簽名以確定簽名數據的完整性。

2.6 銷毀狀態

銷毀狀態是密鑰的最終狀態。 當密鑰使用期已滿且密鑰不再用于對信息進行加密、解密、簽名,或者密鑰被盜,密鑰直接進入該狀態。 該狀態的密鑰需要銷毀以釋放存儲空間。

2.7 狀態轉換

密鑰在任一時刻必定處于上述六種狀態之一。 但是,密鑰并不是靜態的,其狀態在某些事件觸發下進行狀態的轉換。 具體轉換如圖1所示。

預激活->激活:在密鑰管理系統中,密鑰通過算法生成后立即轉為預激活狀態,等待使用。處于該狀態的密鑰,正式分發給用戶后,密鑰從預激活狀態轉換為激活狀態。

激活->停用:正常情況下,處于激活狀態的密鑰在使用周期到達后會轉換為停用狀態。

激活->掛起:特殊情況下,比如激活密鑰存在泄漏的可能或者其他原因(非使用期滿)造成密鑰暫時不能繼續使用時,密鑰從激活狀態轉為掛起狀態。

掛起->激活:當密鑰經核查未泄漏且密鑰使用期未滿,恢復至激活狀態繼續使用。

掛起->盜用:處于掛起狀態的密鑰經過核查后確定密鑰泄漏,此時密鑰從掛起狀態轉換為盜用狀態。

盜用->銷毀:當密鑰處于盜用狀態下,且該密鑰不在進行使用,直接轉換到銷毀狀態。

停用->銷毀:當密鑰處于停用狀態時,待達到緩沖期(比如所有經停用密鑰加密過的數據全部更換新密鑰重新加密)結束后,此時密鑰已經喪失其功能,密鑰從停用狀態轉換為銷毀狀態。

在密鑰整個生命周期中,密鑰必定處于某種狀態,且在事件觸發下,在預激活、激活、掛起、停用、盜用、銷毀中輪轉。

3 密鑰信息保護

鑒于密鑰在密碼學中的重要地位,密鑰信息需要在存儲、傳輸時進行有效的安全保護,尤其是密鑰在加密模塊外部存儲時更加需要保護。密鑰的類型決定了密鑰信息的保護類型,比如對稱加密密鑰無論是在存儲還是傳輸時都要受到機密性與完整性保護,而數字證書中驗簽公鑰只需要完整性保護。

一般情況下針對密鑰設計的保護技術包含訪問控制(授權)、機密性保護、完整性保護。

對存儲的密鑰進行訪問時需要進行授權,即只允許授權用戶訪問存儲的密鑰。 在密鑰管理系統或底層密碼模塊中,需要設計針對密鑰的授權訪問機制。 特別是對非對稱密鑰中的私鑰,需要設置單獨的訪問授權碼進行訪問授權。

所有存儲的密鑰都需要完整性保護。 當密鑰的完整性破壞后,新的密鑰無法正確執行預期功能,并在某些情況下影響其他密鑰[7]。 從某種意義上說,物理安全技術可以為密鑰提供完整性保護。 但是,受到存儲空間等因素的影響,一般采用密鑰完整性檢測或糾錯技術實現密鑰的完整性保護, 比如使用消息認證碼 MAC(Message Authentication Code)或數字簽名可以實現密鑰的完整性保護。 當公鑰以數字證書為載體時,利用數字證書上頒發者的數字簽名提供公鑰的完整性保護;如果公鑰并不是以數字證書為載體,系統需要提供其他方法實現公鑰的完整性保護。

存儲加密密鑰時,對稱密鑰和私鑰需要機密性保護和訪問控制,對稱密鑰和非對稱密鑰都需要完整性保護。 對于機密性保護,可以使用加密、分割、物理安全等技術,一般要求三級保護,在密鑰加密保護層次結構的頂層,通常有一個密鑰必須受到物理保護。

這里的分割是一種多方控制的門限共享技術。 密鑰分割時會生成n 個密鑰片段,并分發給n 個不同的持有者。 使用時,可以使用任何k 個密鑰片段合成密鑰,且任何k-1 個密鑰片段都不能合成密鑰,從而實現密鑰的安全分布式管理。 一般情況下,密鑰分割技術應用于密鑰保護層次結構中的主密鑰或根密鑰。

為了防止密鑰遭到敵手的破壞或用戶誤操作刪除等情況,需要設計密鑰備份、歸檔和恢復的機制,防止密鑰遭受破壞后導致受密鑰保護數據無法還原或認證。 這里的備份機制可以采用密碼系統配備的智能密碼鑰匙USB Key 或其他硬件存儲設備保存密鑰保護后導出數據的方法,此時,備份的密鑰仍然需要按照存儲密鑰保護機制進行機密性和完整性保護,同時備份密鑰需要通過密鑰分割技術、物理安全等進行保護。

密鑰傳輸時,需要設計安全的密鑰傳輸方案對傳輸的密鑰提供機密性和完整性保護,并且在傳輸之前,對通信雙方的身份進行認證。 目前有一些成熟的設計方案[5],比如基于公鑰證書進行身份認證,基于公鑰密碼體制協商動態對稱密鑰并建立安全通道。

4 總結

本文對密碼/密鑰管理系統中涉及密鑰的使用與保護相關內容進行了詳細的介紹,通過密鑰元數據的定義闡述了密鑰使用中的限制與支持,即如何使用密鑰;通過密鑰狀態的定義闡述了密鑰能不能使用;通過對存儲密鑰和傳輸密鑰機密性、完整性保護方案給出了密鑰信息保護的方法。 本文的內容是密碼工程應用中密鑰管理涉及的基本問題,也是關鍵問題。 所設計與方案可為密鑰管理系統以及密碼模塊中針對密鑰部分的設計提供參考和指南。

猜你喜歡
公鑰完整性密鑰
幻中邂逅之金色密鑰
幻中邂逅之金色密鑰
關于防火門耐火完整性在國標、英標、歐標和美標中的比對分析
ELM及IS/OS完整性對年齡相關性黃斑變性預后視力的影響
更正說明
神奇的公鑰密碼
Android密鑰庫簡析
國密SM2密碼算法的C語言實現
基于身份的聚合簽名體制研究
一種新的動態批密鑰更新算法
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合