叡智の三猿

三猿×情報セキュリティ×はてな で発信します。

クッキーとセッション

プライバシーポリシーに定めたクッキー

会社のウェブサイトには、ウェブサイトにおいて収集した個人情報を、どのように扱うのかサイトの管理者が定めた「プライバシーポリシー」が掲載されています。

そして「プライバシーポリシー」には、Cookie(クッキー)に関する取り扱いが記載されているはずです。

ちなみに、このブログ(叡智の三猿)は、はてなブログを使って発信しています。はてなのプライバシーポリシーは、以下のURLでクッキーについての記載をしています。
policies.hatena.ne.jp

個人情報保護委員会は、2020年に個人情報保護法の改正に取り組みました。それにより、ブラウザのログイン情報をためた「クッキー(Cookie)」データについて、三者に提供すると個人が特定できる場合、利用者の同意を確認することを企業に義務付けるようにしました。

f:id:slowtrain2013:20200619193620p:plain:w500
Cookieの利用に同意

インターネットで用いられるクッキーとお菓子のクッキーは英語のつづりも同じです。

フォーチュン・クッキーの小さなメッセージ

インターネットのクッキーとお菓子のクッキー・・・一見、なんの関連性もなさそうです。しかし、AKB48の大ヒット曲「恋するフォーチュンクッキー」でお馴染みの、フォーチュン・クッキーでつながっているようです。
www.youtube.com
フォーチュン・クッキーはおみくじの入ったクッキーのことです。日本ではあまり馴染みがないのですが、アメリカの中華料理店では食後に出てきます。

クッキーの中にひとつひとつ異なる小さなメッセージが入っています。あなただけの特別なメッセージということです。

インターネットで使われるクッキーはウェブサーバがブラウザを識別する為に発行するデータです。ひとつのクッキーは最大で4096バイトの小さなメッセージです。

このメッセージはどのくらいの大きさかをイメージで書きます。

日本語文字は1文字が2バイトですので、4096バイトであれば、2で割って、2048の日本語文字を現わせます。これは400字詰の原稿用紙であれば、20枚ちょっとですね。

最大で原稿用紙20枚ちょっとのメッセージをどう捉えるかは、人それぞれかもしれません。ネットの世界では非常に小さな情報量です。

ちなみわたしはこのブログを書く際、一回あたりの文字数が2000文字をちょっと超える程度にしています。

クッキーとセッション

クッキーのメッセージはセッション管理に使われます。

セッション管理は「有効期限付きのチケット」をイメージすると分かりやすいと思います。

たとえば、シネマコンプレックスに行くと、入り口に飲み物やポップコーンの売店があります。そして、劇場に入るときは映画チケットを係員に見せます。そのチケットが有効(映画が終わるまで)の間は一旦、劇場から出て、売店で飲み物を買っても、再入場が可能です(チケットの半券を係員に提示すれば)。クッキーはチケットで、セッションはチケットに記載された作品の時間・座席情報のようなものです。

ある人がブラウザからウェブサイトにアクセスするとセッションが払い出されます。そのセッションが有効な間は、その人に必要な内容をウェブサーバは提供します。これにより、URLが同じでもアクセスする人(ブラウザ)によって、表示されるデータが変わる仕組みが提供されます(ステートフルといいます)。

インターネットで使われるクッキーも、フォーチュン・クッキーも「あなただけの特別な小さなメッセージ」という共通点があります。

セッションフィクセーション

セッションを悪用した攻撃としてセッションハイジャックが知られています。セッションハイジャックは他人のウェブサービスのセッションを乗っ取る攻撃を指します。

セッションハイジャックにはいくつかの種類があるのですが、そのなかのひとつ・・・セッションフィクセーションは攻撃者が入手したセッションIDをターゲットとなる利用者(被害者)に使わせる攻撃です。この攻撃はセッションIDを固定化することで発生するのが特徴です。

f:id:slowtrain2013:20200904164233p:plain
セッションフィクセーション

セッションフィクセーションに対する対策としては、ウェブサービスにおいてログイン処理をする前(アクセス段階、上図では①)と、ログイン処理時(上図では④)で異なるセッションIDを使うことで防ぎます。