TLS and SSL in the real world

IE7ではタブブラウザになるという記事からIEBlogを読んでみたけど、ちょっと古いけどいい記事があった。

TLS/SSLを利用する場合の誤解についてまとめてある。Webサイトを設計/開発する際にも、これはすごく参考になるので、ちょっと紹介したい。詳細は原文を読んでください。


TLS/SSLの技術だけでWebサイトは確実に安全なものにすることはできない。簡単に陥りやすい誤解があるので、気をつけて。
重大な誤解 #1: Non-HTTPS Login pages
Webサイトでのログインページを表示する際にHTTPにして、ログインのフォーム情報(ユーザIDやパスワード)はHTTPS(TSL/SSL)で送るということ。TSL/SSLはWebサーバに相当な負荷がかかる。その負荷を軽減するために、このような設計をしてしまっている場合があるだろう。これで「パスワードはHTTPSで送っているから安全」なのか。いや、そうじゃない。例えば、悪者がHTTPで送られたログインページを横取りして、POSTのターゲットを自分がコントロールできるWebサイトに改ざんするという攻撃が可能だ。残念。
重大な誤解 #2: Mixing HTTP Content into a HTTPS page
「このページはsecureとnon-secureな項目が混じっていますよ」というプロンプトが出るのは問題。いくらメインのHTMLページがHTTPSだからと言っても安全ではない。例えば、悪者がHTTPのコンテンツを横取りしてDHTMLに書き換えたとしたら、HTTPSのページを書き換えたり、ページに書き込まれたクレジットカード番号などの大切な情報をスキャンすることができてしまう。
What can we do today?
それでは、これらのセキュリティホールに対処するには。
  • HTTPSからログインページに行くようにする。直接、"https://..."のサイトに行ってみる。
  • secure, non-secure混在ですというプロンプトが表示されたら、必ず"NO"を選択すること。