Let's Encrypt

出典: フリー百科事典『ウィキペディア(Wikipedia)』
Let's Encrypt
創立者 電子フロンティア財団
Mozilla Foundation
ミシガン大学
アカマイ・テクノロジーズ
シスコシステムズ
団体種類 非営利団体
設立 2014年 (10年前) (2014)
所在地 アメリカ合衆国の旗 アメリカ合衆国
カリフォルニア州サンフランシスコ
York Street 660
北緯37度45分38.9秒 西経122度24分33.5秒 / 北緯37.760806度 西経122.409306度 / 37.760806; -122.409306座標: 北緯37度45分38.9秒 西経122度24分33.5秒 / 北緯37.760806度 西経122.409306度 / 37.760806; -122.409306
活動内容 X.509証明書認証局
親団体 Internet Security Research Group (ISRG)
標語 Encrypt the entire web
ウェブサイト letsencrypt.org
テンプレートを表示

Let's Encrypt(レッツ・エンクリプト)は、非営利団体Internet Security Research Group英語版(ISRG)により運営されている証明書認証局で、TLSX.509証明書を無料で発行している[1][2]。世界最大の認証局であり[3]、4億を超えるウェブサイトで使用されている[4]。証明書の有効期間は90日で、期間内のいつでも証明書の再発行を行うことができる。発行はすべて自動化されたプロセスで行われており、安全なウェブサイトを実現するために、証明書の作成、受け入れテスト署名、インストール、更新を手動で行う必要があった問題を克服するように設計されている[5][6]2016年4月に正式に開始された[7][8]

概要[編集]

Let's Encryptを使用したウェブサイトの例

Let's Encryptは、すべてのWebサーバへの接続を暗号化することを目指したプロジェクトである[9]。支払い、サーバ設定、メールによる確認、証明書の更新といった作業を省略することで、TLS暗号化における設定や保守の複雑さを大幅に削減することを意図している[10]LinuxのWebサーバーでは、HTTPSの暗号化の設定および証明書の入手・更新がわずか2つのコマンドによって可能である[11][12]

このため、Let's EncryptのソフトウェアパッケージはDebianUbuntuの公式リポジトリに含まれている[13][14]MozillaGoogleなどの主要なブラウザベンダーが現在主導しているHTTPS重視の方針は、Let's Encryptの利用可能性を見込んだものである[15][16]。このプロジェクトは、ウェブ全体の暗号化接続を達成する可能性のあるものであると認められている[17]

完全自動化のため、ドメイン認証(Domain Validation、DV)型証明書のみ発行しており、企業認証(Organization Validation、OV)型やEV(Extended Validation)型は提供していない[18]。日本語ドメインなどの国際化ドメイン名には対応する[19]

Let's Encryptは、できる限り透明化することで信頼性を維持し、攻撃から保護するねらいがある。このため定期的に報告書を発行し[20]、全てのACMEトランザクションを公開し(たとえばCertificate Transparencyなどにより)、できる限りオープン標準とフリーソフトウェアを使用している[11]

ACME v2とワイルドカード証明書英語版のサポートが2018年3月から開始された[21]

互換性[編集]

Let's Encryptの中間証明書はIdenTrust英語版ルート証明書によってクロス署名されており、幅広いプラットフォームに対応している。未対応の代表的なものとして一部のフィーチャーフォンニンテンドー3DSなどがあげられる[22]

関係団体[編集]

Let's EncryptはInternet Security Research Group英語版(ISRG)がサービスを提供している。主要なスポンサーは電子フロンティア財団(EFF)、Mozilla Foundationアカマイ・テクノロジーズOVHシスコシステムズFacebookGoogle ChromeInternet Societyである。 その他の関係団体としては認証局のIdenTrust英語版ミシガン大学スタンフォード・ロー・スクールLinux Foundation[23]などがあり、レイセオン/BBNテクノロジーズStephen Kent英語版CoreOSのAlex Polvなどが関わっている[11]

技術諮問委員会[編集]

技術[編集]

2015年6月、Let's Encryptはオフラインにされたハードウェアセキュリティモジュール英語版上に秘密鍵の保管されたRSAルート証明書を生成した[24]。ルート証明書はIdenTrust英語版認証局によってクロス署名される2つの中間証明書に署名するために使用された[24][25][26]。中間証明書のうち一方は発行された証明書に署名するために使用され、他方は一つ目の中間証明書に問題が発生した際のバックアップのためにオフラインで保管されている[24]。IdenTrustの証明書は主要なブラウザにプリインストールされているため、ISRGのルート証明書をトラストアンカー英語版として含んでいるブラウザが存在しないにもかかわらずLet's Encryptの証明書は通常何もすることなく有効である[27]

Let's Encryptの開発者たちはECDSAのルート証明書も同様に2015年内に生成する予定であったが[24]、これは2016年頭へと延期され[28][29]、2019年へとさらに延期された[30]

プロトコル[編集]

この新しい認証局への登録を自動化するためのチャレンジレスポンス英語版プロトコルはAutomated Certificate Management Environment(ACME)と呼ばれている。これには証明書がカバーしているドメイン上のウェブサーバに対する様々なリクエストが含まれている。レスポンス結果が期待されているものと一致しているかに基づき、登録者がドメインの管理を行っているかが確認される(ドメイン認証)。これを実現するため、ACMEクライアントソフトウェアはサーバシステム上にACME認証局サーバからのServer Name Indication(Domain Validation using Server Name Indication、DVSNI)を用いた特殊なリクエストを受けるための特殊なTLSサーバを立ち上げる。

認証プロセスは個別のネットワーク経路を用いて複数回実施される。DNSスプーフィング攻撃が困難になるよう、DNSエントリの確認は地理的に離れた複数の地点から実施される。

ACMEの動作はJSONドキュメントをHTTPS接続上で交換することで実施される[31]。仕様書のドラフト版はGitHub上で入手可能であり[32]、インターネット標準の提案としてInternet Engineering Task Force(IETF)に送付されている[33]

ソフトウェア実装[編集]

ドメイン選択ダイアログ
Let's Encrypt証明書を持つウェブサイトの例

認証局ではACMEプロトコルのサーバ側を実装したBoulderと呼ばれるGoで書かれたソフトウェアが使用される。BoulderはMozilla Public License(MPL)バージョン2に基づいたフリーソフトウェアとしてソースコードとともに公開されており[34]、TLSで暗号化された通信経路からアクセス可能なRESTによるAPIを提供する。

certbot(旧称letsencrypt)と呼ばれるApache Licenseに基づくPythonで書かれた証明書管理プログラムがクライアント側(登録者のウェブサーバ)にインストールされる[35]。これは証明書を要求し、ドメイン認証プロセスを実施し、証明書を導入し、HTTPサーバのHTTPS暗号化を設定し、定期的に証明書を更新するために使用される[11][36]。インストールと使用許諾への合意を行えば、コマンド1つで有効な証明書を導入することができる。OCSP Stapling英語版HTTP Strict Transport Security(HSTS)のような追加のオプションを有効化することも可能である[31]。自動セットアップはApachenginxのみで利用可能である。

Let's Encryptは90日間有効な証明書を発行する。これはこのような証明書により「鍵漏洩と誤発行によるダメージを抑制することができる」ためであり、自動化を奨励するためである[37]。公式のcertbotクライアントと多くのサードパーティによるクライアントが証明書の自動更新に対応する。

コミュニティではいくつかのサードパーティにより、クライアント実装がいくつかの言語で行われている[38]

沿革[編集]

Let's Encryptプロジェクトは2012年に2人のMozilla従業員Josh AasとEric Rescorlaが電子フロンティア財団のPeter Eckersleyとミシガン大学のJ. Alex Halderman英語版とともに始めた。Let's Encryptを提供しているInternet Security Research Groupは2013年5月に設立された[39]

  • 2014年11月18日 Let's Encryptが公表された[40]
  • 2015年1月28日 ACMEプロトコルが正式な標準化のためにIETFに提出された[41]
  • 2015年4月9日 ISRGとLinux Foundationのコラボレーションが宣言された[23]
    • ルート証明書と中間証明書は6月の初めに生成された[27]
  • 2015年6月16日 最終的なサービス立ち上げのスケジュールが公表された。併せて2015年7月27日の週のどこかで最初の証明書が発行される予定であり、セキュリティとスケーラビリティの検証のため発行期間が選定的になることが告知された。当初、サービスが一般に利用可能になるのは2015年9月14日の週のどこかの予定であった[42]。IdenTrustによるクロス署名がLet's Encrypt一般サービス開始時に開始される計画となった[26]
  • 2015年8月7日 サービスの立ち上げスケジュールがシステムのセキュリティと安定性向上のため変更され、最初の証明書の発行予定が2015年9月7日に、サービスが一般に利用可能になるのは2015年11月16日の週となった[43]
  • 2015年9月14日 ドメイン「helloworld.letsencrypt.org」のために、最初の証明書を発行。同日、ISRGは、Mozilla、マイクロソフトグーグルAppleにそのルート・プログラム・アプリケーションを提出した[44]
  • 2015年10月19日 中間証明書に、クロス署名としてIdenTrustを選定したことにより、Letsencryptによって発行されたすべての証明書、すべての主要なブラウザによって信頼されるようになった[25]
  • 2015年11月12日 最初のパブリックベータ開始日を2015年12月3日である発表した[45]
  • 2015年12月3日 パブリックベータの開始を発表した[46]
  • 2016年4月12日 ベータ期間が終了した[47]

証明書発行数[編集]

日付 証明書発行数(累計)
2016年3月8日 100万[48]
2016年4月21日 200万[49]
2016年6月3日 400万[50]
2016年6月22日 500万[*][51]
2016年9月9日 1000万[52]
2016年11月27日 2000万[53]
2016年12月12日 2400万[54]
2017年6月28日 1億[55]
2018年8月6日 1億1500万[56]
2018年9月14日 3億8000万[57]
2020年2月27日 10億[58]

[*] これらのうち380万通は有効期限が切れておらず、失効もしていない。Let's Encryptの有効な証明書は700万以上のユニークなドメインをカバーしており、これは大きなホスティング業者によるサポートによる部分もある。

参考文献[編集]

  • Richard Barnes, Jacob Hoffman-Andrews, James Kasten (21 July 2015), IETF (ed.), "Automatic Certificate Management Environment (ACME)", Active Internet-Drafts (英語) (latest standardisation draft of the ACME specification)

脚注[編集]

  1. ^ Kerner, Sean Michael (2014年11月18日). “Let's Encrypt Effort Aims to Improve Internet Security”. eWeek.com. Quinstreet Enterprise. 2015年2月27日閲覧。
  2. ^ Eckersley, Peter (2014年11月18日). “Launching in 2015: A Certificate Authority to Encrypt the Entire Web”. Electronic Frontier Foundation. 2015年2月27日閲覧。
  3. ^ 2020 ANNUAL REPORT”. Internet Security Research Group. 2024年3月10日閲覧。
  4. ^ Let's Encrypt の統計情報”. Internet Security Research Group (ISRG). 2024年3月10日閲覧。
  5. ^ Kerner, Sean Michael (2014年11月18日). “Let's Encrypt Effort Aims to Improve Internet Security”. eWeek.com. Quinstreet Enterprise. 2015年2月27日閲覧。
  6. ^ Eckersley, Peter (2014年11月18日). “Launching in 2015: A Certificate Authority to Encrypt the Entire Web”. Electronic Frontier Foundation. 2015年2月27日閲覧。
  7. ^ Catalin Cimpanu. “Let's Encrypt Launched Today, Currently Protects 3.8 Million Domains”. Softpedia News. 2016年4月12日閲覧。
  8. ^ Leaving Beta, New Sponsors”. EFF. 2016年4月12日閲覧。
  9. ^ Technology - Let's Encrypt - Free SSL/TLS Certificates”. Let's Encrypt. 2016年1月6日閲覧。
  10. ^ Liam Tung (ZDNet), November 19, 2014: EFF, Mozilla to launch free one-click website encryption
  11. ^ a b c d Fabian Scherschel (heise.de), November 19, 2014: Let's Encrypt: Mozilla und die EFF mischen den CA-Markt auf
  12. ^ Rob Marvin (SD Times), November 19, 2014: EFF wants to make HTTPS the default protocol
  13. ^ ITP: letsencrypt – Let's Encrypt client that can update Apache configurations
  14. ^ https://tracker.debian.org/pkg/python-letsencrypt
  15. ^ Richard Barnes (Mozilla), April 30, 2015: Deprecating Non-Secure HTTP
  16. ^ The Chromium Projects – Marking HTTP As Non-Secure
  17. ^ Glyn Moody, November 25, 2014: The Coming War on Encryption, Tor, and VPNs – Time to stand up for your right to online privacy
  18. ^ Steven J. Vaughan-Nichols (ZDNet), April 9, 2015: the web once and for all: The Let's Encrypt Project
  19. ^ Introducing Internationalized Domain Name (IDN) Support”. Let's Encrypt. 2017年6月13日閲覧。
  20. ^ Zeljka Zorz (Help Net Security), July 6, 2015: Let's Encrypt CA releases transparency report before its first certificate
  21. ^ Aas, Josh (2018年3月13日). “ACME v2 and Wildcard Certificate Support is Live”. Let's Encrypt. 2019年1月6日閲覧。
  22. ^ Certificate Compatibility”. Let's Encrypt (2016年12月5日). 2017年6月13日閲覧。
  23. ^ a b Sean Michael Kerner (eweek.com), April 9, 2015: Let's Encrypt Becomes Linux Foundation Collaborative Project
  24. ^ a b c d Aas, Josh (2015年6月4日). “Let's Encrypt Root and Intermediate Certificates”. 2017年6月14日閲覧。
  25. ^ a b Aas, Josh. “Let's Encrypt is Trusted”. 2015年10月19日閲覧。
  26. ^ a b Reiko Kaps (heise.de), June 17, 2015: SSL-Zertifizierungsstelle Lets Encrypt will Mitte September 2015 öffnen
  27. ^ a b Reiko Kaps (heise.de), June 5, 2015: Let's Encrypt: Meilenstein zu kostenlosen SSL-Zertifikaten für alle
  28. ^ Certificates”. 2015年12月3日時点のオリジナルよりアーカイブ。2017年6月14日閲覧。
  29. ^ Aas, Josh (2015年8月13日). “Elliptic Curve Cryptography (ECC) Support”. 2015年12月12日時点のオリジナルよりアーカイブ。2017年6月14日閲覧。
  30. ^ Upcoming Features”. Let's Encrypt. 2018年9月27日時点のオリジナルよりアーカイブ。2018年10月13日閲覧。
  31. ^ a b Chris Brook (Threatpost), November 18, 2014: EFF, Others Plan to Make Encrypting the Web Easier in 2015
  32. ^ Draft ACME specification”. 2017年6月14日閲覧。
  33. ^ R. Barnes, P. Eckersley, S. Schoen, A. Halderman, J. Kasten (2015年1月28日). “Automatic Certificate Management Environment (ACME) draft-barnes-acme-01”. 2017年6月14日閲覧。
  34. ^ letsencrypt. “boulder/LICENSE.txt at master · letsencrypt/boulder · GitHub”. Github.com. 2016年1月6日閲覧。
  35. ^ letsencrypt (2015年11月23日). “letsencrypt/LICENSE.txt at master · letsencrypt/letsencrypt · GitHub”. Github.com. 2016年1月6日閲覧。
  36. ^ James Sanders (TechRepublic), November 25, 2014: Let's Encrypt initiative to provide free encryption certificates
  37. ^ Aas, Josh (2015年11月9日). “Why ninety-day lifetimes for certificates?”. Let's Encrypt. 2016年6月26日閲覧。
  38. ^ Let’s Encrypt - Documentation”. 2017年11月9日閲覧。
  39. ^ Aas, Josh (2014年11月18日). “Let’s Encrypt | Boom Swagger Boom”. Boomswaggerboom.wordpress.com. 2016年1月6日閲覧。
  40. ^ Joseph Tsidulko (18 November 2014). "Let's Encrypt, A Free And Automated Certificate Authority, Comes Out Of Stealth Mode". crn.com (英語). 2015年8月26日閲覧
  41. ^ History for draft-barnes-acme
  42. ^ Josh Aas (2015年6月16日). “Let's Encrypt Launch Schedule”. letsencrypt.org. Let's Encrypt. 2015年6月19日閲覧。
  43. ^ Updated Let's Encrypt Launch Schedule” (2015年8月7日). 2017年6月14日閲覧。
  44. ^ Michael Mimoso. “First Let’s Encrypt Free Certificate Goes Live”. Threatpost.com, Kaspersky Labs. 2015年9月16日閲覧。
  45. ^ Public Beta: December 3, 2015” (2015年11月12日). 2017年6月14日閲覧。
  46. ^ Entering Public Beta - Let's Encrypt - Free SSL/TLS Certificates”. Let's Encrypt (2015年12月3日). 2016年1月6日閲覧。
  47. ^ Let's Encrypt Leaves Beta”. LinuxFoundation.org. 2016年4月17日閲覧。
  48. ^ Aas, Josh (2016年3月8日). “Our Millionth Certificate - Let's Encrypt - Free SSL/TLS Certificates”. letsencrypt.org. 2016年3月15日閲覧。
  49. ^ Let's Encrypt Reaches 2,000,000 Certificates” (2016年4月22日). 2016年9月24日閲覧。
  50. ^ Let's Encrypt Stats”. letsencrypt.org (2016年6月5日). 2016年6月5日閲覧。
  51. ^ Progress Towards 100% HTTPS, June 2016”. letsencrypt.org (2016年6月22日). 2016年6月24日閲覧。
  52. ^ Let's Encrypt [@letsencrypt] (2016年9月9日). "We've now issued more than 10 million certificates". X(旧Twitter)より2016年9月24日閲覧
  53. ^ Let's Encrypt [@letsencrypt] (2016年11月27日). "We've issued 20M+ certificates!". X(旧Twitter)より2016年11月27日閲覧
  54. ^ Let's Encrypt [@letsencrypt] (2016年12月12日). "Just over 1 year ago, we issued our first cert. Today, 24M+ and climbing!". X(旧Twitter)より2017年1月18日閲覧
  55. ^ Milestone: 100 Million Certificates Issued - Let's Encrypt - Free SSL/TLS Certificates” (英語). letsencrypt.org (2017年6月28日). 2017年7月2日閲覧。
  56. ^ Let's Encrypt Root Trusted By All Major Root Programs” (英語). letsencrypt.org (2018年8月6日). 2018年9月11日閲覧。
  57. ^ “Let's Encrypt on Twitter” (英語). Twitter. https://twitter.com/letsencrypt/status/1040650167647559680 2018年9月16日閲覧。 
  58. ^ Let's Encrypt Has Issued a Billion Certificates”. Let's Encrypt. 2024年3月10日閲覧。

関連項目[編集]

外部リンク[編集]