Webサービスで「ログインしたままにする」の仕組みとその危険性、および対策の設定に関して




ログイン状態を保持する仕組み


よくネットショッピングでユーザ名とパスワードでログインした時「ログインしたままにする」というようなオプションがありますよね?そうしたら、ブラウザを終了、あるいはOSをシャットダウンした場合など、再度ブラウザを起動したらログインした状態になっています。いったいどういう仕組みなのでしょうか。

Webサービスの「ログインしたままにする」機能は、主に Cookie と セッショントークン で実現されています。

ユーザーがログインすると、サーバーはユーザーを識別するための セッショントークン(認証キー) を生成し、
これを 有効期限の長い Cookie としてブラウザに保存します。

次回以降、ブラウザは自動的にその Cookie を送信します。
サーバーがその情報を確認し有効であれば、ID・パスワードの再入力なしでログイン状態が継続されます。

Cookie 盗難による不正利用のリスク




「ログインしたままにする」Cookie にはユーザーの認証情報(セッショントークン)が含まれているため、
第三者に盗まれると、不正ログインされる危険があります。

▼ 不正利用のイメージ
攻撃者が Cookie を自分のブラウザに設定すると、
ID・パスワードを知らなくても本人としてログインできてしまう(セッションハイジャック)。

▼ 主な盗難経路

以下に表として整理します。

+----------------------+-------------------------------------------------------------+
| 項目 | 説明 |
+----------------------+-------------------------------------------------------------+
| 不正利用のリスク | Cookie を盗まれると、攻撃者が本人になりすましてログイン可能 |
+----------------------+-------------------------------------------------------------+
| 主な盗難経路 | ・XSS による Cookie 読み取り |
| (XSS) | ・悪意あるスクリプトが Cookie を外部へ送信 |
+----------------------+-------------------------------------------------------------+
| 主な盗難経路 | ・HTTP のような暗号化されない通信で盗聴される危険 |
| (盗聴) | |
+----------------------+-------------------------------------------------------------+


サービス側の主なセキュリティ対策



多くの Web サービスは、Cookie の安全性を高めるために以下の対策を行っています。

+--------------------+--------------------------------------------------------------+
| 対策 | 効果 |
+--------------------+--------------------------------------------------------------+
| HttpOnly フラグ | JavaScript から Cookie へのアクセスを禁止し、 |
| | XSS による盗難をほぼ防ぐ |
+--------------------+--------------------------------------------------------------+
| Secure フラグ | Cookie を HTTPS 通信のときのみ送信し、盗聴を防ぐ |
+--------------------+--------------------------------------------------------------+
| トークンの短命化 | ・トークンの有効期限を短く設定 |
| | ・ログアウト時に即無効化 |
| | → 不正利用できる時間を大きく減らす |
+--------------------+--------------------------------------------------------------+



キーワード:Webサービス

Windows トラブルシューティング一覧に戻る


(ご注意事項)本ページは2017年に独自に調査して記載した事項です。本ページには誤りがある可能性はあります。また今後仕様が変更となる可能性があります。
本ページにより発生したいかなる損失も誰も補償しません。あくまでも自己責任で参考にしてください。