Web技術の基礎

署名を付けた一般的なJWT(JSON Web Token)の説明として、正しいものはどれか。

  1. Aペイロードは署名の鍵で暗号化されているので、パスワードやクレジットカードの番号を入れて送っても、途中で読まれることはない
  2. B有効期限を過ぎたトークンでも、署名が正しければ改ざんはされていないので、サーバは受け付けなければならない
  3. Cヘッダ、ペイロード、署名をBase64URLで符号化して「.」でつないだもので、署名で改ざんを検出できるが、中身は暗号化されていない
答えと解説を見る

正解:C. ヘッダ、ペイロード、署名をBase64URLで符号化して「.」でつないだもので、署名で改ざんを検出できるが、中身は暗号化されていない

JWTは「ヘッダ.ペイロード.署名」の3つの部分からなり、ヘッダには署名の方式(例えばHS256)、ペイロードには利用者の識別子や有効期限(exp)などの情報(クレーム)が入ります。署名はヘッダとペイロードから秘密の鍵を使って作るので、受け取ったサーバは、中身が改ざんされていないことと発行元を確かめられます。ただし、Base64URLは暗号ではなく、だれでも元に戻して読めるので、秘密の情報は入れません。APIに送るときは、一般に Authorization: Bearer の後にトークンを付けて送ります。

  • A. 署名を付けたJWTのペイロードは符号化されているだけで、だれでも読めます。秘密の情報は入れません。
  • B. サーバは署名とともに有効期限(exp)も確かめ、期限を過ぎたトークンは受け付けません。
  • C. 正しい。署名で改ざんを検出できますが、中身は暗号化されていません。
この分野を解く 分野ページへ

Web技術の基礎の参考書を探す PR

Amazonの検索結果へのリンクです。Amazonのアソシエイトとして、半導体教室は適格販売により収入を得ています。

Web技術の基礎のほかの問題

  1. 写真の印刷サービスのアプリが、利用者の許可を得て、別の会社の写真の保存サービスにある利用者の写真を読み出す。OAuth 2.0で、利用者に許可を求める画面を示し、利用者が許可するとアプリにアクセストークンを発行する役割はどれか。
  2. OAuth 2.0とOpenID Connectの関係の説明として、正しいものはどれか。
  3. RESTの考え方に沿ったWeb APIの設計として、適切なものはどれか。
  4. ブラウザで https://www.example.com:8443/docs/guide.html?lang=ja#install を開いた。このURLのうち、サーバへ送るリクエストには含まれず、ページを読み込んだ後にブラウザの中だけで使われる部分はどれか。
  5. URLのクエリに日本語の「あ」を入れるため、この文字をUTF-8で表したバイト列(E3 81 82)を、パーセントエンコーディングで表す。結果として正しいものはどれか。