セキュリティ
JWT(JSON Web Token)に関する記述として、最も適切なものはどれか。
ア.JWTはheader.payload.signatureの3パートをドット区切りで連結したトークン形式で、サーバ側にセッション情報を保存せずクライアントが持ち回るためステートレス認証が実現できる。署名により改ざんを検出可能だが、payloadは暗号化されていないためBase64URLデコードで誰でも内容が読める点に注意が必要。正解
イ.JWTはサーバ側のセッションストアにユーザ情報を必ず保存し、トークン自体は単なるランダムIDである。
ウ.JWTはXMLベースのトークン形式で、SAMLアサーションと互換性がある。
エ.JWTは常にpayload全体が暗号化されており、署名による改ざん検出は行わない。
解説
JWTは「自分自身に身分証明を全部書いてある封蝋付き手紙」。中身は誰でも読めるが、封蝋(署名)が破られると改ざんに気づく仕組み。サーバは封蝋を確認するだけでよく、利用者情報を覚えておく必要がありません(ステートレス)。
なぜ ア が正解か
アが正解。JWTはRFC 7519で標準化されたトークン形式で、Base64URLエンコードしたheader、payload(claims)、signatureをドット区切りで連結する。署名はheader+payloadをHMAC-SHA256(HS256)等で計算するため改ざん検出可能。payloadはエンコードされているだけで暗号化されないため、機密情報(パスワード等)を入れてはいけない。ステートレスRESTful APIの認証で広く使われる。
出典: AI生成問題(学習用)