37°48′01″ с. ш. 122°27′00″ з. д.HGЯO

Let’s Encrypt

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
Let's Encrypt
Изображение логотипа
Административный центр
Локация
Тип организации Центр сертификации и НКО
Основатели Electronic Frontier Foundation, Mozilla Foundation и Мичиганский университет
Основание
Дата основания 2014
Отрасль криптография
Продукция Центр сертификации X.509
Число сотрудников
  • 8 чел. (2016)[2]
Материнская организация Internet Security Research Group[англ.]
Сайт letsencrypt.org
Логотип Викисклада Медиафайлы на Викискладе

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

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

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

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

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

По внутренней статистике ISRG, к 1 ноября 2022 года в Let’s Encrypt зарегистрировано 239,7 млн активных сертификатов для ~99,5 млн доменов. Всего с 2015 года было выпущено 3,078 млрд сертификатов. На протяжении 2022 года каждый день выпускалось от 1,8 до 3,1 млн сертификатов, число доменов за год выросло на 33 млн, то есть на ~50 %[14][15].

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

Сервис 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[17]; Stephen Kent (из Raytheon/BBN Technologies[англ.]) и Alex Polvi (из CoreOS)[6].

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

В январе 2022 года Let’s Encrypt отозвала около двух миллионов SSL/TLS-сертификатов (или около 1% от общего числа действовавших сертификатов), так как они были выпущены некорректно[41].

В апреле 2022 года проект получил премию Левчина за улучшение экосистемы публичных криптоключей и предоставление бесплатных цифровых сертификатов для всех желающих.[42]

Технологии

[править | править код]

Ключ от корневого сертификата стандарта RSA с 2015 года хранится в аппаратном хранилище HSM[англ.] (англ. Hardware security module), не подключённом к компьютерным сетям[22]. Этим корневым сертификатом подписаны два промежуточных корневых сертификата[22], которые также были подписаны центром сертификации IdenTrust[25]. Один из промежуточных сертификатов используется для выпуска конечных сертификатов сайтов, второй держится в качестве резервного в хранилище, не подключённом к Интернету, на случай компрометации первого сертификата[22]. Поскольку корневой сертификат центра IdenTrust предустановлен в большинстве операционных систем и браузеров в качестве доверенного корневого сертификата, выдаваемые проектом Let’s Encrypt сертификаты проходят проверку и принимаются клиентами[21], несмотря на отсутствие корневого сертификата 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-соединения[43]. Черновик протокола опубликован на GitHub[44] и отправлен в Internet Engineering Task Force (IETF) в качестве черновика[англ.] для интернет-стандарта[45].

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

Программная реализация

[править | править код]
Диалог выбора домена

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

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

Примечания

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

Литература

[править | править код]