最終更新日:2020年8月13日
自動ログインは危険なものなのか?
先日、「僕が考える最強の自動ログイン方法」という記事で、安全な自動ログインの方法と PHP による実装を紹介しました。
その後、とあるメジャーなサイトで「安全性が重要なサイトでは自動ログインは実装してはいけません」との記載があったので、少し考えていました。
自動ログインを禁止すべきケースとはどんなときなのでしょうか?
まず、想定されるのが、ユーザーが不適切な方法で自動ログインを利用するケースです。
- 共有パソコンで自動ログインを有効にしてしまう
- 自動ログインが有効な状態でパソコンの画面をロックせずに離席してしまう
1は論外ですが、2もユーザーの責任ということができます。
次に想定されるのが、サーバーサイドの問題です。
- 自動ログイン後に表示される画面に重要情報が含まれる
- 重要な処理の前に再度パスワードを要求しないために不正処理が可能
1は大きな問題です。金融機関などで自動ログインを行っていない理由は、ログイン後に口座残高といった機密情報が表示されるためでしょう。
一方で、メールサービスでは、通信の秘密やプライバシーに関わる重要な情報を扱うのに、自動ログインを採用しています。この違いはなんでしょうか。これについては後述します。
2については、重要な処理の前にパスワードを要求しないのはサービスの実装が悪いと言えそうです。もし、そのようなサイトになっていたら、サイトを改良した方がよいかもしれません。
今まで見てきたように、自動ログインの問題には、クライアントサイドとサーバーサイドの問題の2つがあることが分かります。
ここで、サービス提供者には立場の違いがあることを認識しておきましょう。
サービス提供者には2つの立場があります。
- ユーザーに利便性を重視したサービスを提供する
- ユーザーに安全性を重視したサービスを提供する
1は、メールサービスといった利便性を重視されるもので、セキュリティはもちろん重視するのですが、利便性の方に重点をおくという立場です。
2は、金融機関のように利便性よりも、ユーザーの安全の方に重点をおくという立場です。
この立場の違いによって、自動ログインに対する対応が異なってきます。
利便性重視なら、クライアントサイドの問題はユーザーの責任と割り切り、自動ログインを提供するでしょう。
安全性重視なら、クライアントサイドの問題であってもユーザーを保護することを選択して、自動ログインは提供しないでしょう。
ですので、重要でありセキュリティを要求されるサービスであっても、一律に自動ログインを禁止すべきとは言えません。
自動ログインは、あくまでサービスの提供者が利便性と安全性のどちらを重視するかによって変わってくるものです。自動ログインが危険な訳ではありません。
重要なサービスだから、自動ログインは実装しないというステレオタイプな考え方に疑問を感じたのでこの記事を書いてみました。自動ログインは、正しく実装すれば安全という理解が広まればよいと思います。
まあ、自動ログインが危険というなら、シングル・サインオンや OpenID はどうなるかという話もありますし、Facebook や Google 認証もダメになってしまいますしね。
参考
Webアプリケーションセキュリティに関する記事は、以下のページにまとまっています。ぜひご確認ください。
スポンサーリンク
カテゴリー:ブログ
コメントを残す