HOME情報セキュリティ情報セキュリティ対策脆弱性対策経路のセキュリティと同時にセキュアなセッション管理を

本文を印刷する

情報セキュリティ

経路のセキュリティと同時にセキュアなセッション管理を

最終更新日:2003年 8月14日
独立行政法人情報処理推進機構
技術本部 セキュリティセンター


概要

独立行政法人産業技術総合研究所から発行されたテクニカルレポート(AIST03-J00017)において、セッション管理のためにクッキー(cookie)を使用し、かつ、SSL/TLS のような経路のセキュリティ保護を行っている Web アプリケーションにおいて、クッキーを secure モードで発行することの重要性が指摘されています。
このテクニカルレポートに関連して、経路のセキュリティと同時にセキュアなセッション管理を行う必要性について解説します。

なぜクッキーを secure モードで発行する必要があるのか?

「secure モードでない通常のクッキーは、SSL/TLS による経路のセキュリティ保護を受けることができないから」です。

例: 同一ホストの非 SSL/TLS ページ

SSL/TLS を用いてクッキーを部外者に見られないよう工夫していても、問題が生じることがあります。それは、同じ Web サーバーに SSL/TLS 通信で見るページ(https://...)と SSL/TLS 通信を使わないで見るページ(http://...)が混在している場合です。
クッキーは、Web サーバーが発行してブラウザに預ける情報です。ブラウザがクッキーの発行元と同じドメインの Web サーバーにアクセスするときには、ブラウザはそのサーバーに必ずそのクッキーを送り返します。このため、Web ブラウザは、SSL/TLS 通信を使わないページを見るときでも、クッキーを預けてきた Web サーバーに対してクッキーを送ってしまいます。このときのクッキーは、ネットワーク通信を傍受した第三者に漏えいする可能性があります。

対策

セッション管理のためのクッキーは、secure属性付きで発行しましょう。

  • 方法 A: すべてのページを https://...にしてセッション管理用のクッキーに secure 属性をつける

    セッション管理の必要な画面の全てを https://... とし、クッキーに secure 属性を付ければ、この問題は解決します。

    ポートを閉じる必要があるのは、攻撃者の罠に誘導されて、http://www.example.com:25/ や、http://www.example.com:443/ 等の URL にアクセスさせられると、クッキーを暗号化なしに HTTP リクエストとして送信してしまうからです。(ここで TCP ポート443 番は、https によるサービスです。)

    セッション管理用のクッキーに secure 属性をつけることが、対策方法として正しいことに変わりありません。

    また、https://... ページを管理する Web サーバーの構築法としては、https 以外のサービスをパケットフィルタリングすることができます。SSL/TLS の処理を Web サーバーではなく、SSL アクセラレータで行う場合 があるでしょうが、この場合、忘れずに Web サーバー側でクッキーに secure 属性を付加する必要があります。

  • 方法 B: 2つのクッキーを使い分ける

    サイトの設計上、http://... の画面と https://... の画面をまたがってセッション管理を行う必要がある場合は、2つのクッキーを発行し、一方を「secure 属性なし」にし、一方を「secure 属性付き」にします。http://... の画面ではセッション管理に前者のクッキーを使用し、https://... の画面では後者のクッキーを使うようにします。

    このとき、暗号化で保護が必要な画面(https:// を使うことにした画面)に対して、http:// でアクセスされても情報を表示しないように作る必要があります。そうしないと、攻撃者が、盗聴で盗み出した http:// 用のクッキーを使って、重要情報にアクセスできてしまうからです。

用語解説

  • クッキー

    クッキー(より正確には HTTP Cookie)とは、Web サーバーが発行し Web ブラウザに預ける小さなテキストデータです。いったんクッキーを預かった Web ブラウザは、それを発行した Web サーバーのコンテンツにアクセスする際、預かったクッキーのデータをコンテンツの要求に必ず含めるようになります。
    クッキーのこのしくみは、複数の Web ページからなる一連の「セッション」を管理する際、しばしば使われます。Web サーバー側は、Web ブラウザから送られてくるクッキーの値をみて、その Web ブラウザのユーザに対し一貫性のあるデータ処理およびサービス提供が行えるようになります。

  • SSL

    SSL (Secure Socket Layer) は、インターネットの通信で送受されるデータを暗号化し、安心して通信が行えるようにする仕組みです。個人情報を預かるオンラインショッピングなどのサービスで使われます。「https:」ではじまる Web コンテンツの要求は SSL の通信を意味しています。

  • TLS

    上記 SSL の最新バージョンは、SSL3.0です。ネットスケープ社では次期のSSLのバージョンを4.0 とせずに、TLS(Transport Layer Security:RFC2246)1.0として、SSL3.0 に若干の改良を加え名称変更を行いました。RFC2246 としてIETFで標準化されています。 RFC 2246 「TLS プロトコル v1.0 (The TLS Protocol Version 1.0)」

更新履歴

2003年 8月 8日 掲載。
2003年 8月11日 対策「方法 B」について修正。TLS 用語解説を追記。
2003年 8月12日 対策「方法 B」について修正
2003年 8月13日 対策「方法 A」について修正。
2003年 8月14日 対策「方法 A」について修正。

問い合わせ先

IPA 技術本部 セキュリティセンター
e-mail: 電話番号:03-5978-7508までお問い合わせください。