メニュー 閉じる

Blog

暗号化やSSLは何がどう安全なのか知っていますか?

ショッピングサイトがSSLに対応していればクレジットカード情報は暗号化されるから安全なんだよね!?

はい、それは間違いです。
というか、それなりに正しいともいえますが、説明が不十分です。
どういうことか正しく説明ができますか?

SSLは現代の暗号化技術の中でも非常に信頼性の高い、実証された技術の一つです。

インターネットで通常の情報をやりとりするとき、あらゆるデータのほとんどが全く暗号化されずに(そのまま=平文ともいう)送られています。これでは途中で誰かが通信データの中身を見てしまうと、カード情報などをいとも簡単に盗み取られる可能性があります。

でも何故盗み見ることが可能なのでしょうか?
それは、インターネットではコンピュータからコンピュータへ、そしてネットワーク機器からネットワーク機器へと順に中継される、いわば「バケツリレー」(笑)のような方法でデータを相手先のコンピュータへ届ける仕組みになっているからです。

たとえばこんな感じです。

[あなた] → [コンピュータ] → [ネットワーク機器] → [ネットワーク機器/コンピュータ] → [ネットワーク機器/コンピュータ] ……→ [相手のコンピュータ] → [相手]

つまり、途中でバケツを受け取ったコンピュータでは、誰でも中身を見ることができるわけです。しかも、データをいじらずに覗くだけであれば、通信している本人たちには気づかれることもありません。
こうしてあなたのデータは悪用される可能性がでてきてしまいます。

こうした状況を解決しようとする手段の一つがSSL(=Secure Socket Layer)通信と呼ばれる「暗号化通信」です。
コンピュータの情報はすべて数値で表すことができるので、数学的計算によって暗号化を施し、読めないデータの羅列にしてから相手先に送ります。相手先ではこの暗号を解読することで元のデータに戻して受け取ります。
(厳密なSSLの手順はもっと複雑ですが基本的なしくみと思ってくださいね。)

[あなた(暗号化)] →(暗号データ)→ [ネットワーク機器/コンピュータ] ……→(暗号データ)→ [(解読)相手]

ここでSSL通信の暗号化が信頼できるのは、途中のコンピュータを流れる暗号化されたデータを、受信者以外が解読できない技術であるという点です。謎のデータの羅列を覗き見ても、解読する方法がわからなければ盗むことはできません。

しかし、解読が絶対にできないわけではありません。
たとえば4桁のダイヤル錠は0000~9999まで=10000通りの組み合わせを試せばどこかで開いてしまいます。
コンピュータの暗号計算でも、同様にひたすら計算をすればよいのです。
そして延々計算をして解読する条件を見つければ…暗号が解けてしまいます。
(非常に難しいですが可能性の話です)

ただし、現代の暗号化技術がすばらしいのは、あらかじめ処理方法が分かっている解読を実行する時間に対して、処理方法が分からない状態(暗号が分からない状態)で暗号解読を行うのには、とてつもなく膨大な計算量が必要、つまり「時間がかかる」ように仕組まれているところです。
たとえば5年や10年、100年の間ずっとスーパーコンピュータで計算し続けないと解読することができないようにしてしまうわけです。1ヶ月後には有効期限が切れてしてしまう情報が、10年後にもなってやっと解読できても既に意味はありませんよね?

さて、ここでSSL通信は「どの部分を暗号化するのか」に注目してみましょう。
冒頭のSSLだから安全、というのはつまり通信の途中、つまり「バケツリレーの途中は安全」ということです。
途中で覗き見ることはできないということでした。

では、暗号を解読する相手は安全でしょうか。

おっと、つまり怪しいお店で買い物をしたら?ということです。
いくらSSLに対応していて、ブラウザに鍵マークが表示されていても…相手は暗号を解読できるのですから、カード情報は盗まれてしまいます。
つまり日常的に怪しいお店に出入りしていたらセキュリティも何もないということです。。
ネットでも実社会でも同じことですね。

では、あなたは正しいクレジットカードの持ち主でしょうか。

少し視点が違いますが、通常はお店から見てあなたが本当に正しい持ち主(ユーザー)かどうかを確認する手段は(あまり厳密なものは)ありません。
比較的普及しているものに、クレジットカード会社に認証/決済を依頼することでカード情報をお店に渡さない3D認証という方法がありますが、ここでは簡単にするために説明を省きますね。

では、あなたが見ているお店のWebサイト、ネットバンキングのサイトは本物でしょうか。

はい、これが私の言いたいことです。
たとえば、悪い人があなたにメールで…
「大切なお知らせがあるからネットバンキングのサイトにログインしてね」
という趣旨の内容に、偽のサイト(でも本物そっくりです)の偽URLを送ったとします。

残念ながらあなたはそれに気づかず偽のサイトを開いてしまいましたが、いつものようにサイトはSSLで暗号化され、鍵マークが表示されているのであなたは安心します。
そして、あなたはパスワードを入力してログインします。
すると偽のシステムでは悪い人があなたのパスワードを受け取ります。
この時点で既にパスワードを盗まれてしまいました。

そして…悪い人はあなたの代わりに、本物のネットバンキングのサイトにログインします。
本物のパスワードなので、本物のサイトではあなたと区別が付きません。
悪い人はあなたの操作に従って本物の残高・取引履歴などの情報を本物のサイトから取得して、あなたに見せます。
この時点でもう、あなたはそれが偽者のサイトであると疑わないでしょう。

そしてあなたがログアウトした後…

悪い人はパスワードを変更し、口座からお金を勝手にどこかに振り込んでしまいます!

えっ!?びっくりしましたか?
つまりこういうことです。

[あなた] →SSL通信→ [偽のサイト] →SSL通信→ [本物のサイト]

もう一度おさらいします。
(1)あなたが暗号化通信を行っている相手は安全でしょうか。そして、相手は本物ですか?
(2)本物のサイトにあなたがアクセスしてきましたが、本物のサイトにとってのあなたは本人ですか?
お分かりいただけましたか?
つまり…

よく知っている本物のサイトに対しては、より厳重な注意が必要である

ということです。
本物そっくりな偽のページに誘導され、本物のパスワードを入力して盗まれてしまったら、どんなに強力な、100年かかっても解けないような暗号を施していても無意味なのだということです。
これは悪意ある人が良く使う手口です。(上記ほど手の込んだものは珍しいですが)

もちろんパスワードの管理も重要です。
暗号が100年かけても解けない厳重なものでも、パスワードが「1234」だったとします。
悪い人は高速なコンピュータを用いなくても、本物のサイトに短時間でログインできるでしょう。
「iHK%Vus:h&igp49ryk」のような難解なパスワードでも100年耐えられるものではありません。(もちろん「1234」ほど容易には推測はされませんが。)

SSLも暗号化も万能ではないのです。
かといってSSLが信頼できないわけではありません。
(前述の例で言うバケツリレーの途中での覗き見はできません。)
ただ、どんなときもあなたを守ってくれるボディーガードではないということを、肝に銘じておかなければなりません。

そしていつも、
・アクセスしているサイトが本物か
・取引相手は信用して良いか

を見抜く力を持つことが大切です。
残念ながら、これらは暗号化技術とは全く関係がないのです…。
「あなた」の問題です。

蛇足ですが、世の中の「詳しい人」というのは、よく分かっていない人に「鍵マークが出ていれば大丈夫」というように、無責任なことを言う人が多いので要注意です。。
暗号化技術はあくまであなたの身を守るためのほんの一部に過ぎないのですから。

もっと安全にする良いアイデアが実用化される日が来るといいですね。
お付き合いありがとうございましたヽ(´ー`)ノ