科普 | 憑證真假難辨,去中心化身份體系有妙招(三)

 

 

之前,我們已連載翻譯了 Rebooting Web of Trust 組織在 RWOT IX — Prague, 2019會議上的論文《Alice Attempts to Abuse a Verifiable Credential》,瞭解了 Alice 是如何企圖對其處方進行作惡的,本期我們將連載最後一部分,向大家闡述作爲驗證者要如何防止遭受惡意證書持有者的欺詐。

上一期請參考:科普 | 憑證真假難辨,去中心化身份體系有妙招(二)

原文:https://github.com/WebOfTrustInfo/rwot9-prague/blob/master/final-documents/alice-attempts-abuse-verifiable-credential.md

作者:P. Dingle, S. Hammann, D. Hardman, C. Winczewski, S. Smit

 

 

                                                                                 驗證者的最佳實踐

 

在本節中,我們將從 Alice 的故事中跳出來,描述通常驗證者應遵循的最佳做法,以防止遭受惡意證書持有者的欺詐。我們將大致按照憑證驗證過程的順序來闡述相應的要點。

 

                                       

                                                                                                圖 | 網絡

  • 驗證者不應允許其他人來確認驗證過程(或其一部分)。             

    • 持有人進行的驗證不提供任何保證;持有人可以使用欺詐性的軟件,使其看起來好像驗證成功了。           

    • 驗證者必須明確說明可接受的發行者和可接受的憑證模式,並且必須確認展示的憑證符合這些要求。例如,在測試到期時間時,不得將月/日/年的編碼模式與日/月/年的編碼模式相混淆。            

    • 使用第三方驗證者會使驗證者受到影響,任何人可能會和第三方驗證者勾結,或者第三方驗證本身在存在漏洞。

  • 驗證者應將憑證持有者提供的數據視爲不可信輸入,並執行適當的輸入驗證,而不是假定這些數據擁有正確的憑證格式。             

    • 這是標準的安全編碼做法:必須對來自不受信任來源的任何輸入進行合適的驗證,以防止發生例如代碼注入或緩衝區溢出之類的攻擊。            

    • 僅在成功進行輸入驗證之後,纔可執行可驗證憑證的驗證代碼。            

  • 驗證者必須始終使用發行者的公鑰進行簽名驗證,或正確驗證提供的零知識證明。

    • 需要特別說明的是,忽略此檢查絕不是使業務保持正常運行的一個可接受備選項,例如,當連接中斷時忽略該檢查。憑證欺詐所產生的潛在成本可能比短暫中斷業務活動所產生的潛在成本高得多。

    • 雖然短時間內緩存發行者的公鑰是可以接受的,但作爲最佳實踐,此緩存時間應短一些,以防止使用舊公鑰進行簽名驗證(例如,由於舊密鑰泄漏,發行者可能已更換密鑰)。      

  • 驗證者必須確保發行者在基礎信任框架下已被授權可以發行這種類型的憑證。

    • 必須建立一個信任框架,並明確定義相關規則,如哪些發行者可以有效地發行哪種類型的憑證,並且這些規則必須由驗證者強制驗證。            

  • 驗證者必須有一套明確定義的憑證接受標準。這包括但不限於確定證書屬於持有人聲稱其所屬的主體(通常是持有人本身)。             

    • 在“Alice 試圖出售/出租她的憑證” 中概述了將可驗證憑證綁定到主體的一些方法。請注意,這是一個複雜的問題,在本文的小節中並無法完全解決。            

    • 如果必須手動執行檢查,例如將照片與人的臉部進行比較,則務必遵循精確的標準。

    • 我們描述了一種特殊類型的憑證,該憑證只能顯示一次;其它憑證類型可能需要不同的域限定檢查。信任框架務必明確定義驗證者必須執行的其它檢查。            

  • 驗證者必須檢查憑證是否已過期並是否被吊銷。             

    • 吊銷檢查涉及吊銷列表(例如,和存儲發行人公鑰的同一賬本)。因此,應採用與查找密鑰相同的最佳做法(例如,較短的緩存時間)。            

最佳實踐列表並不詳盡。毫無疑問,更通用的建議是適當的。另外,特定的最佳實踐在特定行業或特定證明環境中可能很重要。

 

                                                                                               生存能力

我們的大多數討論都採用了傳統的網絡安全思想,強調漏洞及其對策。但是,軍事人員採用了以任務生存能力爲基礎的觀點。在這種方法中,問題不是“ 我們如何防止攻擊?” ,而是“ 面對活躍的攻擊,我們如何完成我們的任務?”。在之前的 Alice 藥房場景中,藥房的任務是根據法律/法規以可接受的方式按方配藥,這啓發我們考慮影響結果的相互依存的三個因素:

  • 易受攻擊性(攻擊的可能性)             

  • 脆弱性(給定一個攻擊的情況下,損害的可能性)             

  • 可恢復性(在給定損害的情況下,恢復的簡便性和完全度)             

上面列出的大多數對策可解決脆弱性的問題,但也有例外。生物特徵識別和 link secret bond 機制不會直接阻礙憑證銷售(降低脆弱性);相反,它們通過破壞動機以減少被攻擊的可能性。

該類技術可以在憑證場景中有廣泛的應用。舉個例子,愛沙尼亞的在線投票系統允許每個公民隨意投票多次,但只計算最後一次投票。這就破壞了賄賂買選票的任何動機,因爲被賄賂的公民隨後可以再次投(自己真正想要的)票,從而消除了欺詐的影響並減少了被攻擊的可能性。

 

                                                    

                                                                                              圖 | 網絡

同樣,可恢復性的問題也值得深思。如果憑證欺詐能被快速自動地檢測出來,並進行撤消和懲罰,那麼即使最初的欺詐相對容易,也能說明某些證明場景的保護是到位的。例如,在我們的離線驗證場景中,爲了快速分發救命藥品,可以適當放鬆對簽名的實時性保證,但是必須謹慎權衡恢復的時間和自動化性質。信任框架的存在可以確保已經仔細評估並公開記錄這些折衷方案。

我們認爲,一個成熟且安全的可驗證憑證生態系統應包括所有這三個維度相關的周全決策,而不僅能脆弱性問題這一種。

 

                                                                                                  總結

 

我們可以看到 Alice 修改處方藥或從其處方藥中獲利的嘗試並未成功。在每個步驟中,她試圖篡改憑證或以超出預期的憑證欺詐行爲都被檢測出來,並沒有獲得成功。藥房充當了驗證者,通過遵循最佳實踐,確保了系統內的完整性並顯著降低了風險。

值得注意的是,儘管本文試圖從持有者的角度確定許多可能的攻擊方式,但這絕不是針對當前或未來攻擊的詳盡描述。驗證關鍵點的準確性和完整性的適當標準根據使用情況而有所不同。作者建議,驗證的任何實施者也應進行全面的風險分析,並根據他們的特定需求進行分析。

發佈了126 篇原創文章 · 獲贊 38 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章