インターネットのセキュリティ(1) ~ クッキーとは ~

ーザー登録しているウェブサイトにログインしたり、ショッピングサイトなどを利用していると「ようこそ○○さん」とか「前回のログインは、○月○日○時です」といった表示を目にしたことはないでしょうか?

どうしてこのようなことが可能になるのかというと、ユーザーが意識しないところでWWWサーバ(ウェブサーバ)とパソコン(ブラウザ)が情報をやり取りしているからです。

また、IDやパスワードを毎回入力しなくてもアクセスするだけでログイン状態になっている経験があると思います。

これは、WWWサーバが一度訪れたことのあるユーザーのブラウザを識別して、自動的にIDとパスワードを入力済みにしているからです。つまり、WWWサーバと個別のブラウザが情報をやり取りしている結果ということになります。

また、ウェブページ内に表示される広告が自分の趣味嗜好に近いものが表示されたり、異なるサイトでも同じような広告が表示されると思った経験はないでしょうか?

本来、HTTPはハイパーテキストを転送するだけのプロトコルであり、例えば同じウェブサイト内の異なるページに移動しても、WWWサーバ側ではそれが同じユーザーなのかどうかの判断はできません。

そのため、HTTPのみではユーザーごとに異なる内容のページを提供することはもちろん、ページを移動されるとログイン状態を保つこともできないのです。

このようにユーザーを認識して行う通信を「セッション」と言いますが、HTTPのみではセッションを確立することができません。そこで、こうしたニーズを満たすためにHTTPを補完する技術が開発されました。

WWWサーバと情報をやり取りするには、これまで学習したCGIやActiveXなどがありますが、この仕組みはいたってシンプルです。

情報のやり取りには単なるテキストファイル

が使われ、このテキストファイルのことを、

クッキー(Cookie)

と言います。

食べ物のクッキーと同じ名前とスペルですが、インターネットにおけるクッキーは、情報が記されたテキストファイルのことです。クッキーがHTTPを補完してユーザーを識別するための資源となることから、HTTPクッキーと呼ばれる場合もあります。

クッキーを利用したやり取りの仕組みも非常にシンプルで、

WWWサーバがユーザーのブラウザにクッキーを送信して自動的に保存させておく

というものです。

サーバ側ではなく、アクセスする「あなた」側のブラウザにこっそりクッキーを保存するのです。

まず1回目のアクセス時に、サーバ側でクッキーを作成し、ユーザー側のブラウザに送信して保存します。2回目以降は、ブラウザに保管されているクッキーをサーバに送信し、サーバ側でクッキーIDを識別して、そのIDに紐づくログインや履歴を表示するといった処理の流れになります。

クッキーの仕組みのイメージ

つまり、ユーザー側に保存されているクッキー情報をアクセス時に受け取り、その情報をもとにサーバ側に保存されたユーザーデータを呼び出すという仕組みです。

このように、サーバ側からテキストファイルをユーザーに配布して受け取る仕組みから、テキストファイルを疑似的にお菓子に例えたものが定着したとされています。

ただし注意が必要なことは、

クッキーはあくまで個々のブラウザを認識するものであって個人を特定するものではない

ということです。

そのため、別のパソコンやスマートフォンなど(別ブラウザ)から同じウェブサイトにアクセスしても、IDとパスワードの入力を省略してくれるわけではありません。詳しくは後述しますが、異なるブラウザから同一サイトを訪問した場合は、それぞれのブラウザにクッキーが保存されることになります。

ウェブサイトの運営者がクッキーを利用するには、JavaとJavascript で学習したJavaScriptやCGIの技術が使われます。JavaScriptはセキュリティ上、データを書き込むことができない仕様になっていますが、例外としてクッキーを書き込むことは許されています。

また、クッキーはパソコンだけでなく、スマートフォンなどのインターネット接続デバイス全般で利用されています。

下図は、ブラウザ(Internet Explorer)に保存されているクッキーのイメージです。Windows10では「コントロールパネル」→「インターネットオプション」→「全般」タブ →「設定」ボタン →「ファイルの表示」より確認することができます。

クッキーが保存されているフォルダのイメージ

ウェブサイトごとにクッキーが作成されて保存されています。前述のとおり中身はテキストファイルであり、数KB程度のデータサイズになっています。

ただし、メモ帳などのテキストエディタで直接開くことはできないようになっています。クッキーはユーザー情報などの個人情報を含んでいます。簡単に操作できないように、ブラウザの専用ウィンドウから操作することが一般的になっています。

Windows Edgeでは「設定」画面 →「Cookieとサイトのアクセス許可」→「Cookieのサイトデータの管理と削除」→「すべてのCookieとサイトデータを表示する」より、保存されているクッキーを確認することができます。

Microsoft Edgeに保存されているクッキーの一覧イメージ

具体的なクッキーの内容は、クッキーの名前、有効期限、WWWサーバのドメイン名、サイトへの訪問履歴などです。

ユーザーIDやパスワードも保存されていると言いたいところですが、これはもうおわかりのとおり、セキュリティ上のリスクから慎重に取り扱われます。

最近では、パスワードだけでなくユーザーIDもクッキーに直接保存しない傾向になっているようです。代わりに、セッションIDというランダムな文字列による一時的な識別子が記録されるようになっています。

セッションIDはセッション間(先述したユーザーを識別した通信の間、つまりユーザーがサイトに接続している間)だけ有効なもので、期限が切れると新しいセッションIDが発行されます。セッションIDにより、サーバ側に厳重に保管されているユーザーIDとパスワードを紐づけてログインを完了させています。

また、ショッピングサイトにログインすると、これまで購入した商品履歴やチェックした商品の傾向から「自分用」のオススメ商品が表示されたり、個人ごとにカスタマイズされたウェブページが表示されるといった覚えがあると思います。

こうした情報もクッキーには保存されず、サイト側のウェブサーバに保存されています。そもそもクッキーは数KBのテキストファイルなので膨大な情報を書き込むものではありません。

つまりクッキーは、ユーザーを特定するためのキーとなる情報だけを保存していると考えればわかりやすいかもしれません。重大な個人情報は記録されませんが、クッキーがなければユーザーを特定したサービスを提供することができません。

ただし、

クッキーに何を記述するかはウェブサイトの運営者次第

です。

個人情報保護の観点から法的な規制が厳しくなりつつありますが、個人情報やクレジットカードの暗証番号をクッキーに保存させておくといったことも不可能ではありません。

なんとなくクッキーが怖いものといったイメージが定着しているのは、このような理由からです。

そのため、すべてのクッキーを無条件で受け入れるのはリスクをともないます。リスクを回避するためには、ブラウザの設定が必要になってきますが、まずはクッキーの種類について理解しておきましょう。

ファーストパーティークッキー

ファーストパーティーとは「当事者」の意味で、閲覧しているウェブサイトのドメインが発行するクッキーです。(ドメインについては、クラスとドメイン を参照してください)

つまり、サイト運営者が発行するクッキーで、セッション管理やサイト内の閲覧履歴などを記録し、主に利便性の向上を目的とします。同一ドメイン上のみで機能します。

セカンドパーティークッキー

セカンドパーティーとは「直接関係のある相手」の意味で、あまり使われない用語ですが、ファーストパーディークッキーと後述するサードパーティクッキーの中間的な概念で使われることがあります。

例えば、ファーストパーティーであるドメインのウェブサイトが他のウェブサイトと提携する場合、関連するクッキーがセカンドパーティクッキーと呼ばれることがありますが、セカンドパーティークッキーについては、あまり意識する必要はありません。

サードパーティークッキー

サードパーティーとは「第三者」の意味で、ICT機器の「サードパーティー製」などとよく使われている用語です。

サードパーティー製とは、異なるメーカーの製品という意味になりますが、クッキーの場合は、ファーストパーティーのドメインとは「異なるドメイン」から発行されるクッキーという意味になります。

具体的には、ウェブサイト内に表示している広告を提供する広告配信会社などが発行するクッキーです。

主にユーザーの行動を追跡・分析し、その嗜好に合った広告を表示するために使用されます。サイト(ドメイン)を越えて利用できることから、個人を追跡することが可能で、トラッキングクッキー、クロスサイトクッキーなどと呼ばれる場合もあります。

どのサイトでも同じような広告が表示されるのは、サードパーティークッキーが利用されている可能性があります。(サードパーティクッキー以外の方法もあります)

また、ドメインを越えて利用できるというのは、サードパーティークッキーがファーストパーティークッキーとは異なる特別なテキストファイルだからというわけではありません。

例えば、広告会社「サイバーエーヤンカ」のサードパーティークッキーが、様々なサイトで利用されているという意味です。

そもそもウェブページは、HTMLとは で学習のとおり、ウェブサーバから転送されたHTMLファイルをブラウザが読み込んで表示する仕組みです。

当サイト(yamanjo.net)でサイバーエーヤンカが配信する広告が表示されるものとすると、「yamanjo.net」のウェブサーバが配信するHTMLファイルと、サイバーエーヤンカのウェブサーバが配信するHTMLファイルの2種類が組み合わされていることになります。

当サイトのトップページのイメージ

つまり、ユーザーからするとまったくアクセスした覚えのないサイバーエーヤンカからクッキーを送り込まれ、情報を送信されていることになります。

この場合、当サイトが作成するクッキーがファーストパーティークッキーとなり、異なるドメインであるサイバーエーヤンカが作成するクッキーがサードパーティークッキーになります。

したがって、当サイトを閲覧すると、ブラウザには2つのクッキーが保存されることになります。

同様に、当サイトとは別のサイトBでもサイバーエーヤンカは広告を配信しています。

ユーザーが当サイトからサイトBに移動すると、サイトBのファーストパーティークッキーと、サイバーエーヤンカのサードパーティークッキーが保存されることになります。

しかしこの場合、サイバーエーヤンカのサードパーティークッキーのドメインは同じです。(どのサイトにも同じウェブサーバからクッキーを発行している)

つまり、

異なるサイトであってもサードパーティークッキーのドメインが同じであればクッキーは共有される

ということです。

少々ややこしいですが、ドメインを越えるというのは、ファーストパーティーのドメインが異なるという意味です。

こうして、サードパーティークッキーを利用して様々なサイトでユーザー情報を収集し、ユーザーを追跡(トラッキング)することができるようになります。現在では他のトラッキング手法もありますが、一般的な例としてこのような仕組みになります。

ただし、クッキーは先述のとおり、あくまで同一ブラウザであることを判別します。氏名、年齢といった個人を特定するという意味ではありません。そのため、クッキー情報は個人情報に該当しないとされています。

しかし、先述のとおり他の情報と照合することで個人が特定できる場合があります。この場合は個人情報に該当します。

2019年「リクナビ」を運営する企業が、就職活動中の学生のデータ(内定辞退率)を採用企業に提供していたことが問題となりました。この事例は、リクナビサイトのファーストパーティークッキーから得た情報を提供したものだと思われますが、提供先の企業では、その企業が持つクッキー情報やID、パスワード等の個人情報と突合することで個人を特定することが可能でした。

こうした事例もあり、特にサードパーティークッキーに対する規制はどんどん厳しくなってきています。(2018年EUでクッキーの利用に同意を求める要件が法律で厳格化されたことが要因になっているようです)

とは言え、クッキーがなくてはならない技術であることも事実です。現在のようにオンラインサービスが一般的になった現代では、ユーザーログインによる個別サービスを行っていない大手サイトはまずありません。クッキーを利用したサービスの提供が必須ともいえる状況は続いています。

最近では大手企業のサイトを中心に、クッキーの使用について同意を求めるポップアップ画面や、利用目的等を掲載したページを見かけるケースが多くなりました。

クッキー利用の同意を求めるポップアップ

これも、遅ればせながら2023年に日本で改正電気通信事業法が施行され、クッキー情報を外部に提供する場合に「通知または公表」や「事前同意取得」などが義務付けられたためです。

上図の例では、クッキーを理解していないと、よくわからないまますべてのクッキーを受け入れたり、逆にすべて拒否のボタンを押してしまうことになります。

クッキーの特徴とリスクを理解したうえで、

まずはそのサイトが信用できるサイトかどうか見極める

ことが何より重要になります。

実在する企業であるかはもちろん、偽サイトの可能性を考慮して、複数の大手検索サイトで検索してそのページが正しく表示されるかをまず確認しましょう。そして、それらを比較して異なる点がないか、アドレスが異なっていないかなど、クッキーを受け入れる前には必ず正規のサイトであるかどうかを確認することが大切です。

では、ブラウザの設定によってクッキーをどのように管理するのか、具体的な方法を知っておきましょう。

Windows Edgeの場合、「設定」 →「Cookieとサイトのアクセス許可」→「Cookieのサイトデータの管理と削除」より、詳細な設定が可能になっています。

「Cookieとサイトデータの管理と削除」画面のイメージ

Cookieデータの保存と読み取りをサイトに許可する

オンにすると、すべてのクッキーを受け入れることになります。

すべて受け入れるのはセキュリティリスクが高い気がしますが、この設定がデフォルト(初期設定)で、推奨されています。

やはり、クッキーを制限すると利便性が格段に落ちるからです。試しにオフにして、YahooやGoogle、Amazonなどのサイトをみてみましょう。ログイン状態が外れていることが確認できると思います。

また、IDとパスワードを入力しようとしてもクッキーを有効にする旨の表示によってログインすることができません。

Amazonのアラート画面のイメージ

ここをオフにしてしまうと、ほとんどのサイトにログインできなくなり、様々な制限がかかってしまいます。基本はオンとし、その他の項目で制限をかけるのが一般的です。

サードパーティのCookieをグロックする

サードパーティークッキーだけをブロックします。つまり、ファーストパーティークッキーは受け入れることになります。

サイトの利便性を維持しつつ、サードパーティークッキーによるブラウザ情報の送信やトラッキングなどを防止したい場合は、オンにしておきましょう。

ただし、サードパーティークッキーは徐々に利用されなくなっています。詳しい仕組みについては割愛しますが、サードパーティークッキーの代替手段がいくつかあり、サードパーティークッキーをブロックしてもトラッキング等を完全に防止できるわけではありません。

トラッキングを防止したい場合は、さらに設定画面の「プライバシー、検索、サービス」より、「バランス」または「厳重」を選択することで、より厳重にブロックされるようになります。

「プライバシー、検索、サービス」画面のイメージ

すでにサードパーティークッキーをデフォルトでブロックするブラウザも登場しており、今後さらにサードパーティークッキーへの規制が強まっていくのは必至です。

そのため、この項目をオンにしても大きな影響はないものと思われますが、利用されるサイトによってはログイン状態が保持できないなどの影響がないとは言い切れません。

ページをプリロードして閲覧と検索を高速化する

ページの「プリロード」とは、事前に読み込むという意味で「先読み機能」と言われるものです。

具体的には、ページ内にあるリンク先のページをバックグラウンドで読み込んでおき、リンクをクリックしたときに素早くページを表示する機能です。

つまり、ユーザーが意識しないところでリンク先のページデータをこっそりダウンロードします。そのため、表示しないページまでダウンロードを行うということであり、不要かつ意図しない大量ダウンロードが発生する可能性があるというデメリットがあります。

クッキーとはあまり関係がないと思われがちですが、リンク先にクッキーが設定されている場合は知らず知らずのうちにクッキーが保存されることになります。

利用環境にもよりますが、基本的にはオフにしておいて問題ありません。

ブロック・許可

サイトごとにブロックと許可を個別に指定することができます。

終了時にクリア

Microsoft Edgeを閉じたときに、クッキーとサイトデータをクリアします。

つまり、ブラウザにデータを残さないということです。ここでは対象とするサイトを個別に指定することができます。

個別ではなく、すべてのサイトに適用したい場合には「プライバシー、検索、サービス」画面の「閲覧データをクリア」より「ブラウザーを閉じるたびにクリアするデータを選択する」を選択すると、全サイトに対してクリアするデータを指定することができます。

以上がクッキーの基本的な仕組みとブラウザの設定になります。

なんとなく危険なイメージを持たれているクッキーですが、このようにウィルスでもスパイウェアでもなく、ブラウザの情報を保存するただのテキストファイルです。

大手サイトやコンプライアンス意識の高い多くのサイトでは「クッキーポリシー」が公開されています。

そのサイトではどのような目的でクッキーを利用しているか、引いてはどん情報をクッキーに書き込んでいるかを確認することができますので、気になるサイトのポリシーをチェックしてみましょう。

更新履歴

2009年8月13日
ページを公開。
2009年8月13日
ページをXHTML1.0とCSS2.1で、Web標準化。レイアウト変更。
2018年2月1日
ページをSSL化によりHTTPSに対応。
2024年4月12日
内容修正。

参考文献・ウェブサイト

当ページの作成にあたり、以下の文献およびウェブサイトを参考にさせていただきました。

文献
図解入門 インターネットのしくみ
文献
初めて学ぶJavaScript入門早わかり―魅力的なホームページを作ろう
第6回 便利で危険なCookieを見てみよう
https://xtech.nikkei.com/it/article/COLUMN/20070508/270294/
「1st party Cookieと3rd party Cookieの違い」今さら聞けない!基本の『キ』
https://www.videor.co.jp/digestplus/article/12437.html
サードパーティーCookie(クッキー)規制でFacebook広告は今後どうなるか?
https://marketing.cessgumo.co.jp/cookieparty/
Cookieは個人情報に該当するか-リクナビやフェイスブックの事例から問題点を弁護士が解説
https://www.businesslawyers.jp/articles/693