雑記系ブログ。セキュリティとか、マイルとか、投資とか、、、 / Miscellaneous Blogs. Security, miles, investments, etc
【転載】無料でHTTPSが利用できる「Let’s Encrypt」の利用はアリか~有効期限が90日である点とサポートの薄さを受容できるかがカギ~
話題にならないけど一大事!? 無料でHTTPSが利用できる「Let’s Encrypt」で問題発生の可能性浮上 | ハーバー・ビジネス・オンライン:
割りと大きな問題なのだが、世間ではあまり話題にならないことがある。今回は、そんな Let’s Encrypt の問題について書く。
ネットを昔から利用している人は気づいているかもしれないが、普段見ているWebページのURLの多くが、いつのまにか http から https に変わった。
まず、http だが、HyperText Transfer Protocol(ハイパーテキストの転送通信規約)の略である。ハイパーテキストとは、ざっくりと言うとWebページのようなリンクを持った文書だ。http でデータをやり取りしますよ、というのが http で始まるURLだ。
HTTPS は、Hypertext Transfer Protocol Secure の略である。HTTP に Secure(安全)が加わったものだ。HTTPS は、HTTP をより安全にするために登場した。HTTPS は、通信内容を暗号化して、盗聴を防ぐ仕組みを持っている。こうした仕組みがなければ、無料Wi-Fiを利用してログインしたらIDとパスワードが盗まれた、ということが頻繁に起きてしまう。
情報を暗号化するときは、その状態を解除して元に戻す復号も必要になる。その暗号化と復号の方法として HTTPS ではデジタル証明書(公開鍵証明書)を利用している。この証明書は、認証局に証明してもらったものだ。
HTTP から HTTPS に移行するとき、デジタル証明書を導入して維持するためのお金が必要になった。お金がかかるなら HTTP でいいやとなるWebサイトが多そうだが、多くのWebサイトが HTTPS に対応した。理由は、Google による常時SSL化の要求である。
2014年にGoogleは、検索結果で HTTPS サイトを優遇することを発表した。2017年には、ユーザーが入力をおこなう HTTP のページに、警告を出すようになった。そして2018年には、全ての HTTP サイトを安全でないとマークするようになった。
こうした流れがあり、ユーザーが入力などしない、ただ情報を表示するだけのサイトも、渋々 https に移行した。渋々というのは、私個人の感想だが、そう書く根拠はある。
国内シェア50%達成をうたっているGMOグローバルサインの価格表を見てみよう。「おすすめ 企業認証SSL」は、1年契約で59,800円。「緑のアドレスバーに組織名 EV SSL」は、1年契約で128,000円。「人気No.1 クイック認証SSL」は、1年契約で34,800円。Webサイトの公開を仕事にしているなら高い値段ではないが、何となくWebサイトを公開している人や会社にとっては、それなりの出費になる。
この問題を解決してくれたのが冒頭で名前が出てきた 「Let’s Encrypt」だ。なんと、無料でサーバー証明書を発行してくれる。証明書が有効な期間は90日と短いが、60日ごとに自動更新することを推奨してくれているので、プログラムで自動更新させれば問題ない。安くWebサイトを運営している人間にとっては、救世主のようなサービスだ。
Let’s Encrypt は、2016年の4月に正式運用を開始した。運営しているのは、HTTPS の普及を目的としたはISRG(Internet Security Research Group)という団体だ。2019年の時点で、2億2千5百万のサイトに証明書を提供している。
このように多くのWebサイトが利用している Let’s Encrypt の証明書だが、2021年の9月以降、Android 7.1以前の端末で使えなくなるという問題が発生している。どうして、そうしたことが起きているのだろうか。
2020年の7月末時点で、日本国内の Android ユーザーの79.83%が、バージョン 8.0 以降を利用している。そのため、残りの Android ユーザーの約20%ほどで影響が生じる可能性がある。
Android 7.0 のリリースは2016年8月、7.1 のリリースは2016年10月だ。まだリリースから4年しか経っていないので、同じ端末を使い続けている人がいるのはうなずける。Android 7.1 のシェアは7.8%、Android 7.0 のシェアは4.4%、2015年リリースの Android 6.0 は4.8%の利用者がいる。それより古いOSも、各1%以下だが利用者はいる。
2019年の9月になれば、これらの端末を利用している人は、Let’s Encrypt を利用しているWebサイトが閲覧できなくなる。Webサイト側の人間がどうするのか選択肢は2つある。1つは有料のSSLに乗り換える。もう1つは古い Android ユーザーは無視する。どちらも、あまり嬉しくない選択肢だ。
どうしてこんなことが起きているのか。SSLサーバー証明書が正しいかを判断するには、認証局というところが発行したルート証明書というものが利用される。この中でも有力な認証局のルート証明書は、コンピューターやWebブラウザにあらかじめ入っている。その他の認証局の証明書は、そうしたところに証明してもらったりしている。
Let’s Encrypt の運営元のISRGは認証局の1つだ。しかし、設立されたばかりということで、このルート証明書は、各種の端末に格納されていなかった。そのため別の認証局Iden Trustのルート証明書を利用して署名していた。この有効期限が2021年9月になる。
ISRGは取り組みとして、様々なOSやWebブラウザの開発元に、自身のルート証明書を入れてもらっていた。しかし新参の認証局のために、古い端末には当然入っていない。Let’s Encrypt の正式運用開始は、2016年の4月。Android 7.1 のリリースは、2016年10月。タイミング的に難しかっただろうというのは想像が付く。
こうした背景があるために、少なくないAndroidユーザーが、2億2千5百万のサイトを見られなくなってしまう。
Webの世界は登場当時、とても牧歌的だった。しかし、個人情報が飛び交うようになり、商用利用されるようになり、セキュリティが大切になった。HTML自身もHTML5になり、Webアプリケーションを作れるようになった。Webアプリケーションでは、多くの情報がサーバーとやり取りされる。Secure(安全)が必要になるのは当然だ。
Let’s Encrypt が無料で運用されているのは寄付があるからだ。現在のスポンサーと寄付者のページには日本の企業も入っている。たとえば、スポンサーになっている さくらインターネット では、レンタルサーバーで Let’s Encrypt が簡単に利用できるようになっている。
Webで情報を公開するなら、しっかりとお金をかけるべきだという意見も分かる。しかし、できるなら低コストで利用したいというのも本音である。お金がある企業だけでなく、個人でも気軽にWebサイトを作り公開できるように、Let’s Encrypt のような取り組みが存続してくれればよいと思っている。