cookieのSecure属性|情報処理安全確保支援士試験 令和2年 秋期午前Ⅱ試験 問12
出典:令和2年秋期 午前Ⅱ 問12
分野:セキュリティ / セキュリティ実装技術
WebサーバがHTTP over TLS(HTTPS)通信の応答でcookieにSecure属性を設定するときのWebサーバ及びWebブラウザの処理はどれか。
- ア:Webサーバでは,cookie発行時に"Secure="に続いて時間を設定し,Webブラウザは,指定された時間を参照し,指定された時間を過ぎている場合にそのcookieを削除する。
- イ:Webサーバでは,cookie発行時に"Secure="に続いてホスト名を設定し,Webブラウザは,指定されたホスト名を参照し,指定されたホストにそのcookieを送信する。
- ウ:Webサーバでは,cookie発行時に"Secure"を設定し,Webブラウザは,それを参照し,HTTPS通信時だけそのcookieを送信する。
- エ:Webサーバでは,cookie発行時に"Secure"を設定し,Webブラウザは,それを参照し,Webブラウザの終了時にcookieの他の属性によらず,そのcookieを削除する。
TSUNAGARU-ADVICE
まず押さえたいこと
cookieのSecure属性は、cookieをHTTPS通信時だけ送信させるための属性です。Webサーバがcookie発行時にSecureを設定すると、WebブラウザはHTTPではなくHTTPS通信のときだけ、そのcookieを送信します。
迷ったときの判断軸
時間を指定してcookieを削除するのはExpires属性やMax-Age属性、ホスト名に基づいて送信先を制御するのはDomain属性、ブラウザ終了時に削除されるかどうかはセッションcookieの扱いです。Secure属性は、cookieを送る通信路をHTTPSに限定するものと判断しましょう。
科目Bにつなげるために
科目Bでは、セッションIDを格納したcookieが盗聴されないように、どの属性を設定すべきかが問われることがあります。SecureはHTTPS限定、HttpOnlyはJavaScriptからの読出し抑止、SameSiteはクロスサイト送信の制御というように、cookie属性ごとの役割を分けて整理しましょう。
CookieのSecure属性は、そのCookieをHTTPS通信時だけ送信させるための属性です。
WebサーバがCookie発行時に
Secureを設定すると、Webブラウザはその属性を確認し、HTTP通信ではなくHTTPS通信の場合にだけ、そのCookieを送信します。これによって、暗号化されていない通信経路でCookieが送信されることを防ぎやすくなります。cookieには、送信先や有効期限、アクセス方法などを制御するための属性を設定できます。
つまり、DomainとPathは「cookieをどこに送るか」、Expiresは「いつまで使えるか」、HttpOnlyとSameSiteは「不正利用を防ぐための制御」と考えると分かりやすいです。
したがって、ウが適切です。
❌他選択肢が誤りの理由ア:Webサーバでは,cookie発行時に"Secure="に続いて時間を設定し,Webブラウザは,指定された時間を参照し,指定された時間を過ぎている場合にそのcookieを削除する。
⇒Cookieの有効期限に関する説明です。有効期限は
Expires属性やMax-Age属性で指定します。Secure属性は時間を設定するものではなく、HTTPS通信時だけCookieを送信させるための属性です。イ:Webサーバでは,cookie発行時に"Secure="に続いてホスト名を設定し,Webブラウザは,指定されたホスト名を参照し,指定されたホストにそのcookieを送信する。
⇒Cookieを送信するドメインやホストの範囲に関する説明です。これは主に
Domain属性の役割です。Secure属性はホスト名を指定するものではなく、CookieをHTTPS通信時だけ送信させるために使われます。エ:Webサーバでは,cookie発行時に"Secure"を設定し,Webブラウザは,それを参照し,Webブラウザの終了時にcookieの他の属性によらず,そのcookieを削除する。
⇒ブラウザ終了時にCookieを削除するかどうかは、セッションCookieか、又は有効期限が設定された永続Cookieかによって決まります。
Secure属性はCookieの保存期間を制御するものではなく、HTTPS通信時だけ送信させるための属性です。