常時SSL化の必要性

ウェブ全体で常時SSL化が進行しており、ブログでもSSL化するところが増えてきています。SSL化にはかなりお金がかかるのですが、Let’s Encryptの出現により、無料でSSL化できるようになったため、SSL化に拍車がかかりました。

実際、2017年9月10日の時点で、Let’s Encryptにより発行されたSSL証明書は5200万枚に上り、Firefoxが訪れたサイトの61%以上がSSL化しているというデータがあります。

では、SSL化は必要なのかというと、実はそれほど必要なことではありません。SSL化が絶対に必要なのは、クレジットカードの情報を入力する必要のあるサイトに限られます。しかし、それでもSSL化が進んでいるのは、それなりに理由があります。

SSL化とは何か

そこで、今更ですが、SSL化とは何なのかを考えてみましょう。

SSL化というのは基本的に暗号化通信です。これは何のために必要かというと、自分のパソコンと相手サーバーとの通信を傍受されるのを防ぐためです。普通にピンと来ないですよね。実はやろうと思えば、どこかのホームページを見ていたり、メールを送信したりした際に、その内容を第三者見ることができるのです。

ピンと来ない人のために、それをわざわざスクリーンに映し出して、会社の上司にSSL化の必要性を説いた方もいらっしゃる様です。さすがに目で見ると、一挙に危機感が募るようです。百聞は一見にしかずとはよく言います。

インターネットとは何か

インターネットの分かっていない会社の上司に説明するには、この手を使うしかないでしょう。他人のやったことですが、私からもお勧めします。そもそも、インターネットが線でつながっているという認識すらない人が大半です。だから、ホームページが表示されないという話を聞くと、私は・・・

「どこかで線が切れたのかもしれませんね。こちらでは表示されていますよ。」

・・・などと答えることがあります。すると、「線が切れた」って何だろう。そう思うみたいです(笑)。

全然わからない人や小学生には・・・

「インターネットというのは、パソコン同士を線でつないで、相手のパソコンの中身が見えるようにしたものです。」

・・・と説明しています。だから、線を流れる信号を拾うこともできるわけですね。何しろみんなでつなぎ合っていますので・・・。

ちなみに、普通は自分のパソコンの中を他人が見ることができないのは、そう言う設定になっているからです。設定をくぐり抜ければ、全部丸見えです。線を流れる信号なんて何もしなくても最初から全部丸見えです。

だから、メールを送るというのは、たとえれば、はがきを送るようなものです。だから、誰でも読めるのです。

それではSSL化すると、どうなるのかですが、自分のパソコンと相手のサーバーとの通信が暗号化されます。だから、パスワードとかクレジットカードの番号などは誰にも読まれなくなるわけです。

しかし、相手のサーバーで読めると言うことは、解読可能だと言うことです。これは暗号化の鍵を渡すことで可能になります。鍵を知らない第三者が鍵を見つけて解読に成功するには、時間がかかりすぎて、実質的に解読不可能というわけです。SSLの安全性はここにあるわけです。

メールのSSL化

先ほどメールを送るのははがきを送るのと同じで読めると書きましたが、メールの接続をSSL化するとどうなるのか。これはちょっと難しいです。

自分のパソコンと相手のメールサーバーの間は暗号化されていますから安心です。しかし、このメールが別のメールサーバーに送られる段階では、SSL化されていませんから、もろに読めます。

こういう事が起きる環境とはどのようなものでしょうか。実は、自分が契約しているプロバイダー経由でメール送ったり、Gmailなどの無料メールサービスによりメールを送ったりする場合に起きます。なぜなら、この様な場合、自分がメールを送るのに使ったメールサーバーは、相手が使うメールサーバーとは別の場所にある別のサーバーだからです。この区間はSSLではなく、平文でメールが送られます。

つまり、プロバイダーのメールサーバーや無料メールサービスのメールサーバーと相手のメールサーバーの間が丸見えで危険なのです。従って、安全を確保するには、相手のメールサーバーに直接メールを送る必要があります。

通常は、これは相手が用意しているメールフォームを使うことになります。そして、このメールフォームがSSL化している必要があるわけですね。ホームページがSSL化すれば、自動的にメールフォームもSSL化しますので、この問題が解決するわけです。

当然ですが、相手はそのメールサーバーにSSLで接続して、メールを読む必要があります。まあ、自分のホームページをSSL化しておきながら、メールサーバーに平文で接続する様な馬鹿はいないと思いますが・・・。いたらおもしろいですね。

ちなみに、今時、メールサーバーへの接続はSSL接続が可能になっているのが普通ですので、相手が上記のような馬鹿でない限り、あまり心配はいりません。

SSL化の意義

ここまで読むとおわかりになるかと思いますが、SSL化はメールフォームを設置している場合、有意義だと言えます。勘の良い人はすでにおわかりと思いますが、ブログでコメントを許可している場合も同じようにSSL化は意味があるわけです。まあ、よほど暇人でない限り、個人のブログを盗聴することはないと思いますが、コメントを許可している個人のブログやメールフォームを設置している個人のホームページをSSL化しないというのは、泥棒が入ることはないからと言って、鍵をかけずに生活している田舎の人と同じです。

都会では鍵をかけます(笑)。

当然のことながら、SSL接続は、ブログやホームページの管理人にとっても有意義です。なぜなら、SSL化していないと、ログインした時やFTP接続した際にパスワードを盗まれる可能性があるからです。

SSL化は不必要

ただ、実際には、ブログや管理人のパスワードを発見する方法にその方法が使われる可能性は低いです。大抵は、総当たり攻撃をしかけてきますので、SSL化しても防ぐことはできません。この目的のためには、SSL化するよりも、.htaccessなどを使って、ログインできるIPアドレスを制限した方が効果的です。なお、FTP接続に関してはSSL化しなくても、SSL接続が提供されている場合が多いです。メールと同じですね。

SSL化のもう一つの意味

それにしても、一口にSSLと言っても、Let’s Encryptの様な無料のものから、年数万円以上もする高価なものまでありますが、あれは何なのでしょうか?

高いものは、単に暗号化通信を行っているだけではなく、相手のドメインの主を証明しているのです。つまり本人証明付きSSLというわけです。

これはなぜ必要かというと、どこかのサイトに行って、お金を払うとします。○○商会と名乗るサイトだったとします。そこで何かを買って、1万円払ったとします。しかし、商品が送られて来なかった。そこで○○商会に電話してみたら・・・

「そのサイトはうちのサイトではありません。」

・・・と言う場合もあり得ます。よくドメインを見たら違っていました、なんてこともあるわけです。URLとかドメインが似ていても、一字違えば、全然別ものなのです。例えば・・・

Yahoo!ショッピングは・・・

https://shopping.yahoo.co.jp/ (日本)

https://shopping.yahoo.com/ (米国)

・・・です。ドメインは、「shopping.yahoo.co.jp」、「shopping.yahoo.com」となりますが・・・

okaimono-yahoo.com

・・・などは誰でも取得可能です。しかし、「okaimono-yahoo.com」が「shopping.yahoo.co.jp」や「shopping.yahoo.com」とは何の関係もないことがわかる人は少数です。そこで、SSL証明書でドメインの主を明示するわけです。たまに、ブラウザーのアドレスバーに緑色で英語の文字が書かれているものが出るサイトがあると思いますが、あれです。文字は英語の社名です。

本当はWhoisで調べれば、大抵は見当がつくのですが、本人証明を行っているわけではありませんから、絶対的なものではありません。それに、Whoisを知っている人は、さらに少ないです。

インターネットは馬鹿ばかりだと思って間違いありません。

そこで、馬鹿でもすぐに分かって、より確実な方法として、本人証明を行って、緑色でアドレスバーに文字情報として本人の情報を流すと言う方式になったわけです。これをSSLとセットで販売しているという感じですね。

まさにFool Proofと言うわけです。

Let’s Encryptの限界

本人確認にもいろいろなレベルがあって、一番確実なものは料金が高く、簡易なものは安いと言うわけで、料金に差が出てきます。一番安いものだと、緑色で文字の表示が出ませんので、Let’s Encryptなどと見た感じは同じになります。

そうです。Let’s Encryptは本人確認をやっていません。大体、本人確認というのは手間暇がかかりますので、これを無料ではできません。だから、無料のSSL証明書というのは、一応、ドメインの証明とかメールの証明とか言うことにはなっていますが、ぶっちゃけ、SSL通信がされているというだけの話です。

わかりやすく言えば、単に緑色の錠前マーク(緑とは限らない)が出ていても、詐欺サイトということも十分あり得ると言うことで、実際に、詐欺サイトでもLet’s Encryptをご利用になられています。

Let’s Encryptにすべきか、それとも、高価なドメイン所有者証明付きのSSL証明書にすべきかは、そのサイトを利用するのに、サイトの所有者が身分証を提示する必要があるかどうかで決めればいいということです。

ドメイン所有者の証明の意義

ドメイン所有者証明付きのSSL証明書の必要性については、実社会に当てはめて考えればいいでしょう。どこかの会社から物を買って、代金を振り込むとすると、普通、法人の口座に振り込みますよね。

銀行では、法人口座を作る際に、厳密な本人確認を行っています。具体的には、法人の登記簿の謄本などを提出してもらいます。そこには代表者名も記されています。そして、代表者にはご自分の本人証明をしてもらいます。こうしてやっと法人口座ができます。その会社から何か物を買った場合、安心してその会社の口座に振り込めるのは、銀行が本人確認をやっているからに他なりません。

詐欺企業でも法人の銀行口座を作ることができるため、もちろん、その様な本人確認をやっても完璧ではないのですが、もし銀行が本人確認をやらなかったら、誰が銀行に行こうと、どの会社の口座でも作れることになりますから、詐欺だらけになることは目に見えています。

こういう銀行のやっている本人確認と同じことをSSL証明書の発行機関がやっているというわけです。こういう証明がされていないサイトでお金のかかわることをやるのは、だめだと言うことがわかると思います。

この様なわけで、同じSSL化と言っても、証明書の内容により、大きく分けて二通りあるということです。

結局、SSLは必要なのか

個人サイトや個人ブログなら、Let’s Encryptで十分でしょう。たとえ、そこで有料会員制で記事を有料で閲覧させていたとしても、本人証明までは不要です。また、SSL化せずに、運営しても、そのサイトでクレジット・カードの情報を入力させるのでなければ、問題が起きる可能性は低いと思います。

まあ、言ってみれば、生パン、ミニスカートで階段を上がったり、下がったりしているぐらいの問題です。のぞかれたら不快ですが、たぶん、それ以上の問題は起きないと思います。こういう個人サイトや個人ブログで、SSL化する最大の理由は、たぶん、ブラウザーに「この接続は安全ではありません」などと表示されるのがいやだということぐらいだと思います。

他には、検索結果で有利になるとGoogleは言っていますから、そのためにSSL化する人が多いと思います。ただ、SSL化すると、サーバーとの情報のやり取りが増えて、ホームページやブログの表示が遅くなりますので、一長一短だと思います。

実際、このブログでもSSL化して検索順位が上がり、アクセスが増えたかというと、そう言うことはありません。常時SSL化による恩恵は、100点満点で1点か2点ぐらいなのではないかという気がします。

しかし、お金のやりとりがある法人サイトは本人証明付きSSLは必須です。しかし、個人経営の商店や小規模な会社などでは、狙われる可能性もまずないので、Let’s Encryptでも何とかなると思います。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする