Let's Encrypt
Let's Encrypt | |
---|---|
Гасло | Encrypt the entire web |
Тип | акредитований центр сертифікації ключів неприбуткова організація |
Засновник | |
Засновано | 12 квітня 2016 |
Мета | X.509 certificate authority |
Галузь | криптографія |
Країна | США |
Штаб-квартира | Сан-Франциско, Каліфорнія, США |
37°48′01″ пн. ш. 122°27′00″ зх. д. / 37.800322° пн. ш. 122.449951° зх. д. | |
Продукція | X.509 |
Штат працівників | 8[1] |
Материнська організація | Internet Security Research Group |
Бюджет | 3 600 000 $ (2019) |
Вебсайт: letsencrypt.org | |
Let's Encrypt у Вікісховищі |
Ця стаття містить текст, що не відповідає енциклопедичному стилю. (травень 2018) |
Let's Encrypt — центр сертифікації, який почав роботу в бета-режимі з 3 грудня 2015 року[3], що надає безкоштовні криптографічні сертифікати X. 509 для TLS-шифрування (HTTPS) строком на 3 місці. Процес видачі сертифікатів повністю автоматизований[4][5].
Проект 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[en] з терміном дії 90 днів[13]. Не планується впровадження більш надійних сертифікатів Organization Validation і Extended Validation Certificate[en][14].
Проект публікує безліч інформації з метою захисту від атак та спроб маніпуляції[15]. Ведеться публічний лог всіх транзакцій ACME, використовуються відкриті стандарти та програми з відкритим вихідним кодом[7].
13 березня 2018 оголошена підтримка «wildcard certificate» (сертифікатів, що включають необмежена кількість субдоменів)[16], раніше запланована на 27 лютого 2018[17].
Сервіс Let's Encrypt надається публічно. організацією Internet Security Research Group[en] (ISRG).
Основні спонсори проекту: Electronic Frontier Foundation (EFF), Mozilla Foundation, Akamai, Cisco Systems.
Партнерами проекту є центр сертифікації IdenTrust[en], University of Michigan (U-Stanford Law School, Linux Foundation[18]; Stephen Kent (з Raytheon/BBN Technologies[en]) і Alex Polvi (з CoreOS)[7].
У червні 2015 року був створений кореневий RSA-сертифікат для проекту Let's Encrypt, ключ від якого зберігається в апаратному HSM[en]-модулі, не підключеному до мереж[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].
- Електронний підпис
- Центр сертифікації
- Самозавірений сертифікат
- Цифровий сертифікат
- ↑ Aas, Josh (20 вересня 2016). What It Costs to Run Let's Encrypt. Let's Encrypt (англ.). Процитовано 12 грудня 2017.
- Richard Barnes, Jacob Hoffman-Andrews, James Kasten, Automatic Certificate Management Environment (ACME) [Архівовано 28 червня 2020 у Wayback Machine.] // 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 [Архівовано 8 вересня 2018 у Wayback Machine.](англ.)