昨日、iPhone OS用の、はてなブックマークアプリがリリースされたのだが、
これは、下の図のように、最初のトップ画面(左)は専用アプリが表示しているものの、どれかをタップして画面を進めると、それはアプリに埋め込まれた「内蔵ブラウザ」(Safari部品)によって表示されるようになっている(中央、右)。
ブクマされた記事をタップすると、はてなの外に出ることになるが、このときも「内蔵ブラウザ」で表示され、下の図のようになる。しかし、このアプリは、アドレスバーがない。ここがどこなのか、わからない。
あちこちタップしていると(てきとうなタイミングで)、下の図のように、はてなのログイン画面(のような画面)が出ることがある。
これが専用アプリならよい(アクセス先が固定だろうから)のだが、これはWebブラウザなのだから、どのアドレス(URL)にアクセスしているのかは定かでない。つまり、これは、どこかの偽サイトが出している画面かもしれないのだが、アドレスを確認する方法がない。
下の図のように、下に引っ張り下げてみても、上に何かあるわけでない。
画面上のアプリの固定領域にあるボタンを押してみても、下の図のように、アドレスを確認する機能は用意されていない*2。検索欄をタップすると単にキーボードが出るだけだ。
ヘルプを見ると、下の図のように、「内蔵ブラウザで閲覧」(左)してページからタップして「ログイン操作を進めて」(中央)と言っている。偽サイトが現れる可能性に想像が及んでいない。現状での自衛策としては、設定画面(右)で「必ずSafariで開く」をオンに変更することしかない。
以前にも類似のことがあったが、どうしてこう、基礎がわからないのか。
また、今回のアプリは、ログイン画面は https:// になっている*3ようだけども、画面が図3のままでは、https:// を使っても無意味である。
なぜなら、WebブラウザにおけるSSLの使用は、利用者が入力する際に今見ている画面が https:// になっていることを確認して利用しない限り、暗号化の意味をなさないからだ。
Q1: アドレスの確認を入力の直前にするのはなぜですか?(利用者)
リンクを辿ってページを移動している間に、どこのサイトにいるかが怪しくなる場合があります。特に、SSLによる通信の暗号化が必要な場面ではこのことは重要です。たとえば、利用するサービスのトップページでアドレスを確認し、本物サイトであることを確認したとしましょう。そこからリンクを辿ってログイン画面に辿り着いたとします。そのページは本物サイトでしょうか? そうとは限りません。なぜなら、リンクを辿っている途中のページに https:// ではない http:// のページが1つでもあったなら、そのページが通信路上で改竄されていた可能性を否定できません。いつのまにか違うサイトへジャンプさせられている可能性があります。
ページを移動するたびに見ている画面が https:// であることを確認するというのは、利用者にとって煩雑すぎる作業です。入力欄のあるページで利用者が重要な情報を入力をしようとしたそのときに、アドレスのドメイン名を確認し、https:// であることを確認するという手順が、シンプルかつ合理的です。
Q2: 入力ページを https:// にしなければならないのはなぜですか?(サイト運営者)
個人情報等をSSLで暗号化していると謳っているWebサイトで、重要な情報の入力欄が http:// のページになっていることがあります。そのとき、サイト運営者が、「入力したデータの送信先は https:// になっているから暗号化されます」と主張することがありますが、それは誤りです。
入力欄のページが http:// であるなら、そのページは通信路上で改竄されている可能性を否定できません。サーバ側のHTMLファイルが https:// へ入力データを送信するよう書かれていても、利用者のブラウザに到着したHTMLでは http:// へ送信するよう改竄されている可能性があります。利用者がそのことに気づかずに情報を入力してしまうと、暗号化されずに送信され、盗聴されてしまいます。
SSLは盗聴を防ぐだけでなく改竄も防止する技術です。入力欄を https:// ページとしておき、利用者が入力の直前にそのことを確認することによって、SSLは有効に働きます。
そもそも、専用アプリなのだから、はてなへのログイン(パスワードの入力と送信、認証)はWebブラウザを使わずに実現するのが普通だろう。
*1 アドレスバーが存在しないアプリは、出典を隠して著作物を表示しているとも言え、著作権侵害の面もあると思う。Webコンテンツの著者は、Webブラウザが当然にURLを示してくれることを前提として、著作物を提供しているのだから。
*2 このメニューにアドレス確認機能を追加するのは得策でないかもしれない。偽サイトがこれと同じ見た目の偽メニューを出す可能性を踏まえて、利用者が区別できるかを検討しないといけない。
*3 関連:公衆無線LANで使うと危ないiPod touchアプリに注意, 2008年12月6日の日記