JWTを安全にデコードする方法

guide OpenTrojan Threat Intelligence

JWTをアップロードせずに安全にデコードする:デコードで何が明らかになるか、なぜデコードが検証ではないのか、APIセキュリティレビューで検査すべきクレーム(alg、exp、iss、aud、sub)。

クイックアンサー

JWTをローカルでデコードしてヘッダーとペイロードのクレーム — アルゴリズム、有効期限、発行者、受信者、主体 — を検査し、信頼できないオンラインのデコーダーにトークンを貼り付けないでください。デコードは検証ではなく、署名はAPI自体が検証しなければなりません。

定義

JWT(JSON Web Token)は認証と認可のフローに使われるコンパクトで署名付きのクレームコンテナです。分析での安全な使用はローカルでデコードし、デコードと署名検証を決して混同しないことを意味します。

最初に答える

ローカルでデコードし、クレームを検査し、覚えておいてください:デコード ≠ 検証。署名はデコーダーではなくサーバーが検証します。

1. ヘッダーをデコードする

algtypを確認します。信頼できないライブラリやドキュメントがalg: noneを示している場合、それは安全でない解析の危険信号です。

2. ペイロードのクレームを検査する

exp(期限切れトークンを決して信頼しない)、iatnbfissaudsubを確認します。発行者と受信者が意図したサービスと一致するか確認します。

3. トークンをアップロードしない

トークンはローカルのみのツールに貼り付けます(jwt.ioなどはクリップボードを信頼できる場合のみ。できればローカルのみ)。トークンは権限を運ぶ可能性があり、パスワードのように扱ってください。

4. 限界を覚えておく

デコードはクレームを明らかにするだけで、有効性は明らかにしません。きれいにデコードされるトークンも偽造または期限切れであり得ます。検証は署名鍵を使ってサーバー側で行われます。

5. APIセキュリティへ進む

APIをレビューする際は、トークンがサーバー側で検証され(署名、有効期限、発行者、受信者)、秘密がクライアントコードに出荷されないことを確認します。

役立つツール

参考文献

フォローアップの質問はありますか?

このトピックについてOpenTrojanのエビデンス駆動アシスタントに質問してください — 回答はソースを引用します。

これについてAIに聞く 調査を開始