Let's Encrypt
Let's Encrypt — центр сертифікації, який почав роботу в бета-режимі з 3 грудня 2015 року[3], що надає безкоштовні криптографічні сертифікати X. 509 для TLS-шифрування (HTTPS) строком на 3 місці. Процес видачі сертифікатів повністю автоматизований[4][5].
Let's Encrypt | |
---|---|
Гасло | Encrypt the entire web |
Тип |
Акредитований центр сертифікації ключів неприбуткова організація |
Засновник | |
Засновано | 12 квітня 2016 |
Мета | X.509 certificate authority |
Галузь | Криптографія |
Штаб-квартира | Сан-Франциско, Каліфорнія, США |
37.800322° пн. ш. 122.449951° зх. д. | |
Материнська організація |
Internet Security Research Group |
Бюджет | 3 600 000 $[1] |
Штат працівників | 8[2] |
Вебсайт | letsencrypt.org |
Let's Encrypt у Вікісховищі | |
|
Завдання
Проект Let's Encrypt створений для того, щоб більша частина інтернет-сайтів змогла перейти до шифрованих з'єднань (HTTPS). На відміну від комерційних центрів сертифікації, в даному проекті не вимагається оплата, переконфігурація веб-серверів, використання електронної пошти, обробка прострочених сертифікатів, що робить процес встановлення та налаштування SSL-шифрування значно більш простим[6]. Наприклад, на типовому веб-сервер на базі Linux потрібно виконати дві команди, які налаштують HTTPS-шифрування, отримають і встановлять сертифікат приблизно за 20-30 секунд[7][8].
Пакет з утилітами автоналаштування і отримання сертифіката включений в офіційні репозитарії дистрибутиву Debian[9]. Розробники браузерів Mozilla і Google мають намір поступово відмовитися від підтримки незашифрованого протоколу HTTP шляхом відмови від підтримки нових веб-стандартів для http-сайтів[10][11]. Проект Let's Encrypt має потенціал щодо переведення більшої частини Інтернету на зашифровані з'єднання[12].
Центр сертифікації Let's Encrypt видає сертифікати Domain-validated certificate з терміном дії 90 днів[13]. Не планується впровадження більш надійних сертифікатів Organization Validation і Extended Validation Certificate[14].
Проект публікує безліч інформації з метою захисту від атак та спроб маніпуляції[15]. Ведеться публічний лог всіх транзакцій ACME, використовуються відкриті стандарти та програми з відкритим вихідним кодом[7].
13 березня 2018 оголошена підтримка «wildcard certificate» (сертифікатів, що включають необмежена кількість субдоменів)[16], раніше запланована на 27 лютого 2018[17].
Учасники
Сервіс Let's Encrypt надається публічно. організацією Internet Security Research Group (ISRG).
Основні спонсори проекту: Electronic Frontier Foundation (EFF), Mozilla Foundation, Akamai, Cisco Systems.
Партнерами проекту є центр сертифікації IdenTrust, University of Michigan (U-Stanford Law School, Linux Foundation[18]; Stephen Kent (з Raytheon/BBN Technologies) і Alex Polvi (з CoreOS)ref name="heise20141119"/>.
Технології
У червні 2015 року був створений кореневий RSA-сертифікат для проекту Let's Encrypt, ключ від якого зберігається в апаратному HSM-модулі, не підключеному до мереж[19]. Цей кореневий сертифікат використовується для підписання двох проміжних сертифікатів, які також були підписані центром IdenTrust[20]. Один з проміжних сертифікатів використовується для виробництва кінцевих сертифікатів сайтів, другий тримається в якості резервного в сховищі, не підключеному до Інтернету, на випадок проблем з першим сертифікатом[19]. Оскільки кореневий сертифікат IdenTrust встановлено в більшості операційних систем і браузерів, як довірений кореневий сертифікат, сертифікати що видаються проектом let's Encrypt проходять перевірку і приймаються клієнтами[21], незважаючи на відсутність кореневого сертифіката ISRG у списку довірених.
Ще в 2015 - початку 2016 року планувалося згенерувати кореневий стандарт з ключем по алгоритму ECDSA, але потім дата була перенесена на 2018[19][22][23].
Протокол аутентифікації сайтів
Для автоматичної видачі сертифіката кінцевого сайту використовується протокол аутентифікації класу «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-з'єднання[24]. Чернетка протоколу опублікована на GitHub[25] і відправлена у Internet Engineering Task Force (IETF) у якості чернетки для інтернет-стандарту[26].
Програмна реалізація
Центр сертифікації використовує сервер ACME-протоколу «Boulder», написаний на мові програмування Go (доступний у вихідних текстах під ліцензією Mozilla Public License 2)[27]. Сервер надає RESTful-протокол, що працює через канал з шифруванням TLS.
Клієнт протоколу ACME, certbot
(раніше letsencrypt
), відкритий під ліцензією Apache[28] і написаний мовою програмування Python. Цей клієнт встановлюється на кінцевому сервері і використовується для запиту сертифіката, проведення валідації домену, інсталяції сертифіката та налаштування HTTPS-шифрування в веб-сервері. Надалі цей клієнт використовується для регулярного перевипуску сертифіката в міру закінчення терміну дії[7][29]. Після установки і прийняття ліцензії досить виконати одну команду для отримання сертифіката. Додатково можуть бути включені опції OCSP stapling і HTTP Strict Transport Security (HSTS, примусове перемикання з HTTP на HTTPS)[24]. Автоматичне налаштування https-сервера доступне для веб-серверів Apache та nginx.
Історія
Проект Let's Encrypt був ініційований в кінці 2012 року двома співробітниками компанії Mozilla, Josh Aas і Eric Rescorla. Компанія Internet Security Research Group була створена в травні 2013 року для управління проектом. У червні 2013 року проекти Electronic Frontier Foundation і University of Michigan були об'єднані в Let's Encrypt[30].
Вперше проект Let's Encrypt був публічно анонсований 18 листопада 2014 року[31].
28 січня 2015 року протокол ACME був відправлений в IETF для прийняття в якості стандарту Інтернету[32].
9 квітня 2015 року ISRG і Linux Foundation оголосили про співпрацю. Кореневий і проміжні сертифікати були створені на початку червня[21].
16 червня 2015 року було оголошено плани по запуску сервісу, перші кінцеві сертифікати були випущені в кінці липня 2015 для тестування безпеки і масштабованості. Широка доступність сервісу планувалася на середину вересня 2015 року[33]. 7 серпня 2015 року плани були зміщені, широкий запуск сервісу був перенесений на середину листопада[34].
Підпис проміжних сертифікатів від IdenTrust був запланований на період початку широкої доступності Let's Encrypt[20].
14 вересня 2015 року було випущено перший кінцевий сертифікат для домену helloworld.letsencrypt.org. У той же день організація ISRG вислала публічний ключ свого кореневого сертифіката для включення в список довірених компаніям Mozilla, Microsoft, Google и Apple[35].
12 листопада 2015 року Let’s Encrypt перенесла широкий запуск в бета-режимі на 3 грудня 2015 року[3].
12 квітня 2016 року оголошено про закінчення періоду бета-тестування[36].
28 червня 2017 року Let's Encrypt заявила про випуск 100-мільйонного сертифіката[37].
7 грудня 2017 оголошено про старт публічного бета-тестування видачі wildcard сертифікатів з 4 січня 2018 року. Планована дата закінчення тестового періоду - 27 лютого 2018 року[38].
Дивись також
- Електронний підпис
- Центр сертифікації
- Самозавірений сертифікат
- Цифровий сертифікат
Примітки
- https://letsencrypt.org/2018/12/31/looking-forward-to-2019.html
- Public Beta: December 3, 2015. 12 листопада 2015.
- Kerner, Sean Michael (18 листопада 2014). Let's Encrypt Effort Aims to Improve Internet Security. eWeek.com. Quinstreet Enterprise. Процитовано 27 лютого 2015.[недоступне посилання]
- Eckersley, Peter (18 листопада 2014). Launching in 2015: A Certificate Authority to Encrypt the Entire Web. Electronic Frontier Foundation. Процитовано 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 / 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
- Zeljka Zorz (Help Net Security), July 6, 2015: Let's Encrypt CA releases transparency report before its first certificate
- ACME v2 and Wildcard Certificate Support is Live. Let's Encrypt Community Support. Процитовано 16 березня 2018.
- Wildcard Certificates Coming January 2018
- Sean Michael Kerner (eweek.com), April 9, 2015: Let's Encrypt Becomes Linux Foundation Collaborative Project
- Aas, Josh (4 червня 2015). Let's Encrypt Root and Intermediate Certificates.
- Reiko Kaps (heise.de), June 17, 2015: SSL-Zertifizierungsstelle Lets Encrypt will Mitte September 2015 öffnen
- Reiko Kaps (heise.de), June 5, 2015: Let's Encrypt: Meilenstein zu kostenlosen SSL-Zertifikaten für alle
- Certificates. Let's Encrypt. Архів оригіналу за 3 грудня 2015.
- Certificates. Let's Encrypt. Архів оригіналу за 9 жовтня 2017.
- 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 (28 січня 2015). Automatic Certificate Management Environment (ACME) draft-barnes-acme-01.
- 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
- Let’s Encrypt | Boom Swagger Boom. Архів оригіналу за 8 грудня 2015. Процитовано 3 квітня 2018.
- Joseph Tsidulko (18 листопада 2014). Let's Encrypt, A Free And Automated Certificate Authority, Comes Out Of Stealth Mode. crn.com (англ.). Процитовано 26 серпня 2015.
- History for draft-barnes-acme
- Josh Aas (16 червня 2015). Let's Encrypt Launch Schedule. letsencrypt.org. Let's Encrypt. Процитовано 19 червня 2015.
- Updated Let's Encrypt Launch Schedule. 7 серпня 2015.
- Michael Mimoso. First Let’s Encrypt Free Certificate Goes Live. Threatpost.com, Kaspersky Labs. Процитовано 16 вересня 2015.
- Let’s Encrypt Leaves Beta. 15 квітня 2016. Процитовано 25 січня 2018.
- Milestone: 100 Million Certificates Issued - Let's Encrypt - Free SSL/TLS Certificates. letsencrypt.org. Процитовано 25 січня 2018.
- Looking Forward to 2018 - Let's Encrypt - Free SSL/TLS Certificates. letsencrypt.org. Процитовано 25 січня 2018.
Література
- Richard Barnes, Jacob Hoffman-Andrews, James Kasten, Automatic Certificate Management Environment (ACME) // IETF, Active Internet-Drafts, 21 jul 2015(англ.)
Посилання
- Офіційний сайт
- Проекты 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(англ.)