話題にならないけど一大事!? 無料でHTTPSが利用できる「Let's Encrypt」で問題発生の可能性浮上

話題にならないけど一大事!? 無料でHTTPSが利用できる「Let's Encrypt」で問題発生の可能性浮上

shutterstock

◆いつの間にか「HTTPS」で始まるURLが増えたワケ

 割りと大きな問題なのだが、世間ではあまり話題にならないことがある。今回は、そんな 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 サイトを優遇することを発表した(参照:Google)。2017年には、ユーザーが入力をおこなう HTTP のページに、警告を出すようになった(参照:Google)。そして2018年には、全ての HTTP サイトを安全でないとマークするようになった(参照:Chromium Blog)。

◆無料でHTTPSが利用できるLet's Encrypt

 こうした流れがあり、ユーザーが入力などしない、ただ情報を表示するだけのサイトも、渋々 https に移行した。渋々というのは、私個人の感想だが、そう書く根拠はある。

 国内シェア50%達成をうたっているGMOグローバルサインの価格表を見てみよう(参照:GMOグローバルサイン)。「おすすめ 企業認証SSL」は、1年契約で59,800円。「緑のアドレスバーに組織名 EV SSL」は、1年契約で128,000円。「人気No.1 クイック認証SSL」は、1年契約で34,800円。Webサイトの公開を仕事にしているなら高い値段ではないが、何となくWebサイトを公開している人や会社にとっては、それなりの出費になる。

 この問題を解決してくれたのが冒頭で名前が出てきた 「Let's Encrypt」だ。なんと、無料でサーバー証明書を発行してくれる。証明書が有効な期間は90日と短いが、60日ごとに自動更新することを推奨してくれているので、プログラムで自動更新させれば問題ない。安くWebサイトを運営している人間にとっては、救世主のようなサービスだ(参照:JPNIC)。

 Let's Encrypt は、2016年の4月に正式運用を開始した。運営しているのは、HTTPS の普及を目的としたはISRG(Internet Security Research Group)という団体だ。2019年の時点で、2億2千5百万のサイトに証明書を提供している。

 このように多くのWebサイトが利用している Let's Encrypt の証明書だが、2021年の9月以降、Android 7.1以前の端末で使えなくなるという問題が発生している(参照:おそらくはそれさえも平凡な日々、さくらのSSL)。どうして、そうしたことが起きているのだろうか。

◆Android7.1以前でLet's Encryptを利用したサイトが見られなくなる未来

 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ブラウザにあらかじめ入っている。その他の認証局の証明書は、そうしたところに証明してもらったりしている(参照:IT用語辞典 e-Words)。

 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百万のサイトを見られなくなってしまう。

◆HTTPSが歩んで来た世界

 Webの世界は登場当時、とても牧歌的だった。しかし、個人情報が飛び交うようになり、商用利用されるようになり、セキュリティが大切になった。HTML自身もHTML5になり、Webアプリケーションを作れるようになった。Webアプリケーションでは、多くの情報がサーバーとやり取りされる。Secure(安全)が必要になるのは当然だ。

 Let's Encrypt が無料で運用されているのは寄付があるからだ。現在のスポンサーと寄付者のページには日本の企業も入っている。たとえば、スポンサーになっている さくらインターネット では、レンタルサーバーで Let's Encrypt が簡単に利用できるようになっている(参照:レンタルサーバーはさくらインターネット)。

 Webで情報を公開するなら、しっかりとお金をかけるべきだという意見も分かる。しかし、できるなら低コストで利用したいというのも本音である。お金がある企業だけでなく、個人でも気軽にWebサイトを作り公開できるように、Let's Encrypt のような取り組みが存続してくれればよいと思っている。

<文/柳井政和>

【柳井政和】

やない まさかず。クロノス・クラウン合同会社の代表社員。ゲームやアプリの開発、プログラミング系技術書や記事、マンガの執筆をおこなう。2001年オンラインソフト大賞に入賞した『めもりーくりーなー』は、累計500万ダウンロード以上。2016年、第23回松本清張賞応募作『バックドア』が最終候補となり、改題した『裏切りのプログラム ハッカー探偵 鹿敷堂桂馬』にて文藝春秋から小説家デビュー。近著は新潮社『レトロゲームファクトリー』。2019年12月に Nintendo Switch で、個人で開発した『Little Bit War(リトルビットウォー)』を出した。

関連記事(外部サイト)