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を削除する。
解説

CookieのSecure属性は、そのCookieをHTTPS通信時だけ送信させるための属性です。

WebサーバがCookie発行時にSecureを設定すると、Webブラウザはその属性を確認し、HTTP通信ではなくHTTPS通信の場合にだけ、そのCookieを送信します。これによって、暗号化されていない通信経路でCookieが送信されることを防ぎやすくなります。

cookieには、送信先や有効期限、アクセス方法などを制御するための属性を設定できます。

属性 役割
Domain cookieを送信するドメインを指定する。たとえば、特定のドメインやそのサブドメインでcookieを使えるようにする
Path cookieを送信するURLの範囲を指定する。たとえば、特定のディレクトリ配下だけでcookieを送るようにできる
Expires cookieの有効期限を指定する。期限を過ぎると、そのcookieは使われなくなる
HttpOnly JavaScriptからcookieを読み取れないようにする。XSSによるcookie窃取を防ぎやすくする
SameSite 別サイトからのリクエスト時にcookieを送るかどうかを制御する。CSRF対策として使われる

つまり、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通信時だけ送信させるための属性です。
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属性ごとの役割を分けて整理しましょう。