Перейти к содержанию

Let’s Encrypt

37°48′01″ с. ш. 122°27′00″ з. д.HGЯO
Материал из Мегавики — свободной энциклопедии
Let's Encrypt
Местоположение Сан-Франциско, США
Основание
Дата основания 2014
Продукция Центр сертификации X.509
Материнская организация Internet Security Research Group[англ.]
Сайт letsencrypt.org

Let’s Encrypt — центр сертификации, предоставляющий бесплатные криптографические сертификаты X.509 для шифрования передаваемых через интернет данных HTTPS и других протоколов, используемых серверами в Интернете. Процесс выдачи сертификатов полностью автоматизирован[1][2].

Сервис предоставляется публичной организацией Internet Security Research Group[англ.] (ISRG).

Задачи[править]

Проект Let’s Encrypt создан для того, чтобы большая часть интернет-сайтов смогла перейти к шифрованным подключениям (HTTPS). В отличие от коммерческих центров сертификации, в данном проекте не требуется оплата, переконфигурация веб-серверов, использование электронной почты, обработка просроченных сертификатов, что делает процесс установки и настройки TLS-шифрования значительно более простым[3]. Например, на типичном веб-сервере на базе Linux требуется выполнить две команды, которые настроят HTTPS-шифрование, получат и установят сертификат примерно за 20-30 секунд[4][5].

Пакет с утилитами автонастройки и получения сертификата включен в официальные репозитории дистрибутива Debian[6]. Разработчики браузеров Mozilla и Google намерены постепенно отказаться от поддержки незашифрованного протокола HTTP путём отказа от поддержки новых веб-стандартов для http-сайтов[7][8]. Проект Let’s Encrypt имеет потенциал по переводу большей части Интернета на шифрованные соединения[9].

Центр сертификации Let’s Encrypt выдаёт сертификаты Domain-validated certificate[англ.] со сроком действия в 90 дней[10]. Не планируется предложение сертификатов Organization Validation и Extended Validation Certificate[11].

По статистике, Let's Encrypt на август 2021 зарегистрировано 1 930 558 сертификатов и 2 527 642 полноопределённых активных домена. А число сертификатов Let's Encrypt Certificates, выпускаемых в сутки, превышает 2,5 млн.[12]

Проект публикует множество информации с целью защиты от атак и попыток манипуляции[13]. Ведётся публичный лог всех транзакций ACME, используются открытые стандарты и программы с открытыми исходными кодами[4].

Участники[править]

Сервис Let’s Encrypt предоставляется публичной организацией Internet Security Research Group[англ.] (ISRG).

Основные спонсоры проекта: Фонд электронных рубежей (Electronic Frontier Foundation, EFF), Mozilla Foundation, Akamai, Cisco Systems.

Партнёрами проекта являются центр сертификации IdenTrust[англ.], University of Michigan (U-M), Stanford Law School[англ.], Linux Foundation[14]; Stephen Kent (из Raytheon/BBN Technologies) и Alex Polvi (из CoreOS)[4].

История[править]

Проект Let’s Encrypt был инициирован в конце 2012 года двумя сотрудниками компании Mozilla, Josh Aas и Eric Rescorla. Компания Internet Security Research Group была создана в мае 2013 года для управления проектом. В июне 2013 года проекты Electronic Frontier Foundation и University of Michigan были объединены в Let’s Encrypt[15].

Впервые проект Let’s Encrypt был публично анонсирован 18 ноября 2014 года[16].

28 января 2015 года протокол ACME был отправлен в IETF для принятия в качестве стандарта Интернета[17].

9 апреля 2015 года ISRG и Linux Foundation объявили о сотрудничестве[14].

В начале июня 2015 года был создан корневой сертификат RSA для проекта Let’s Encrypt[18][19]. Тогда же были созданы промежуточные сертификаты[18].

16 июня 2015 года были объявлены планы по запуску сервиса, первые конечные сертификаты были выпущены в конце июля 2015 года для тестирования безопасности и масштабируемости. Широкая доступность сервиса планировалась на середину сентября 2015 года[20]. 7 августа 2015 года планы были сдвинуты, широкий запуск сервиса был перенесён на середину ноября[21].

Подпись промежуточных сертификатов от IdenTrust была запланирована на период начала широкой доступности Let’s Encrypt[22].

14 сентября 2015 года был выпущен первый конечный сертификат для домена helloworld.letsencrypt.org. В тот же день организация ISRG выслала публичный ключ своего корневого сертификата для включения в список доверенных компаниям Mozilla, Microsoft, Google и Apple[23].

12 ноября 2015 года Let’s Encrypt перенесла широкий запуск в бета-режиме на 3 декабря 2015 года[24].

Центр сертификации Let’s Encrypt начал работать в бета-режиме 3 декабря 2015 года[24].

12 апреля 2016 года объявлено об окончании периода бета-тестирования[25].

28 июня 2017 года Let’s Encrypt заявила о выпуске 100-миллионного сертификата[26].

7 декабря 2017 объявлено о старте публичного бета-тестирования выдачи wildcard-сертификатов с 4 января 2018 года. Планируемая дата окончания тестового периода — 27 февраля 2018 года[27].

13 марта 2018 года Let’s Encrypt начал выдавать wildcard-сертификаты, теперь каждый может получить бесплатный SSL/TLS-сертификат вида *.example.com.[28][29]

6 августа 2018 года Let’s Encrypt заявила, что с конца июля 2018 года их корневому сертификату ISRG Root X1 доверяют все основные списки корневых сертификатов, включая Microsoft, Google, Apple, Mozilla, Oracle и Blackberry[30][31].

В период конца 2015 — начала 2016 года планировалось сгенерировать корневой сертификат с ключом по алгоритму ECDSA, но потом срок его выпуска был перенесён на 2018 год[19][32][33].

13 марта 2018 года центр поддержки пользователей Let’s Encrypt объявил о возможности создавать «wildcard certificate» (сертификатов, включающих неограниченное множество поддоменов)[34]. Ранее планировалось запустить этот функционал 27 февраля 2018 года[35].

В марте 2020 года Let's Encrypt был удостоен ежегодной премии Free Software Award Фонда свободного программного обеспечения как проект, имеющий социальную значимость[36].

В сентябре 2021 года — переход сертификатов DST Root CA X3 на ISRG Root X1[37].

Технологии[править]

Ключ от корневого сертификата стандарта RSA с 2015 года хранится в аппаратном хранилище HSM[англ.] (англ. Hardware security module), не подключённом к компьютерным сетям[19]. Этим корневым сертификатом подписаны два промежуточных корневых сертификата[19], которые также были подписаны центром сертификации IdenTrust[22]. Один из промежуточных сертификатов используется для выпуска конечных сертификатов сайтов, второй держится в качестве резервного в хранилище, не подключённом к Интернету, на случай компрометации первого сертификата[19]. Поскольку корневой сертификат центра IdenTrust предустановлен в большинстве операционных систем и браузеров в качестве доверенного корневого сертификата, выдаваемые проектом Let’s Encrypt сертификаты проходят проверку и принимаются клиентами[18], несмотря на отсутствие корневого сертификата ISRG в списке доверенных.

Протокол аутентификации сайтов[править]

Для автоматической выдачи сертификата конечному сайту используется протокол аутентификации класса «challenge-response» (вызов-ответ, вызов-отклик) под названием Automated Certificate Management Environment[англ.] (ACME). В этом протоколе к веб-серверу, запросившему подписание сертификата, производится серия запросов для подтверждения факта владения доменом (domain validation). Для получения запросов клиент ACME настраивает специальный TLS-сервер, который опрашивается сервером ACME с применением Server Name Indication (Domain Validation using Server Name Indication, DVSNI).

Валидация проводится многократно, с использованием различных сетевых путей. Записи DNS опрашиваются из множества географически распределённых мест для осложнения атак DNS spoofing.

Протокол ACME работает путём обмена JSON-документами через HTTPS-соединения[38]. Черновик протокола опубликован на GitHub[39] и отправлен в Internet Engineering Task Force (IETF) в качестве черновика[англ.] для интернет-стандарта[40].

Протокол ACME описан в документе RFC 8555.

Программная реализация[править]

Диалог выбора домена

Центр сертификации использует сервер ACME-протокола «Boulder», написанный на языке программирования Go (доступен в исходных текстах под лицензией Mozilla Public License 2)[41]. Сервер предоставляет RESTful-протокол, работающий через канал с шифрованием TLS.

Клиент протокола ACME, certbot (ранее letsencrypt) с открытым исходным кодом под лицензией Apache[42] написан на языке Python. Этот клиент устанавливается на конечном сервере и используется для запроса сертификата, проведения валидации домена, инсталляции сертификата и настройки HTTPS-шифрования в веб-сервере. В дальнейшем этот клиент используется для регулярного перевыпуска сертификата по мере окончания срока действия[4][43]. После установки и принятия лицензии достаточно выполнить одну команду для получения сертификата. Дополнительно могут быть включены опции OCSP stapling[англ.] и HTTP Strict Transport Security (HSTS, принудительное переключение с HTTP на HTTPS)[38]. Автоматическая настройка https-сервера изначально доступна для веб-серверов Apache и nginx.

См. также[править]

Примечания[править]

  1. ↑ Kerner, Sean Michael. Let's Encrypt Effort Aims to Improve Internet Security. eWeek.com. Quinstreet Enterprise (18 ноября 2014). Дата обращения: 27 февраля 2015.
  2. ↑ Eckersley, Peter. Launching in 2015: A Certificate Authority to Encrypt the Entire Web. Electronic Frontier Foundation (18 ноября 2014). Дата обращения: 27 февраля 2015. Архивировано 10 мая 2018 года.
  3. ↑ Liam Tung (ZDNet), November 19, 2014: EFF, Mozilla to launch free one-click website encryption
  4. ↑ 4,0 4,1 4,2 4,3 Fabian Scherschel (heise.de), November 19, 2014: Let's Encrypt: Mozilla und die EFF mischen den CA-Markt auf
  5. ↑ Rob Marvin (SD Times), November 19, 2014: EFF wants to make HTTPS the default protocol
  6. ↑ Подробная информация о пакете certbot в stretch
  7. ↑ Richard Barnes (Mozilla), April 30, 2015: Deprecating Non-Secure HTTP
  8. ↑ The Chromium Projects – Marking HTTP As Non-Secure
  9. ↑ Glyn Moody, November 25, 2014: The Coming War on Encryption, Tor, and VPNs – Time to stand up for your right to online privacy
  10. ↑ Let’s Encrypt Documentation. Release 0.2.0.dev0 Архивная копия от 29 июля 2017 на Wayback Machine / Let’s Encrypt, December 18, 2015 «Let’s Encrypt CA issues short lived certificates (90 days)»
  11. ↑ Steven J. Vaughan-Nichols (ZDNet), April 9, 2015: the web once and for all: The Let's Encrypt Project
  12. ↑ Статистика Let's Encrypt. https://letsencrypt.org/ru. Дата обращения: 30 сентября 2021. Архивировано 30 сентября 2021 года.
  13. ↑ Zeljka Zorz (Help Net Security), July 6, 2015: Let's Encrypt CA releases transparency report before its first certificate
  14. ↑ 14,0 14,1 Sean Michael Kerner (eweek.com), April 9, 2015: Let's Encrypt Becomes Linux Foundation Collaborative Project
  15. ↑ Let’s Encrypt | Boom Swagger Boom. Дата обращения: 12 декабря 2015. Архивировано из оригинала 8 декабря 2015 года.
  16. ↑ Joseph Tsidulko. Let's Encrypt, A Free And Automated Certificate Authority, Comes Out Of Stealth Mode (англ.) (18 ноября 2014). Дата обращения: 26 августа 2015. Архивная копия от 12 июня 2018 на Wayback Machine
  17. ↑ History for draft-barnes-acme
  18. ↑ 18,0 18,1 18,2 Reiko Kaps (heise.de), June 5, 2015: Let's Encrypt: Meilenstein zu kostenlosen SSL-Zertifikaten für alle
  19. ↑ 19,0 19,1 19,2 19,3 19,4 Aas, Josh. Let's Encrypt Root and Intermediate Certificates (4 июня 2015). Дата обращения: 12 декабря 2015. Архивировано 3 декабря 2015 года.
  20. ↑ Josh Aas. Let's Encrypt Launch Schedule. letsencrypt.org. Let's Encrypt (16 июня 2015). Дата обращения: 19 июня 2015. Архивировано 26 мая 2018 года.
  21. ↑ Updated Let's Encrypt Launch Schedule (7 августа 2015). Дата обращения: 12 декабря 2015. Архивировано 27 сентября 2015 года.
  22. ↑ 22,0 22,1 Reiko Kaps (heise.de), June 17, 2015: SSL-Zertifizierungsstelle Lets Encrypt will Mitte September 2015 öffnen
  23. ↑ Michael Mimoso. First Let’s Encrypt Free Certificate Goes Live. Threatpost.com, Kaspersky Labs. Дата обращения: 16 сентября 2015. Архивировано 12 июня 2018 года.
  24. ↑ 24,0 24,1 Public Beta: December 3, 2015 (12 ноября 2015). Дата обращения: 12 декабря 2015. Архивировано 7 апреля 2018 года.
  25. ↑ Let’s Encrypt Leaves Beta (15 апреля 2016). Дата обращения: 25 января 2018. Архивировано из оригинала 15 апреля 2016 года.
  26. ↑ Milestone. 100 Million Certificates Issued (англ.). Let's Encrypt. Дата обращения: 25 января 2018. Архивировано 12 мая 2018 года.
  27. ↑ Looking Forward to 2018 (англ.). Let's Encrypt. Дата обращения: 25 января 2018. Архивировано 22 января 2018 года.
  28. ↑ ACME v2 and Wildcard Certificate Support is Live (англ.). Let's Encrypt Community Support. Дата обращения: 28 июня 2018. Архивировано 1 июня 2018 года.
  29. ↑ Let's Encrypt начал выдавать wildcard сертификаты. Архивировано 28 июня 2018. Дата обращения: 28 июня 2018.
  30. ↑ Let's Encrypt Root Trusted By All Major Root Programs. Дата обращения: 9 августа 2018. Архивировано 6 августа 2018 года.
  31. ↑ Теперь все основные списки корневых сертификатов доверяют Let's Encrypt. Дата обращения: 9 августа 2018. Архивировано 9 августа 2018 года.
  32. ↑ Certificates. Let's Encrypt. Архивировано 3 декабря 2015 года.
  33. ↑ Certificates. Let's Encrypt. Архивировано 9 октября 2017 года.
  34. ↑ ACME v2 and Wildcard Certificate Support is Live (англ.). Let's Encrypt Community Support. Дата обращения: 16 марта 2018. Архивировано 1 июня 2018 года.
  35. ↑ Wildcard Certificates Coming January 2018. Дата обращения: 9 июля 2017. Архивировано 8 января 2021 года.
  36. ↑ Let's Encrypt, Jim Meyering, and Clarissa Lima Borges receive FSF's 2019 Free Software Awards Архивная копия от 18 июля 2021 на Wayback Machine Free Software Foundation, 2020
  37. ↑ DST Root CA X3 Expiration (англ.). https://letsencrypt.org/ (2021-5-7). Дата обращения: 30 сентября 2021. Архивировано 30 сентября 2021 года.
  38. ↑ 38,0 38,1 Chris Brook (Threatpost), November 18, 2014: EFF, Others Plan to Make Encrypting the Web Easier in 2015
  39. ↑ Draft ACME specification. Дата обращения: 12 декабря 2015. Архивировано 21 ноября 2014 года.
  40. ↑ R. Barnes, P. Eckersley, S. Schoen, A. Halderman, J. Kasten. Automatic Certificate Management Environment (ACME) draft-barnes-acme-01 (28 января 2015). Дата обращения: 12 декабря 2015. Архивировано 28 июня 2020 года.
  41. ↑ boulder/LICENSE.txt at master · letsencrypt/boulder · GitHub. Дата обращения: 12 декабря 2015. Архивировано 19 марта 2019 года.
  42. ↑ letsencrypt/LICENSE.txt at master · letsencrypt/letsencrypt · GitHub
  43. ↑ James Sanders (TechRepublic), November 25, 2014: Let's Encrypt initiative to provide free encryption certificates

Литература[править]

Ссылки[править]