01 / 身分驗證技術
常見 JWT 由三個點分隔部分組成
常見已簽署 JWT 形如 header.payload.signature,由標頭、載荷與簽章三部分組成,中間以句點分隔。
標頭會描述權杖類型與算法,載荷保存 claims,例如簽發者、受眾與到期時間;簽章用來檢查內容是否被改。
這種結構通常指 JWS 形式。另有加密的 JWE,但不能看到 JWT 三個字母便假設內容一定保密。
02 / 身分驗證技術
Base64URL 是編碼而不是加密
標頭與載荷常以 Base64URL 編碼,目的是把資料安全放進網址友善字元,不需要密鑰便可還原。
因此任何取得權杖的人通常都能讀取載荷,這是設計特性,不代表密碼學已被破解。可讀與可偽造是兩件事。
開發者不應把密碼、完整付款資料或不必要的敏感個資放入未加密載荷。HTTPS 也不能阻止收到權杖的一方自行解碼。
線上解碼網站可能保存提交內容,正式權杖不應貼入不明工具。可在受控本機環境查看非敏感測試資料。
03 / 身分驗證技術
簽章防止內容被靜默修改
簽發者對標頭與載荷建立密碼學簽章。驗證者用共享秘密或公鑰核對,任何內容改動都應令驗證失敗。
攻擊者可以改寫載荷再重新編碼,但若沒有正確密鑰,無法產生有效簽章。系統必須拒絕只解碼成功但簽章不符的權杖。
驗證程式還要固定允許算法,避免盲目信任權杖標頭指定的不安全選項。密鑰輪替與撤銷也需明確流程。
04 / 身分驗證技術
簽章正確仍要檢查 claims
有效簽章只證明內容由持有密鑰者簽出且未被改,還需核對 exp 到期時間、iss 簽發者與 aud 受眾。
某服務簽出的權杖不應被另一服務無條件接受。受眾檢查能避免把原本只給 A 系統的權杖搬到 B 系統使用。
短效權杖可縮短失竊後風險窗口,但仍要保護儲存位置、使用安全 Cookie 或其他合適機制,並處理登出與撤銷。
JWT 能驗證身分資訊,不會證明遊戲結果公平、服務合法或網站整體可信。這些屬不同審核層次。
05 / 身分驗證技術
使用者看到權杖時應避免外洩
權杖即使內容可讀,仍可能像臨時通行證般被冒用。不要把完整字串貼到客服、論壇、截圖或公開錯誤報告。
若懷疑外洩,應從可信裝置登出其他工作階段、修改相關憑證並檢查多重驗證,而不是只刪除瀏覽器畫面。
除錯紀錄若必須顯示權杖資訊,應只保留無法還原完整憑證的最少識別片段,並移除載荷中的個人資料。團隊亦應限制日誌存取和保存期限,因為伺服器日誌、分析平台與錯誤追蹤服務都可能成為權杖意外擴散的位置。
本文僅供知識分享,請理性看待;本站不接受投注、不提供註冊或博彩平台連結。身分技術不能取代時間、支出與帳戶安全界線。