跳至內容

信任網絡

維基百科,自由的百科全書

信任網絡(英語:Web of Trust,縮寫:WoT)是密碼學中的一個概念,可以用來驗證一個公鑰的持有者身份,應用於PGPGnuPG或其他OpenPGP兼容系統中。信任網絡用去中心化的概念,不同於依賴數字證書認證機構公鑰基礎設施。在計算機網絡中,可以同時存在許多獨立的信任網絡,而任何用戶均可成為這些網絡中的一份子,或者不同網絡之間的連結。

信任網絡的概念最早由PGP的作者菲爾·齊默爾曼在PGP 2.0的使用手冊中提出。

隨着時間的流逝,你會逐漸收集許多其他人的密鑰,你可能會將其中其中一些人視作受信任的介紹者。而其他人也會選擇他們自己信任的介紹者。每個人都會逐漸收集並使用他們的密鑰分發來自其他人的驗證簽名集合,期望任何接收它的人都會信任至少一兩個簽名。這將導致所有公鑰的去中心化容錯信任網絡的湧現。

請注意在此上下文中使用了湧現一詞。信任網絡利用了湧現的概念。

信任網絡的運行

[編輯]

所有符合 OpenPGP 的實現都包含一個證書審查方案來幫助解決此問題;它的運作被稱為信任網絡。OpenPGP 證書(包括一個或多個公鑰以及所有者信息)可以由其他用戶進行數字簽名,這些用戶通過該行為認可該公鑰與證書中列出的個人或實體的關聯性。這通常在密鑰簽名聚會完成。[1]

符合 OpenPGP 的實現還包括一個計票方案,該方案可用於確定用戶在使用 PGP 時將信任哪個公鑰-所有者的關聯性。例如,如果三個部分受信任的背書人已經為一個證書做擔保(因此它包含的公鑰-所有者 綁定),或者如果一個完全受信任的背書人已經這樣做了,那麼所有者和公鑰之間的關聯在該證書將被認為是正確的。這些參數是用戶可調整的,如果需要,可以完全繞過。

與大多數公鑰基礎設施設計不同,該方案很靈活,並且將信任決策留給了個人用戶。它並不完美,需要用戶謹慎和智能監督。本質上,所有 PKI 設計都不太靈活,並且要求用戶遵循 PKI 生成的、證書頒發機構 (CA) 簽名的證書的信任背書。

簡化解釋

[編輯]

有兩個與一個人有關的密鑰:一個公開共享的公鑰和一個由所有者保留的私鑰。所有者的私鑰將解密使用其公鑰加密的任何信息。在信任網絡中,每個用戶都有一個帶有一組人的公鑰的環(即密鑰環)。

用戶用接收者的公鑰加密他們的消息,只有接收者的私鑰才能解密。然後每個用戶使用他們的私鑰對消息進行數字簽名,因此當接收者根據用戶自己的公鑰驗證信息時,他們可以確認這是有問題的用戶。這樣做將確保消息來自特定用戶並且未被篡改,並且只有預期的接收者才能讀取信息(因為只有他們知道他們的私鑰)。

與典型 PKI 對比

[編輯]

與信任網絡不同,典型的 X.509 PKI 允許每個證書由單方簽署:證書頒發機構 (CA)。 CA 的證書本身可能由不同的 CA 簽名,一直到「自簽名」根證書。根證書必須可供使用較低級別 CA 證書的人使用,因此通常分佈廣泛。例如,它們與瀏覽器和電子郵件客戶端等應用程式一起分發。這樣就可以對受SSL/TLS保護的網頁、電子郵件等進行身份驗證,而無需用戶手動安裝根證書。應用程式通常包括來自數十個 PKI 的一百多個根證書,因此默認情況下,在返回它們的證書層次結構中賦予信任。

信任網絡支持信任的去中心化,以防止單點故障破壞 CA 層次結構。[2] 一個著名的項目是 Monkeysphere 實用程序,它使用信任網絡而不是 PKI 來提供 Internet 其他領域的身份驗證框架。[3]

存在的問題

[編輯]

私鑰的丟失

[編輯]

OpenPGP 信任網絡基本上不受公司倒閉之類的影響,並且在幾乎沒有變化的情況下繼續運行。但是,確實會出現一個相關的問題:丟失了私鑰的用戶(無論是個人還是組織)無法再解密使用 OpenPGP 證書中的匹配公鑰生成的發送給他們的消息。早期的 PGP 證書不包括到期日期,並且這些證書的有效期是無限的。用戶必須針對匹配的私鑰丟失或泄露的時間準備一份簽名的取消證書。一位非常傑出的密碼學家仍接收到使用公鑰加密的消息,但他們很久以前就失去了私鑰的蹤跡。[4] 除了在通知發件人它們不可讀並請求使用他們仍然擁有匹配私鑰的公鑰重新發送之後丟棄它們,他們對這些消息無能為力。後來的 PGP 和所有符合 OpenPGP 的證書都包含到期日期,當明智地使用時,它會自動排除此類麻煩(最終)。使用 1990 年代初引入的「指定撤銷者」也可以輕鬆避免這個問題。密鑰所有者可以指定有權撤銷密鑰所有者的密鑰的第三方(以防密鑰所有者丟失了自己的私鑰,從而失去了撤銷自己的公鑰的能力)。

公鑰真實性檢查

[編輯]

信任網絡(如內置於 PGP/OpenPGP 類型系統中的信任網絡)的一個非技術性、社會性困難是,沒有中央控制者(例如,CA)的每個信任網絡都依賴於其他用戶相信。那些擁有新證書(即在生成新密鑰對的過程中產生)的人不太可能輕易地被其他用戶的系統信任,即那些他們沒有親自見過的人,直到他們為新證書找到足夠的認可。這是因為許多其他信任網絡用戶將他們的證書審查設置為在使用該證書中的公鑰準備消息、相信簽名、相信簽名等等。

儘管 OpenPGP 兼容系統得到廣泛使用,並且在線多個 公鑰伺服器 很容易獲得,但在實踐中可能無法輕易找到某人(或幾個人)來背書新證書(例如,通過將物理標識與密鑰所有者信息進行比較,然後對新證書進行數字簽名)。例如,偏遠地區或未開發地區的用戶可能會發現其他用戶稀缺。並且,如果對方的證書也是新的(並且沒有或很少得到其他人的認可),那麼它在任何新證書上的簽名只能為獲得其他方系統的信任提供邊際收益,從而能夠與他們安全地交換消息。密鑰簽名聚會是一種比較流行的機制,用於解決通過背書找到可以在現有信任網絡中安裝一個證書的其他用戶的問題。還存在網站以方便其他 OpenPGP 用戶的位置以安排密鑰簽名。 Gossamer Spider Web of Trust頁面存檔備份,存於互聯網檔案館) 還通過分層式信任網絡連結 OpenPGP 用戶使密鑰驗證更容易,最終用戶可以通過偶然或確定的信任而受益於被認可為介紹人,或者通過明確信任 GSWoT 的頂級密鑰作為 2 級介紹人(頂級密鑰認可 1 級介紹人)。

找到證書鏈的可能性通常由「小世界現象」來證明:給定兩個人,通常可以在他們之間找到一條短鏈,這樣鏈中的每個人都知道前面的和以下連結。然而,這樣的鏈並不一定有用:加密電子郵件或驗證簽名的人不僅要找到從他們的私鑰到通信者的簽名鏈,還要相信鏈中的每個人都是誠實和有能力的關於簽名密鑰(也就是說,他們必須判斷這些人是否可能誠實地遵循有關在簽名密鑰之前驗證人的身份的準則)。這是一個更強的約束。

另一個障礙是需要親自與某人會面(例如,在密鑰簽名聚會上)以驗證他們的身份以及公鑰和電子郵件地址的所有權,這可能涉及影響雙方的差旅費用和日程安排限制。軟件用戶可能需要驗證由位於世界各地的數千名開發人員生產的數百個軟件組件。由於普通軟件用戶無法與所有軟件開發人員親自見面以建立直接信任,因此他們必須依靠相對較慢的間接信任傳播。[來源請求]

從公鑰伺服器獲取作者(或開發者、發佈者等)的 PGP/GPG 密鑰也存在風險,因為公鑰伺服器是第三方 中間人,本身就容易受到濫用或攻擊。為了避免這種風險,作者可以選擇在他們自己的密鑰伺服器上發佈他們的公鑰(即,通過他們擁有的域名訪問的網絡伺服器,並且安全地位於他們的私人辦公室或家中)並要求使用用於傳輸其公鑰的 HKPS 加密連接。詳情請見下文信任網絡輔助解決方案

強集

[編輯]

強集 是指強連通 PGP 密鑰的最大集合。[5] 這構成了全球信任網絡的基礎。強集中的任意兩個密鑰在它們之間都有一條路徑;雖然僅在斷開連接的組中相互簽名的密鑰集島可以並且確實存在,但該組中只有一個成員需要與強集交換簽名才能使該組也成為強集的一部分。[6] 2015年的時候強集大約有55000個密鑰。[7]

平均最短距離

[編輯]
MSD-Based Trust Explanation Image
MSD-based trust explanation

PGP/GnuPG/OpenPGP 信任網絡的統計分析中,「平均最短距離 (MSD)」是給定的 PGP 密鑰在構成信任網絡的 PGP 密鑰的強連接集中的「可信度」程度。

平均最短距離已成為分析 PGP 密鑰集的常用指標。很多時候,您會看到針對給定密鑰子集計算的平均最短距離並與「全局平均最短距離」進行比較,「全局 平均最短距離」通常是指在全球信任網絡的較大密鑰分析之一中的密鑰排名。

信任網絡輔助解決方案

[編輯]

與原始開發者或作者進行物理會面,始終是獲得和分發、驗證和信任最高信任級別的 PGP/GPG 密鑰的最佳方式,並將繼續作為最佳信任級別的最佳方式。由原作者/開發者在廣為人知的(基於物理/紙質材料的)書籍上發佈 GPG/PGP 完整密鑰或完整密鑰指紋,是與用戶共享可信密鑰的第二種最佳形式。在與開發者或作者見面之前,用戶應在圖書庫和互聯網上自行研究開發者或作者,並了解開發者或作者的照片、作品、公鑰指紋、電子郵件地址等。

然而,數百萬想要安全通信或消息的用戶與每個接收用戶進行物理會面是不切實際的,對於需要與數百個軟件開發人員或作者進行物理會面的數百萬軟件用戶也是不切實際的,他們想要驗證和信任並最終在其計算機中使用的軟件或文件簽名 PGP/GPG 公鑰。因此,一個或多個受信任的第三方機構(TTPA)類型的實體或組需要可供用戶使用並可供用戶使用,並且此類實體/組需要能夠提供可信驗證 或信任-delegation 隨時為全球數百萬用戶提供服務。

實際上,要驗證任何下載或接收的內容或數據或電子郵件或文件的真實性,用戶需要驗證他們下載的主要內容或主要數據/電子郵件或主要文件的 PGP/GPG 簽名 代碼/文件(ASC、SIG)。因此,用戶需要使用原始開發者或原始作者的可信且經過驗證的公鑰,或者用戶需要使用該公鑰的原始所有者信任的可信文件簽名公鑰。並且要真正信任特定的 PGP/GPG 密鑰,用戶需要與每個特定的原始作者或開發者親自會面,或者用戶需要與文件簽名公鑰的原始發佈者親自會面,或者,用戶需要尋找另一個可信賴的替代用戶,該用戶位於信任網絡的可信鏈中(又名,另一個用戶或另一個開發者或另一個作者,他受到該非常特定的原始作者或開發者的信任),然後與該人實際會面,以驗證他們的真實 ID 和他/她的 PGP/GPG 密鑰(並且還向其他用戶提供您自己的 ID 和密鑰,以便雙方可以簽署/證明並信任彼此的 PGP/GPG 密鑰)。無論軟件是否流行,軟件用戶通常分佈在世界各地的不同地點。原始作者或開發人員或文件發佈者實際上不可能向數百萬用戶提供公鑰或信任或 ID 驗證服務。對於數以百萬計的軟件用戶來說,與他們將(使用或)在他們的計算機中使用的每個軟件或每個軟件庫或每個代碼的開發人員或作者或發佈者進行實際會面也是不切實際的。即使在來自信任網絡的可信鏈中有多個受信任的人/人(由原作者),每個開發人員或作者在物理上或實際上仍然不可能與每個其他用戶見面,也不可能每個用戶都見面數百名開發人員將使用或開發他們的軟件。當這種基於去中心化層次結構的 WoT 鏈模型將被附近的大多數用戶流行並使用時,只有這樣,信任網絡的物理會面和公鑰認證和簽名程序才會變得更加容易。

一些「解決方案」是:原始作者/開發者需要首先設置一個信任級別來簽署/證明他們自己的文件簽名密鑰。然後更新的公鑰和更新的文件簽名公鑰也必須通過在線安全和加密媒體發佈和分發(或使其可訪問)給用戶,以便世界上任何位置的任何用戶都可以獲得正確的和可信且未修改的公鑰。為確保每個用戶獲得正確且受信任的公鑰和簽名代碼/文件,原始開發者/作者或原始發佈者必須在自己的 公鑰伺服器上發佈他們更新的公鑰並強制使用 HKPS 加密連接,或在他們自己的 HTTPS 加密網頁上發佈他們更新的和完整的公鑰(和簽名代碼/文件),在他們自己的網絡伺服器下,從他們自己的主域網站,(不來自位於外部伺服器中的任何子域,不來自任何鏡像,不來自任何外部/共享論壇/wiki 等網站伺服器,不來自任何公共或外部/共享雲或託管服務伺服器),並且必須位於並安全地保存在他們自己的場所內:自己的家、自己的家庭辦公室或自己的辦公室。這樣,那些原始密鑰/代碼的小片段將完整地通過互聯網傳播,並且在傳輸過程中保持不變(由於加密連接),並且將到達目的地而不被竊聽或修改,進入用戶側,並且可以被視為可信公鑰,因為基於單通道或多通道 TTPA 的驗證。當通過多個基於可信第三方的安全、驗證和加密連接(從原始開發者自己的 Web 伺服器)獲得公鑰時,它更值得信賴。

當原始公鑰/簽名代碼通過加密連接或加密網頁顯示在原始開發人員或作者自己的 Web 伺服器或密鑰伺服器中時,任何其他文件、數據或內容都可以通過任何類型的非加密連接傳輸,例如:來自任何子域伺服器或任何鏡像或任何共享雲/託管伺服器的 HTTP/FTP 等,因為基於非加密連接的下載項目/數據/文件可以稍後通過使用原始公鑰進行身份驗證,從原作者/開發者自己的伺服器通過安全、加密和可信(也就是驗證)的連接/通道獲得。

使用加密連接傳輸密鑰或簽名/簽名代碼/文件,允許軟件用戶通過 PKI 可信第三方委託他們的信任,例如公開 CA,隨時幫助在原始開發者/作者的 Web 伺服器和全球數百萬用戶的計算機之間提供可信連接。

當原始作者/開發者的域名和名稱伺服器由 DNSSEC 簽名,並且在使用 SSL/TLS 時,公共證書在 TLSA 中聲明/顯示/DANE DNSSec DNS 資源記錄,(以及當 Web 伺服器通過 HPKP 技術固定和使用信任鏈中的 SSL/TLS 證書時),那麼 Web 伺服器的網頁或數據也可以通過另一個 PKI 可信第三方:DNSSEC 和 DNS 命名空間維護者 ICANN,而不是公共 CA 來驗證。 DNSSEC 是 PGP/GPG 信任網絡的另一種形式,但用於名稱伺服器;它首先為名稱伺服器創建一個可信鏈(而不是人/人),然後人/人的 PGP/GPG 密鑰和指紋也可以添加到伺服器的 DNSSEC DNS 記錄中。因此,任何想要安全通信的用戶(或任何軟件用戶)都可以通過兩個(又名雙/雙)受信任的 PKI TTPA/通道有效地獲取/接收他們的數據/密鑰/代碼/網頁等。同時:ICANN (DNSSEC) 和 CA (SSL/TLS 證書)。因此,當使用以下解決方案和技術時,可以信任 PGP/GPG 密鑰/簽名代碼數據(或文件):HKPS、HKPS+DNSSEC+DANE、HTTPS、HTTPS+HPKP 或 HTTPS+HPKP+DNSSEC+DANE。

參見

[編輯]

參考資料

[編輯]
  1. ^ Ulrich, Alexander; Holz, Ralph; Hauck, Peter; Carle, Georg. Atluri, Vijay; Diaz, Claudia , 編. Investigating the OpenPGP Web of Trust. Computer Security – ESORICS 2011. Lecture Notes in Computer Science (Berlin, Heidelberg: Springer). 2011: 489–507 [2022-02-27]. ISBN 978-3-642-23822-2. doi:10.1007/978-3-642-23822-2_27. (原始內容存檔於2022-04-06) (英語). 
  2. ^ Nightingale, Johnathan. Fraudulent *.google.com Certificate. [29 August 2011]. (原始內容存檔於2022-05-25). 
  3. ^ The Monkeysphere Project. [13 December 2016]. (原始內容存檔於2020-10-24). 
  4. ^ Ferguson, Niels; Schneier, Bruce. Practical Cryptography. Wiley. 2003: 333. ISBN 978-0471223573. Bruce lost a PGP key almost a decade ago; he still gets email encrypted with the corresponding certificate. 
  5. ^ Penning, Henk. on the apache.org web of trust. [13 December 2013]. (原始內容存檔於14 December 2013). 
  6. ^ Streib, M. Drew. Explanation of this Keyring Analysis. [13 December 2013]. (原始內容存檔於3 February 2009). 
  7. ^ Penning, Henk P. analysis of the strong set in the PGP web of trust. [8 January 2015]. (原始內容存檔於2015-01-01). 

延伸閱讀

[編輯]

外部連結

[編輯]