繁體中文

開發者工具 · JWT 解碼器

JWT 有效負載未加密:任何擁有令牌的人都可以讀取它們

· 為什麼它很重要

jwt 隱私 安全

編碼的 JWT 有效負載開啟到可讀取的 JSON
原始 ToolAcre 向量圖

Base64url 看起來像亂碼,但它是可逆編碼。這篇文章展示了簽名令牌的宣告的可讀性、其中的內容以及何時需要 JWE。

它看起來是加密的-將個人資料放入代幣中的誤解

長的 base64url 段看起來很混亂,這會誘使團隊將它們視為隱藏資料。視覺效果具有誤導性。任何持有簽名 JWT 的人都可以反轉公共編碼並讀取 JSON 有效負載,而無需擁有簽名或驗證密鑰。

ToolAcre 透過在本機解碼標頭和有效負載來示範此屬性。它不會破壞加密,因為普通 JWS 有效負載未加密。易於檢查應該塑造代幣設計:僅對每個合法持有者和每個意外接收者可能能夠看到的資訊進行編碼。

簽名,而非密封:有效的 JWS 可以保護完整性,而不是有效負載機密性

有效的簽章或 MAC 可以讓正確配置的驗證者偵測變更並將代幣與可信任金鑰材料相關聯。這是驗證者政策中的完整性和來源證據。它不會向客戶端、代理、記錄器或任何其他獲得緊湊字串的人隱藏受保護的內容。

解碼器甚至無法建立完整性,因為它從不驗證。它顯示令牌對自身的描述,並將簽名字節報告為未經驗證。這種區別避免了兩個相反的錯誤:假設可讀意味著偽造,假設簽名意味著機密。

解碼器顯示的內容 — 每項宣告均以 JSON 形式顯示,無需金鑰

對於標頭和有效負載,ToolAcre 會轉換 base64url、恢復填充、將位元組恢復為 UTF-8 並解析 JSON 物件。沒有秘密參與。然後,宣告表直接顯示字串值,並將結構化值顯示為 JSON 文字,並帶有註冊名稱的說明,例如 `sub`、`aud` 和 `exp`。

此輸出是一種透明輔助手段,而非真理預言。偽造的令牌可以顯示與合法令牌相同的主題和角色。讀取宣告不需要金鑰;相信它需要成功的驗證以及消費服務中的發行者、受眾、時間和應用程式檢查。

令牌洩漏的地方 — 日誌、URL、引用標頭、瀏覽器歷史記錄和第三方腳本

令牌可能會透過應用程式日誌、複製的支援訊息、URL、引薦來源網址傳播、瀏覽器歷史記錄、螢幕截圖和可以存取該欄位的腳本進行洩漏。確切的路徑取決於系統,但有效負載的可讀性意味著過期或不可用的令牌仍可能洩露個人或操作資訊。

將緊湊憑證保留在 URL 查詢字串和例程日誌之外。在共享診斷資訊之前對其進行編輯。簽名不會淨化宣告,傳輸加密僅保護端點之間傳輸的資料;授權端點和意外儲存仍然可以看到明文令牌字元。

有效負載中的內容 — 識別碼和授權資料,絕不是持有者不應看到的秘密或資料

有效負載通常需要識別碼和授權上下文,以便接收者可以在驗證後做出決定。它們不應攜帶密碼、私鑰或必須防止令牌持有者讀取的資訊。最大限度地減少個人資料並避免不必要的消費服務所需的個人資料欄位的重複。

角色和範圍不僅僅是因為它們被編碼而成為秘密,但在經過驗證之前它們仍然不受信任。圍繞最少披露和最少特權設計權利要求集。如果消費者不需要某個欄位來執行其記錄的工作,則將該欄位排除在外可以減少所有洩漏後果。

工作範例 - 解碼範例令牌並準確列出旁觀者將學到的內容

解碼包含 `sub`、`email`、`tenant`、`roles`、`iat` 和 `exp` 的合成有效負載。旁觀者無需密鑰即可了解指定帳戶識別碼、地址、組織上下文、宣告的權限和時間。這些斷言是否真實則是另一個問題。他們的文字已經被披露。

僅使用過期或測試材料對發行人產生的每個代幣設定檔進行重複審核。記錄每個欄位及其消費者。 ToolAcre 可以幫助列舉可見內容,但無法決定組織的合法處理、敏感度或保留規則。

加密的緊湊令牌有五個部分,該 JWS 解碼器識別而不是解密

當索賠必須對持有人或中介機構保密時,可能需要加密設計。 Compact JWE 有五個部分並使用收件者解密金鑰。 ToolAcre 將五個段落識別為加密輸入,並解釋說如果沒有密鑰它就無法洩露內容。

加密引入了除此解碼器之外的金鑰分發、演演算法策略和操作故障模式。它也不能消除完整性和授權檢查的需要。從威脅模型中選擇它,而不是作為本應包含較少資料的有效負載的外觀升級。

重點:假設有效負載是公共的 — 在 ToolAcre JWT 解碼器中解碼您自己的令牌之一併審核它公開的內容

假設普通 JWT 有效負載在令牌移動的任何地方都是可讀取的。使用 ToolAcre 的僅解碼視圖來審核索賠暴露,而不是證明誰發布了這些值。刪除秘密和不必要的個人欄位,而不是依靠 base64url 來掩蓋它們。

如果確實需要保密性,請使用記錄的安全性屬性包含保密性的機制並相應地管理金鑰。無論是簽名還是加密,信任仍然來自配置的加密驗證和策略,而不是來自解碼器顯示結構化輸出的事實。