Let’s Encrypt
Let’s Encrypt — центр сертификации, предоставляющий бесплатные криптографические сертификаты X.509 для шифрования передаваемых через интернет данных HTTPS и других протоколах, используемых серверами в Интернете. Процесс выдачи сертификатов полностью автоматизирован[3][4].
Let's Encrypt | |
---|---|
![]() | |
![]() | |
Административный центр | |
Адрес | Сан-Франциско, США |
Тип организации | Центр сертификации и некоммерческая организация |
Основание | |
Дата основания | 2014 |
Отрасль | криптография |
Продукция | Центр сертификации X.509 |
Число сотрудников | |
Материнская организация | Internet Security Research Group |
Сайт | letsencrypt.org |
![]() |
Сервис предоставляется публичной организацией 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].
По статистике Let's Encrypt на август 2021 зарегистрировано 1930558 сертификатов и 2527642 полноопределённых активных доменов. А число сертификатов Let's Encrypt Certificates, выпускаемых в сутки — превышает 2,5 млн.[14]
Проект публикует множество информации с целью защиты от атак и попыток манипуляции[15]. Ведётся публичный лог всех транзакций 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[16]; 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[17].
Впервые проект Let’s Encrypt был публично анонсирован 18 ноября 2014 года[18].
28 января 2015 года протокол ACME был отправлен в IETF для принятия в качестве стандарта Интернета[19].
9 апреля 2015 года ISRG и Linux Foundation объявили о сотрудничестве[16].
В начале июня 2015 года был создан корневой сертификат RSA для проекта Let’s Encrypt[20][21]. Тогда же были созданы промежуточные сертификаты[20].
16 июня 2015 года были объявлены планы по запуску сервиса, первые конечные сертификаты были выпущены в конце июля 2015 года для тестирования безопасности и масштабируемости. Широкая доступность сервиса планировалась на середину сентября 2015 года[22]. 7 августа 2015 года планы были сдвинуты, широкий запуск сервиса был перенесён на середину ноября[23].
Подпись промежуточных сертификатов от IdenTrust была запланирована на период начала широкой доступности Let’s Encrypt[24].
14 сентября 2015 года был выпущен первый конечный сертификат для домена helloworld.letsencrypt.org. В тот же день организация ISRG выслала публичный ключ своего корневого сертификата для включения в список доверенных компаниям Mozilla, Microsoft, Google и Apple[25].
12 ноября 2015 года Let’s Encrypt перенесла широкий запуск в бета-режиме на 3 декабря 2015 года[26].
Центр сертификации Let’s Encrypt начал работать в бета-режиме 3 декабря 2015 года[26].
12 апреля 2016 года объявлено об окончании периода бета-тестирования[27].
28 июня 2017 года Let’s Encrypt заявила о выпуске 100-миллионного сертификата[28].
7 декабря 2017 объявлено о старте публичного бета-тестирования выдачи wildcard-сертификатов с 4 января 2018 года. Планируемая дата окончания тестового периода — 27 февраля 2018 года[29].
13 марта 2018 года Let’s Encrypt начал выдавать wildcard-сертификаты, теперь каждый может получить бесплатный SSL/TLS-сертификат вида *.example.com.[30][31]
6 августа 2018 года Let’s Encrypt заявила, что с конца июля 2018 года их корневому сертификату ISRG Root X1 доверяют все основные списки корневых сертификатов, включая Microsoft, Google, Apple, Mozilla, Oracle и Blackberry[32][33].
В период конца 2015 — начала 2016 года планировалось сгенерировать корневой сертификат с ключом по алгоритму ECDSA, но потом срок его выпуска был перенесён на 2018 год[21][34][35].
13 марта 2018 года центр поддержки пользователей Let’s Encrypt объявил о возможности создавать «wildcard certificate» (сертификатов, включающих неограниченное множество поддоменов)[36]. Ранее планировалось запустить этот функционал 27 февраля 2018 года[37].
В марте 2020 года Let's Encrypt был удостоен ежегодной премии Free Software Award Фонда свободного программного обеспечения, как проект имеющий социальную значимость[38].
В сентябре 2021 года — переход сертификатов DST Root CA X3 на ISRG Root X1[39].
Технологии
Ключ от корневого сертификата стандарта RSA с 2015 года хранится в аппаратном хранилище HSM (англ. Hardware security module), не подключённом к компьютерным сетям[21]. Этим корневым сертификатом подписаны два промежуточных корневых сертификата[21], которые также были подписаны центром сертификации IdenTrust[24]. Один из промежуточных сертификатов используется для выпуска конечных сертификатов сайтов, второй держится в качестве резервного в хранилище, не подключённом к Интернету, на случай компрометации первого сертификата[21]. Поскольку корневой сертификат центра IdenTrust предустановлен в большинстве операционных систем и браузеров в качестве доверенного корневого сертификата, выдаваемые проектом Let’s Encrypt сертификаты проходят проверку и принимаются клиентами[20], несмотря на отсутствие корневого сертификата 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-соединения[40]. Черновик протокола опубликован на GitHub[41] и отправлен в Internet Engineering Task Force (IETF) в качестве черновика для интернет-стандарта[42].
Протокол ACME описан в документе RFC 8555.
Программная реализация
![](../I/Letsencrypt_screenshot_2_domain_choice.png.webp)
Центр сертификации использует сервер ACME-протокола «Boulder», написанный на языке программирования Go (доступен в исходных текстах под лицензией Mozilla Public License 2)[43]. Сервер предоставляет RESTful-протокол, работающий через канал с шифрованием TLS.
Клиент протокола ACME, certbot
(ранее letsencrypt
) с открытым исходным кодом под лицензией Apache[44] написан на языке Python. Этот клиент устанавливается на конечном сервере и используется для запроса сертификата, проведения валидации домена, инсталляции сертификата и настройки HTTPS-шифрования в веб-сервере. В дальнейшем этот клиент используется для регулярного перевыпуска сертификата по мере окончания срока действия[6][45]. После установки и принятия лицензии достаточно выполнить одну команду для получения сертификата. Дополнительно могут быть включены опции OCSP stapling и HTTP Strict Transport Security (HSTS, принудительное переключение с HTTP на HTTPS)[40]. Автоматическая настройка https-сервера изначально доступна для веб-серверов Apache и nginx.
Примечания
- https://letsencrypt.org/contact/
- https://letsencrypt.org/2016/09/20/what-it-costs-to-run-lets-encrypt.html
- 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.
- Liam Tung (ZDNet), November 19, 2014: EFF, Mozilla to launch free one-click website encryption
- 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.
- Zeljka Zorz (Help Net Security), July 6, 2015: Let's Encrypt CA releases transparency report before its first certificate
- 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.
- History for draft-barnes-acme
- Reiko Kaps (heise.de), June 5, 2015: Let's Encrypt: Meilenstein zu kostenlosen SSL-Zertifikaten für alle
- Aas, Josh Let's Encrypt Root and Intermediate Certificates (4 июня 2015).
- Josh Aas. Let's Encrypt Launch Schedule . letsencrypt.org. Let's Encrypt (16 июня 2015). Дата обращения: 19 июня 2015.
- Updated Let's Encrypt Launch Schedule (7 августа 2015).
- 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.
- Public Beta: December 3, 2015 (12 ноября 2015).
- Let’s Encrypt Leaves Beta (недоступная ссылка) (15 апреля 2016). Дата обращения: 25 января 2018. Архивировано 15 апреля 2016 года.
- Milestone. 100 Million Certificates Issued (англ.). Let's Encrypt. Дата обращения: 25 января 2018.
- Looking Forward to 2018 (англ.). Let's Encrypt. Дата обращения: 25 января 2018.
- ACME v2 and Wildcard Certificate Support is Live (англ.). Let's Encrypt Community Support. Дата обращения: 28 июня 2018.
- Let’s Encrypt начал выдавать wildcard сертификаты (рус.). Дата обращения 28 июня 2018.
- Let's Encrypt Root Trusted By All Major Root Programs
- Теперь все основные списки корневых сертификатов доверяют Let's Encrypt
- 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.
- Wildcard Certificates Coming January 2018
- Let's Encrypt, Jim Meyering, and Clarissa Lima Borges receive FSF's 2019 Free Software Awards Free Software Foundation, 2020
- DST Root CA X3 Expiration (англ.). https://letsencrypt.org/ (2021-5-7).
- Chris Brook (Threatpost), November 18, 2014: EFF, Others Plan to Make Encrypting the Web Easier in 2015
- Draft ACME specification .
- R. Barnes, P. Eckersley, S. Schoen, A. Halderman, J. Kasten. Automatic Certificate Management Environment (ACME) draft-barnes-acme-01 (28 января 2015).
- boulder/LICENSE.txt at master · letsencrypt/boulder · GitHub
- 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) // 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 (англ.)