金鑰繁多難記難管理?認識高效金鑰管理體系

買賣虛擬貨幣
金鑰設定是否只要夠安全就能夠重複使用?定期修改金鑰到底有沒有必要?金鑰不幸遺失該如何恢復?素未謀面的雙方,如何才能安全地進行金鑰協商?上一論我們瞭解到,基於密碼學的隱私保護方案,其有效性很大程度上取決於能否有效管理好金鑰。這裡,我們將進一步分析金鑰管理的具體範疇、每個操作環節的典型風險,以及應對手段。金鑰管理的物件是金鑰本身或者用於生成金鑰的金鑰材料(常稱之為根金鑰),三類主要操作環節包括金鑰的使用、儲存和協商。鑑於人類使用者(以下簡稱使用者)和計算機系統在自身能力上的差異,需要使用不同技術手段和治理手段來實現有效的金鑰管理,以下將對三類操作環節一一展開分析。金鑰的使用金鑰的使用是指,使用者基於根金鑰,為不同業務操作生成實際使用的金鑰的過程。這一過程不僅僅包括,直接使用預先設定好的金鑰,如輸入使用者記憶中的使用者口令,還包括使用經過一定變換後的金鑰。
其主要風險是金鑰洩露導致的非授權使用,可能會造成以下後果:· 由該金鑰加密的隱私資料洩露。特別是當所有歷史隱私資料都只用一個金鑰加密時,攻擊者將有可能獲得所有歷史隱私資料明文。· 使用該金鑰透過身份驗證入侵系統。不只是資料,攻擊者可以獲得使用者所有的操作特權,例如,惡意修改系統訪問控制引數、使用具有法律效應的數字證書對未授權的內容進行數字簽名等。針對這些在金鑰使用環節的風險,核心的應對手段為金鑰輪轉,即每隔一定時間,生成一個新的金鑰。對於計算機系統,一般可以輕易生成新的隨機金鑰。新金鑰與舊金鑰可以沒有任何關聯,其有效期限和金鑰本身都將儲存在高安全級別的儲存介質中,以此最小化金鑰暴露的風險。然而,以上方案對於使用者而言,可用性不高。
對使用者來說,生成一個安全的新金鑰,且能夠記住和使用它,已經不是一件容易的事。如果再進一步要求使用者記憶多個超長、隨機、無關聯的金鑰,那使用者很有可能被迫“變通”,使用不安全的手段,例如將金鑰全部寫在紙上、未受保護的手機APP裡。如何讓使用者只記憶一個金鑰,還能實現有效的金鑰輪轉,這裡可以用到的關鍵技術是金鑰派生函式(Key Derivation Function, KDF)。KDF具有兩個核心功能:· 將一個短的使用者口令延長到一個滿足安全金鑰長度的金鑰。· 由一個根金鑰生成多個滿足安全金鑰長度的金鑰。典型的KDF,如IETF RFC 2898標準中的PBKDF2函式,可以表達成如下形式:
DerivedKey = PBKDF2(PRF, Password, Salt, IterationCount, DerivedKeyLength)其中:· PRF是一個隨機數生成函式,負責在運算過程中生成一系列隨機數。· Password是使用者口令。· Salt是為了防止批次窮舉攻擊而設定的鹽值,其作用等價於使用者專屬的隨機種子。· IterationCount是生成派生金鑰時所需迭代計算的次數,可以透過刻意增加迭代計算的次數,加大攻擊者窮舉攻擊的難度。
· DerivedKeyLength是派生金鑰的長度,一般比使用者口令長很多。PBKDF2函式的五個輸入中,使用者只需要記憶使用者口令Password,其他都可以由輔助的計算機系統來計算完成。使用者口令可以根據使用者的偏好設定,不影響使用者體驗。同時只要使用者口令夠長,安全性風險一般都比較可控。

除了PBKDF2之外,BIP-32標準中Hierarchical Deterministic 金鑰錢包設計的核心也是KDF。區別在於BIP-32為橢圓曲線公鑰密碼學演算法提供了特有的金鑰派生規則,實現了子金鑰樹形擴充套件和中間節點公鑰託管擴充套件,有興趣的讀者可以深入瞭解一下。

KDF技術上實現了金鑰輪轉,在治理上也有必要採取一定的措施,進一步降低金鑰使用時的風險。常見治理策略主要覆蓋了兩大方面的風險:

· 金鑰的最短長度和最低複雜性:金鑰長度不能太短,不能被常見的字典庫輕易破解。
· 金鑰的複用:建議定期更改金鑰,且不能複用歷史金鑰。對於計算機系統,可以進一步要求為不同的系統用途設定不同的金鑰。

關於第一條治理策略,業界一般都沒有什麼異議,但對於第二條中,使用者需定期更改金鑰的建議,近年來也有一些不同觀點。

實踐中往往發現,為了方便記憶,不少使用者採用了不安全的變通方式,選用了有強關聯的一組使用者口令。例如,2019年使用的舊口令為“password2019”,2020年使用的新口令為“password2020”,一旦舊口令洩露,也很容易推斷出新口令。

反之,如果告知使用者不需要定期更改口令,使用者在心理上反而更有動力去設定一個更為複雜的口令。所以,實施定期更改使用者口令的策略,不一定更安全。

除了以上治理策略,為了控制內部人員濫用金鑰的風險,也很有必要將金鑰的控制權分派到多個職能上相互約束的相關人員手中,只有當所有相關人員都同意使用時,才能正常使用,其背後的技術原理將在下一環節中提及。

金鑰的儲存

金鑰的儲存是指,使用者將金鑰儲存在儲存介質中,並在特定的情況下,從儲存介質恢復出之前儲存的金鑰。

其主要的風險是因儲存不當導致金鑰洩露或遺失,除了上一環節中提到的後果之外,可能會額外造成以下後果:

· 由該金鑰加密的隱私資料無法被解密。
· 由該金鑰保護的權益無法被兌現。

針對這些在金鑰儲存環節的風險,核心的應對手段為物理隔離和金鑰分片。

前者指的是,金鑰儲存的環境應該是一個與惡意環境隔離的安全環境。後者指的是,金鑰儲存時不應該整存整取,而是進行分片,由多個信任方分別儲存,必要時還需要實現多地容災恢復。

對於計算機系統,安全硬體模組和高物理安全的伺服器房間是實現物理隔離常見的手段,必要時,儲存金鑰的裝置可以一直保持離線狀態,杜絕意料之外的非授權訪問。

對於金鑰分片,可以使用密碼學秘密分享演算法來實現。最常用的密碼學秘密分享演算法是Shamir秘密分享演算法,由以色列密碼學家Adi Shamir在其1979年的論文『How to share a secret』中提出。

Shamir秘密分享演算法的核心思想是,將金鑰的值設為一個N階隨機多項式中的常量引數,然後在該隨機多項式上隨機選M個點的座標,這些座標就是關於金鑰的分片。

這些分片具有以下特性:

· 如果攻擊者獲得分片總數小於N,攻擊者無法獲得任意關於金鑰的資訊。
· 如果所有可能的分片總數M大於N,透過其中任意N個分片,使用拉格朗日多項式插值演算法恢復出隨機多項式之後,便可有效地恢復出金鑰。

相比計算機系統,使用者對於前一項物理隔離的要求可能更容易實現。相比讀取儲存介質中的資料,在未進行威逼利誘的前提下,用技術手段直接提取使用者記憶中的口令目前要困難得多。

但對於第二項金鑰分片的要求,則需要配合各類託管技術,使用計算機輔助手段生成和儲存高安全性的金鑰分片。具體的技術分類和比較,可以參考上一論金鑰託管相關內容。

無論採用哪一種技術,一般情況下,使用者最少需要記憶一個使用者口令。但如同房門鑰匙一樣,遺忘使用者口令並不罕見,尤其是在賬戶數目和相關口令總數繁多的情況下。

如果服務提供商提供有效的重設服務,相比將使用者口令全部寫在紙上或手機APP裡,透過該服務重設使用者口令,洩露風險可能更低。

金鑰的協商

金鑰的協商是指,多個使用者或系統遠端協商即將在互動過程中所使用的金鑰。

作為社會性生物,和陌生人交換資訊,是人類生活中必不可少的組成部分。在當前資料驅動的時代,計算機系統透過跨域交換資訊實現更大的價值發掘,是現代資訊化商業核心業務模式之一。

在這些資訊交換過程中,最典型的應用之一是隱私資料的端到端加密傳輸,為此需要生成一次性金鑰對資訊進行加密保護。在缺乏可信通道的前提下,能否與互動方安全地完成金鑰協商,對於隱私資料的保護尤為關鍵。

其主要的風險是惡意通訊環境中的金鑰擷取或篡改,除了金鑰使用環節中提到的後果之外,可能會額外造成以下後果:

· 由該金鑰保護的隱私資料被篡改。例如,金融交易中的收款人、付款金額。
· 由該金鑰保護的其他金鑰洩露。例如,透過加密通道傳輸的後續協議中所約定使用的金鑰。

針對這些在金鑰協商環節的風險,核心的應對手段為認證交換和認證分發。

對於計算機系統,根據業務場景和部署環境安全假設的不同,認證金鑰交換的協議有很多不同的型別,最常用的是基於公鑰證書體系和Diffie-Hellman金鑰交換協議。

關於認證金鑰分發,經典密碼學相關方案有基於公鑰證書體系的金鑰封裝(Key Encapsulation Mechanism, KEM)、基於可信中間代理和代理重加密(Proxy Re-Encryption)的金鑰密文轉換等。比較創新的技術方案包括在第6論中提到的基於量子糾纏理論的量子金鑰分發技術,我國的墨子號量子科學實驗衛星已經實現了千公里級星地雙向量子糾纏分發原型實驗。

在技術手段的協助下,使用者往往對於金鑰協商是無感的。例如,我們在使用瀏覽器時,通常不會意識到,對不同的網站建立安全連線時,會根據不同網站的不同數字證書,進行金鑰的認證交換,並最終使用不同的一次性金鑰與不同的網站通訊。

但使用者也需要警惕,核實認證的有效性。一旦數字證書失竊或者過期,攻擊者就有機會假扮服務提供方,截獲使用者的隱私資料,篡改使用者的操作請求,實施經典的中間人攻擊。

金鑰管理的三大環節中,存在著大量的風險點。由於金鑰是密碼學中的最高機密,竊取金鑰往往是攻擊者的首要目標。任何一個環節出現問題,對應隱私保護方案的整體有效性,都會受到嚴重影響。

本論的分享主要關注技術方案和治理策略層面(參見以下總結表),在實際方案部署時,工程實現和其他相關層面的保護也很關鍵,會需要更完備的組合策略,從多個維度上提供層次化的保障。

正是:金鑰管理謹小慎破解,技術治理合璧顯神功!

有效的金鑰管理是使用基於密碼學的隱私保護方案的重要前提。無論隱私保護方案內部設計多麼精妙,任何在金鑰使用、儲存、協商環節中出現的疏漏,都會使之功虧一簣。

除了傳統的安全性分析,針對使用者的可用性分析也至關重要。在實際隱私保護應用中,高於常規人類認知記憶能力的要求,都會促使使用者使用不安全的變通手段,導致最終效果大打折扣。

有效的金鑰管理需要在多個維度上融合技術方案和治理策略,同時實現安全性和可用性之間的平衡和最佳化。

瞭解完金鑰相關的重要原則和管理技術,自下一論開始,我們將分享在實際的密碼學演算法中如何使用這些金鑰,深入解析隱私保護相關的密碼學原語,欲知詳情,敬請關注下文分解。

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;