Let’s Encrypt
| 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.
См. также
Примечания
- ↑ Kerner, Sean Michael. Let's Encrypt Effort Aims to Improve Internet Security. eWeek.com. Quinstreet Enterprise (18 ноября 2014). Дата обращения: 27 февраля 2015.
- ↑ Eckersley, Peter. Launching in 2015: A Certificate Authority to Encrypt the Entire Web. Electronic Frontier Foundation (18 ноября 2014). Дата обращения: 27 февраля 2015. Архивировано 10 мая 2018 года.
- ↑ Liam Tung (ZDNet), November 19, 2014: EFF, Mozilla to launch free one-click website encryption
- ↑ 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
- ↑ Rob Marvin (SD Times), November 19, 2014: EFF wants to make HTTPS the default protocol
- ↑ Подробная информация о пакете certbot в stretch
- ↑ Richard Barnes (Mozilla), April 30, 2015: Deprecating Non-Secure HTTP
- ↑ The Chromium Projects – Marking HTTP As Non-Secure
- ↑ Glyn Moody, November 25, 2014: The Coming War on Encryption, Tor, and VPNs – Time to stand up for your right to online privacy
- ↑ 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)»
- ↑ Steven J. Vaughan-Nichols (ZDNet), April 9, 2015: the web once and for all: The Let's Encrypt Project
- ↑ Статистика Let's Encrypt. https://letsencrypt.org/ru. Дата обращения: 30 сентября 2021. Архивировано 30 сентября 2021 года.
- ↑ Zeljka Zorz (Help Net Security), July 6, 2015: Let's Encrypt CA releases transparency report before its first certificate
- ↑ 14,0 14,1 Sean Michael Kerner (eweek.com), April 9, 2015: Let's Encrypt Becomes Linux Foundation Collaborative Project
- ↑ Let’s Encrypt | Boom Swagger Boom (недоступная ссылка). Дата обращения: 12 декабря 2015. Архивировано 8 декабря 2015 года.
- ↑ Joseph Tsidulko Let's Encrypt, A Free And Automated Certificate Authority, Comes Out Of Stealth Mode (англ.) (18 ноября 2014). Дата обращения: 26 августа 2015. Архивная копия от 12 июня 2018 на Wayback Machine
- ↑ History for draft-barnes-acme
- ↑ 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,0 19,1 19,2 19,3 19,4 Aas, Josh Let's Encrypt Root and Intermediate Certificates (4 июня 2015). Дата обращения: 12 декабря 2015. Архивировано 3 декабря 2015 года.
- ↑ Josh Aas. Let's Encrypt Launch Schedule. letsencrypt.org. Let's Encrypt (16 июня 2015). Дата обращения: 19 июня 2015. Архивировано 26 мая 2018 года.
- ↑ Updated Let's Encrypt Launch Schedule (7 августа 2015). Дата обращения: 12 декабря 2015. Архивировано 27 сентября 2015 года.
- ↑ 22,0 22,1 Reiko Kaps (heise.de), June 17, 2015: SSL-Zertifizierungsstelle Lets Encrypt will Mitte September 2015 öffnen
- ↑ Michael Mimoso. First Let’s Encrypt Free Certificate Goes Live. Threatpost.com, Kaspersky Labs. Дата обращения: 16 сентября 2015. Архивировано 12 июня 2018 года.
- ↑ 24,0 24,1 Public Beta: December 3, 2015 (12 ноября 2015). Дата обращения: 12 декабря 2015. Архивировано 7 апреля 2018 года.
- ↑ Let’s Encrypt Leaves Beta (недоступная ссылка) (15 апреля 2016). Дата обращения: 25 января 2018. Архивировано 15 апреля 2016 года.
- ↑ Milestone. 100 Million Certificates Issued (англ.). Let's Encrypt. Дата обращения: 25 января 2018. Архивировано 12 мая 2018 года.
- ↑ Looking Forward to 2018 (англ.). Let's Encrypt. Дата обращения: 25 января 2018. Архивировано 22 января 2018 года.
- ↑ ACME v2 and Wildcard Certificate Support is Live (англ.). Let's Encrypt Community Support. Дата обращения: 28 июня 2018. Архивировано 1 июня 2018 года.
- ↑ Let’s Encrypt начал выдавать wildcard сертификаты (рус.). Архивировано 28 июня 2018 года. Дата обращения 28 июня 2018.
- ↑ Let's Encrypt Root Trusted By All Major Root Programs. Дата обращения: 9 августа 2018. Архивировано 6 августа 2018 года.
- ↑ Теперь все основные списки корневых сертификатов доверяют Let's Encrypt. Дата обращения: 9 августа 2018. Архивировано 9 августа 2018 года.
- ↑ Certificates. Let's Encrypt. Архивировано 3 декабря 2015 года.
- ↑ Certificates. Let's Encrypt. Архивировано 9 октября 2017 года.
- ↑ ACME v2 and Wildcard Certificate Support is Live (англ.). Let's Encrypt Community Support. Дата обращения: 16 марта 2018. Архивировано 1 июня 2018 года.
- ↑ Wildcard Certificates Coming January 2018. Дата обращения: 9 июля 2017. Архивировано 8 января 2021 года.
- ↑ Let's Encrypt, Jim Meyering, and Clarissa Lima Borges receive FSF's 2019 Free Software Awards Архивная копия от 18 июля 2021 на Wayback Machine Free Software Foundation, 2020
- ↑ DST Root CA X3 Expiration (англ.). https://letsencrypt.org/ (2021-5-7). Дата обращения: 30 сентября 2021. Архивировано 30 сентября 2021 года.
- ↑ 38,0 38,1 Chris Brook (Threatpost), November 18, 2014: EFF, Others Plan to Make Encrypting the Web Easier in 2015
- ↑ Draft ACME specification. Дата обращения: 12 декабря 2015. Архивировано 21 ноября 2014 года.
- ↑ 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 года.
- ↑ boulder/LICENSE.txt at master · letsencrypt/boulder · GitHub. Дата обращения: 12 декабря 2015. Архивировано 19 марта 2019 года.
- ↑ letsencrypt/LICENSE.txt at master · letsencrypt/letsencrypt · GitHub
- ↑ James Sanders (TechRepublic), November 25, 2014: Let's Encrypt initiative to provide free encryption certificates
Литература
- Richard Barnes, Jacob Hoffman-Andrews, James Kasten, Automatic Certificate Management Environment (ACME) Архивная копия от 28 июня 2020 на Wayback Machine // IETF, Active Internet-Drafts, 21 jul 2015 (англ.)
Ссылки
- letsencrypt.org — официальный сайт Let’s Encrypt
- Проекты Let’s Encrypt на GitHub
- Seth Schoen’s Libre Planet 2015 lecture on Let’s Encrypt (англ.)
- Technical introduction, David Wong
- pde’s talk on Let’s Encrypt, CCCamp 2015 (англ.)
- List of certificates issued by Let’s Encrypt Архивная копия от 8 сентября 2018 на Wayback Machine (англ.)