インターネット上の暗号化

ここまで、インターネットの危険性を強調して話をしてきましたが、 最後にインターネット上でどうやって、安全に秘密のデータをやりとりするかという話をします。

SSL

通常、Web ページの URL (アドレス) は、`http://' という文字列で始まります。 これは、`Hypertext Transfer Protocol' の略で、簡単にいうと、HTML ファイルを転送するための約束事を表しています。 URL の先頭にこの文字列があると、この Web サイトはこの約束事を使って通信しているんだ、ということが分かります。

ところで、インターネットの通販サイトなどで、URL が http:// ではなく、 https:// で始まっているのを見たことがあるでしょうか。 これは、単なる HTTP だけではなく、 通信を暗号化するために「SSL(Secure Socket Layer)」という仕組みを使っているということを表しています。 通常の HTTP の場合は、通信の内容は全てそのままインターネット上を流れます。 ですので、やろうと思えば、通信内容を盗聴するのは簡単です。 この SSL を使っていると、通信経路の途中で盗聴されても、暗号化されているため、 クレジットカード番号など秘密のデータが漏れてしまうことがなくなります。

この SSL は公開鍵暗号方式という暗号を使っています。

まず、素朴な暗号方式として、共通鍵暗号方式というものがあります。 これは、情報の送り手と受け手が同じ鍵を持っていて、 送り手が鍵を使ってデータを暗号化して送信し、受信した受け手は鍵を使ってデータを復号化します。 (ここで出てくる「鍵」というのは、私達が使っている物理的な鍵ではなく、電子的な鍵です。 この鍵を使ってデータを暗号化、復号化します)。 これで、受け手は秘密のデータを受け取ることができるのですが、盗聴されても大丈夫でしょうか。 この場合、送り手と受け手は同じ鍵を持っています。 ですので、データをやり取りする前に鍵を一方から一方に渡したはずです。 鍵は単なる電子データです。 もし鍵を渡す時に鍵が第三者に漏れてしまっていたら、簡単にコピーされてしまいます。 この鍵を持っている第三者が通信を盗聴していたら、秘密のデータが漏れてしまうことになります。 この方式だと秘密のデータが漏れないことを保証するのは、非常に困難です。

共通鍵暗号方式
[図1]共通鍵暗号方式

これに対して公開鍵暗号方式とは、 少し意外に感じるかも知れませんが、鍵を公開してしまうやり方です。

公開鍵暗号方式
[図2]公開鍵暗号方式

このような仕組みで送り手は受け手に秘密のデータを安全に送ることができます。 安全を保証するためには、受け手が自分の秘密鍵をしっかり管理さえしていれば大丈夫です。 先ほどの共通鍵暗号方式と異なり、 秘密鍵をどこかに転送する必要などはないので、漏れる可能性も非常に低くなります。

例えば、インターネット通販の場合、私達は、 通販会社の用意した公開鍵を使ってクレジットカード番号などを送れば、 安全に通販会社まで届くことになります。 ただ、実際、私達がこの手順を意識する必要はほとんどなく、 https:// の URL にアクセスすれば、Web ブラウザが公開鍵の取得からデータの送信までやってくれます。

ただ、これだけは、前述のフィッシング詐欺を防ぐことはできません。 というのは、詐欺師が銀行や通販会社の名前を装って、公開鍵を作ることができるからです。 これを防ぐために、公開鍵の所有者を第三者が保証する仕組みがあります。 この仕組みのおかげで、私達は、この公開鍵が詐欺師のものではなく、 確かにこの通販会社のものであると確認することができます。

では、実際にブラウザでアクセスするとどうなるでしょうか。

例えば、KUMOI (https://mail.st.kyoto-u.ac.jp/)など、 正しく SSL を利用しているサイトを開くと、以下のように表示されます。 この図はGoogle ChromeでKUMOIを開いた状態です。 URLの左側の部分にマウスカーソルをあわせると「サイト情報を表示」と表示され、 さらにクリックすると、実際のサイトの情報が表示されます。 ここで「この接続は保護されています」と表示されていると、このサイトの公開鍵はきちんと第三者が保証しているということを表しています。

Google ChromeでKUMOIを開く
[図3] Google ChromeでKUMOIを開く

さらに「この接続は保護されています」をクリックすると、「セキュリティ」という情報が表示されます。 ここに書かれている通り、このサイトに送信した情報が他者に見られることがないということがわかります。 さらに、「証明書は有効です」のところをクリックすると誰が「このサイトの公開鍵が確かにmail.st.kyoto-u.ac.jpのものであると証明しているか」ということを確認することができます。 つまり、第三者が「このサイトは間違いなく mail.st.kyoto-u.ac.jp である」ということを証明してくれているということになります。 これで安心して、皆さんのECS-IDとパスワードを送信することができるのです。

「セキュリティ」を確認
[図4] 「セキュリティ」を確認

ここでは、Google Chromeで確認しましたが、他のブラウザでも同様にアドレスバーで確認することにより、 安心して先方に秘密の情報を送ることができるか確認することができます。 ですので、そのような情報を送る場合は、httpsで接続をしているかどうかを確認する習慣を身に付けるようにしましょう。 また、きちんと認証されていない公開鍵を使っているようなサイトがあった場合、 警告が表示されて、Webページは表示されません。 そのようなサイトには、クレジットカードなどの情報は送らないようにしましょう。 (ただ、上述の証明書には有効期限があって、本物のサイトだけど、サイトの手続きミスで証明書の有効期限が切れてしまったというトラブルもよく聞きます。)

また、近年はパスワードやクレジットカードの情報などを送らないようなサイトでも、https接続が有効になっているサイトも多いです。 https接続は、「このサイトが間違いなく本物だと第三者が証明している」ということのためにも使われています。 ですので、Google Chromeの場合、httpで接続すると、アドレスの左に以下のように「保護されていない通信」と表示されます。

「保護されていない通信」
[図5] 「保護されていない通信」

このように表示されたからといって、秘密の情報さえ送らないようにすればすぐに問題というわけではありませんが、このサイトが本物のサイトなのか誰も証明していないということになります。

実際は、この授業のサイトは、http://joho.bun.kyoto-u.ac.jp/でなくても、https://joho.bun.kyoto-u.ac.jp/でもアクセスできるようになっていて、公開鍵も認証されているので、間違いなく本物のサイトです。

無線 LAN の暗号化

最後に簡単に無線 LAN の暗号化について触れておきます。

インターネットの通信に関して、従来から、物理的には LAN ケーブルが使われています。 しかし、このような有線 LAN に対して、ここ数年、無線 LAN と呼ばれるものが普及してきました。 無線 LAN を持ったパソコンと屋内に置いたアクセスポイントの間を無線を使って通信します。 そして、アクセスポイントを経由してインターネットに接続します。 無線 LAN の機器は比較的安価に手に入るようになっていますので、 皆さんの中にも個人でお使いの方がいらっしゃると思います。

上の SSL の話の中で何度か盗聴という言葉が出てきました。 実際問題上、有線 LAN の場合は、そう簡単に通信を盗聴できるものではありません。 しかし、無線 LAN の場合は、簡単に盗聴ができます。 例えば、家の外に電波がもれていたら、外から通信内容を盗聴できてしまいます。

また、アクセスポイントを勝手に使われてしまうということもありえます。 誰か悪意を持った人間が家のアクセスポイントを使ってインターネットに接続し、 犯罪行為を行った場合、皆さんがその責任を負ってしまうことになってしまいます。 ですので、通信を暗号化した上で、特定の人だけがアクセスポイントに接続できるようにします。 無線 LAN には必ずそのような機能が付いていますので、 お使いの場合は必ず設定するようにしましょう。


「電子メールに関する注意」に戻る / 「第2回授業課題」に進む

「今回の授業のトップ」に戻る / 「授業のホーム」に戻る