CookieのSecure属性|情報処理安全確保支援士 平成27年 秋期午前Ⅱ試験 問13

出典:平成27年秋期 午前Ⅱ 問13 分野:セキュリティ / セキュリティ実装技術
WebサーバがHTTPS通信の応答でCookieにSecure属性を設定したときのブラウザの処理はどれか。
  • ア:ブラウザは,Cookieの"Secure="に続いて指定された時間を参照し,指定された時間を過ぎている場合にそのCookieを削除する。
  • イ:ブラウザは,Cookieの"Secure="に続いて指定されたホスト名を参照し,指定されたホストにそのCookieを送信する。
  • ウ:ブラウザは,Cookieの"Secure"を参照し,HTTPS通信時だけそのCookieを送信する。
  • エ:ブラウザは,Cookieの"Secure"を参照し,ブラウザの終了時にそのCookieを削除する。
解説

CookieのSecure属性は、そのCookieをHTTPSなどの安全な通信でだけ送信するようWebブラウザに指示する属性です。

WebサーバがHTTPS通信の応答でCookieにSecure属性を設定すると、ブラウザはそのCookieを保持し、以後は原則としてHTTPS通信時だけCookieをサーバへ送信します。HTTP通信では送信されないため、暗号化されていない通信経路でCookieが盗聴されるリスクを低減できます。

CookieにはSecure属性以外にも、送信先や利用方法などを制御する属性があります。

属性 役割
Secure HTTPSなどの安全な通信時だけCookieを送信する。
Domain Cookieを送信するドメインを指定する。
Path Cookieを送信するURLのパス範囲を指定する。
Expires Cookieの有効期限を指定する。
HttpOnly JavaScriptからCookieへアクセスできないようにする。XSSによるCookieの窃取対策などに役立つ。
SameSite サイトをまたがるリクエストの際にCookieを送信するかどうかを制御する。CSRF対策などに役立つ。

したがって、ウが適切です。

❌他選択肢が誤りの理由
ア:ブラウザは,Cookieの"Secure="に続いて指定された時間を参照し,指定された時間を過ぎている場合にそのCookieを削除する。
⇒Cookieの有効期限を指定するのはExpires属性などです。Secure属性には有効期限を指定する役割はありません。
イ:ブラウザは,Cookieの"Secure="に続いて指定されたホスト名を参照し,指定されたホストにそのCookieを送信する。
⇒Cookieを送信するドメインを指定するのはDomain属性です。Secure属性は送信先のホスト名を指定するものではありません。
エ:ブラウザは,Cookieの"Secure"を参照し,ブラウザの終了時にそのCookieを削除する。
⇒ブラウザ終了時に削除されるかどうかはCookieの保存期間に関係する性質であり、Secure属性の役割ではありません。Secure属性はCookieを安全な通信時だけ送信するためのものです。
TSUNAGARU-ADVICE

まず押さえたいこと

CookieのSecure属性は、そのCookieをHTTPS通信時だけ送信するようブラウザに指示する属性です。HTTP通信では送信されなくなるため、通信経路上でCookieが盗聴されるリスクを下げることができます。

迷ったときの判断軸

Cookieの有効期限を指定するのはExpiresやMax-Age、送信先ホストに関係するのはDomain、ブラウザ終了時に削除されるかどうかはセッションCookieの扱いに関係します。Secure属性は、HTTPS通信時だけ送信するという役割で整理しましょう。

科目Bにつなげるために

科目Bでは、Cookie・HTTPS・セッション管理・XSS・セッションハイジャックなどと組み合わせて問われることがあります。Secure属性だけで全ての攻撃を防げるわけではないため、Secure・HttpOnly・SameSiteなどを目的に応じて使い分ける視点を持ちましょう。