跳到正文

去中心化身分(DID)

去中心化識別碼與可驗證憑證實用指南:它們能證明什麼、簽發與出示如何運作,以及信任、隱私和復原風險仍存在於何處。

更新於

僅供教育參考,不構成投資建議;投資可能產生損失。

直接答案

去中心化身分是一種架構:主體可以跨服務使用識別碼和受密碼學保護的憑證,而不把某個平台帳戶當作身分的唯一通用來源。常見組成包括去中心化識別碼(DID)、可驗證憑證(VC)、錢包等持有者軟體,以及規定驗證者接受哪些簽發者、證據和保證等級的規則。

DID 是類似 did:example:123 的 URI。其 DID 方法規定識別碼如何建立、解析、更新和停用。解析結果可以是 DID 文件,其中包含驗證方法、authenticationassertionMethod 等關係,以及可選的服務端點。控制相應金鑰可以證明在該方法下對 DID 的控制權;它本身不能證明法定姓名、年齡、唯一性、僱傭關係或外部帳戶所有權。

可驗證憑證承載簽發者對一個或多個主體作出的聲明。持有者保存憑證,並可為驗證者建立可驗證出示。密碼學檢查成功,表示受保護資料在所選證明機制下具有完整性並可確認作者。驗證者仍須另行判斷是否信任簽發者、聲明是否符合政策、憑證是否仍有效,以及出示者是否有權使用它。

因此,「去中心化」並不等於無需信任、匿名、基於區塊鏈或沒有中介。它表示識別碼、憑證、登錄檔、錢包和驗證政策可以彼此分離,從而無須由單一登入供應商觀察和控制所有關係。一套設計有多去中心化,取決於實際的簽發者、DID 方法營運方、狀態服務、錢包供應商、復原管理員、治理金鑰和驗證者政策。

運作方式

  1. 定義聲明和信任框架。 明確主體、所需屬性、可接受的簽發者、身分核驗流程、保證等級、保留政策、司法管轄區和申訴路徑。密碼學格式無法決定大學、政府、僱主或社群是否是合適的權威。
  2. 建立或取得識別碼與金鑰。 簽發者和持有者可以使用 DID、HTTPS URL 或其他受支援的識別碼。使用 DID 時,其方法決定登錄檔和生命週期規則。控制者保護私密金鑰;解析後的文件只公開使用案例所需的驗證材料和端點。
  3. 核驗並綁定主體。 簽發者按政策檢查證據,再把所得聲明綁定到憑證主體。綁定對象可以是持有者控制的金鑰、帳戶或其他識別碼。簽發者必須區分關於某人的證據與目前出示者控制某金鑰的證據。
  4. 簽發憑證。 簽發者建立聲明、有效日期、結構描述或類型資訊及狀態參照,再用受支援的證明保護憑證。在 Data Integrity 憑證中,cryptosuiteverificationMethodproofPurposeproofValue 等欄位說明如何驗證證明。
  5. 儲存並選擇。 持有者把憑證保存在本機或託管錢包軟體中。錢包應解釋驗證者請求了什麼,在憑證格式允許時僅揭露必要資料,並避免在無關情境間悄然重複使用穩定識別碼。
  6. 以新鮮度和受眾綁定方式出示。 驗證者傳送包含自身身分、目的、隨機數或挑戰值及到期時間的請求。持有者回傳綁定到該請求的憑證或衍生出示。網域和挑戰值檢查有助防止截獲的出示被重放給其他驗證者或工作階段。
  7. 驗證密碼學與政策。 從經過認證的來源解析簽發者驗證材料;驗證證明套件、目的、挑戰值、網域、日期、結構描述和狀態,再套用業務規則。像 verified: true 這樣的結果只是授權輸入,不是准予存取的指令。
  8. 營運生命週期。 輪換受損金鑰、暫停或撤銷憑證、更新狀態資料、提供復原與申訴、保留所需稽核證據,並公布遷移或停運計畫。歷史驗證需要明確舊金鑰、舊文件及憑證出示時點的規則。

三個主要角色是簽發者持有者驗證者;憑證主體可以與持有者不同。例如,家長可以持有關於孩子的憑證,公司代理人可以出示關於組織的憑證。除非憑證和協定建立了這種綁定,實作不得推斷出示者就是主體。

DID 和 VC 相互獨立。VC 可以使用非 DID 的簽發者識別碼,DID 也可以在沒有任何 VC 時使用。同樣,DID 方法可以採用區塊鏈、分散式資料庫、Web 網域或點對點交換。必須直接評估方法的安全與治理屬性,不能從 did: 前綴推斷。

實例

假設某服務必須確認客戶至少 18 歲,但不收集出生日期。獲認可的機構核驗客戶後,向錢包簽發年齡憑證。憑證可能包含出生日期,也可能只含 ageOver18 聲明;兩種選擇的揭露和重複使用屬性不同。

註冊時,服務為 merchant.example 請求一份年滿 18 歲的出示,挑戰值為 n-7f3a,有效視窗為 5 分鐘。錢包顯示請求;如果憑證和證明套件支援,就衍生只揭露所需述詞的出示。服務檢查機構的驗證方法、證明、挑戰值、網域、時間視窗和憑證狀態,再記錄稽核政策所需的最少結果。

這一流程減少了服務保留證件影像或完整出生日期的需要,但沒有消除信任或風險。機構可能登錄錯人;錢包或裝置可能受損;穩定的主體識別碼或狀態請求可能關聯多次使用;服務可能索取過量資料;錯誤暫停可能拒絕合法存取。選擇性揭露縮小了出示中展示的資料範圍,卻不會隱藏簽發者、錢包、網路和驗證者可見的全部中繼資料。

金鑰輪換展示了另一條邊界。簽發者替換受損金鑰後,新憑證應使用新的驗證方法。舊憑證能否繼續驗證,取決於 DID 方法歷史、證明建立時間、驗證者政策和憑證狀態。僅從目前 DID 文件刪除舊金鑰,可能使合法歷史檢查失敗,也可能掩蓋建立證明時哪個金鑰獲得授權。

風險與控制

  • 虛假或過寬聲明: 有效簽章保全簽發者所說的話,卻不會使聲明變準確。應規定證據要求、簽發者責任、保證等級、稽核、到期與更正流程。
  • 持有者綁定薄弱: 如果出示未證明對預期金鑰或驗證器的控制,複製的憑證可能被他人使用。適當時把持有證明綁定到驗證者、挑戰值、目的和工作階段。
  • 金鑰與錢包受損: 惡意軟體、網路釣魚、雲端錢包接管或不安全備份可能暴露憑證和簽章金鑰。採用抗釣魚驗證、適當的硬體保護、受損通報和範圍嚴格的復原。
  • 復原權力集中: 單一復原管理員可能成為真正的身分控制者。記錄誰能替換金鑰、需要什麼證據、如何發現濫用,以及使用者如何申訴或遷移。
  • 關聯: 重複使用一個 DID、驗證方法、簽章模式、服務端點或狀態查詢路徑,可能關聯跨服務活動。採用成對識別碼、網域分離金鑰或證明、保護隱私的狀態機制和中繼資料測試。
  • 公開個人資料: DID 文件和帳本歷史可能被公開索引且難以抹除。不要把姓名、證件號、生物特徵和其他個人聲明放入公開 DID 文件或不可變登錄檔。
  • 狀態隱私與可用性: 驗證者每次檢查狀態都聯絡簽發者,會暴露憑證使用地點;服務中斷又會阻擋合法使用者。優先採用保護隱私、可快取的狀態設計,並設新鮮度限制、認證更新及明確的開放失敗或關閉失敗行為。
  • 撤銷濫用: 簽發者或管理員可透過暫停憑證或更改狀態資料審查持有者。限制權限、記錄變更、公開理由和申訴流程,並盡可能支援替換或其他簽發者。
  • 解析和方法風險: 解析器可能回傳過期或惡意 DID 文件,DID 方法也可能依賴集中式基礎設施或可變治理。認證解析結果,並逐方法評估最終性、更新授權、可用性、治理和版本控制。
  • 語義不相符: 兩套系統可以解析相同欄位,卻對聲明、單位、司法管轄區或保證等級作不同解釋。使用穩定結構描述與詞彙表,驗證內容和類型,並為政策語義設版本。
  • 重放與驗證者混淆攻擊: 未綁定隨機數、受眾、網域、操作和到期時間的出示可以被重複使用或重新導向。驗證出示協定要求的每項綁定。
  • 過度揭露: 錢包即使技術上支援選擇性揭露,驗證者仍可能索取完整憑證。透過政策和介面設計執行資料最小化、記錄用途,並防止可選欄位慣性變成必填欄位。
  • 生態鎖定: 專有錢包、證明格式、登錄檔或復原流程會使憑證無法攜帶。部署前測試標準符合性、匯出、多錢包使用、密碼敏捷性和遷移。
  • 治理俘獲: 如果某供應商決定簽發者、軟體更新、結構描述和狀態規則,多重簽章或帳本也不能保證廣泛控制。逐元件標示營運權限並公布變更控制。

常見誤區

  • 「DID 能證明某人是誰。」 DID 識別主體並可公開驗證方法;身分屬性還需要額外聲明、證據和信任決策。
  • 「有效憑證表示聲明為真。」 驗證表示受保護資料具有預期證明且未被竄改,並不驗證簽發者最初的調查或判斷。
  • 「持有者總是憑證主體。」 兩種角色可以不同,因此使用案例需要時,驗證者必須取得明確的主體至出示者綁定。
  • 「所有內容都應上鏈。」 公開不可變儲存會放大隱私、關聯、刪除和治理風險。許多系統把憑證留在鏈下,只發布必要的驗證或狀態材料。
  • 「選擇性揭露保證匿名。」 已揭露屬性、穩定識別碼、證明指紋、狀態查詢、時序、IP 位址和簽發者日誌仍可關聯出示。
  • 「去中心化表示沒有可信簽發者或管理員。」 信任被分散並明確化,而非消除。簽發、核驗、錢包分發、復原、狀態和驗證者接受仍是受治理流程。
  • 「一個 DID 等於一個人。」 一個人可以控制多個 DID,DID 也可識別組織、裝置、資料集、角色或其他主體。唯一性和真人性需要獨立機制。
  • 「錢包簽章足以完成驗證。」 它在規定條件下證明金鑰控制權。應用仍需抗釣魚、新鮮度、受眾綁定、授權和帳戶復原規則。

相關主題

來源

導覽

搜尋知識庫...