Let's Encrypt

Let's Encrypt
ГаслоEncrypt the entire web
Типакредитований центр сертифікації ключів
неприбуткова організація
Засновник
Засновано12 квітня 2016; 8 років тому (2016-04-12)
МетаX.509 certificate authority
Галузькриптографія
Країна США
Штаб-квартираСан-Франциско, Каліфорнія, США
37°48′01″ пн. ш. 122°27′00″ зх. д. / 37.800322° пн. ш. 122.449951° зх. д. / 37.800322; -122.449951
ПродукціяX.509
Штат працівників8[1]
Материнська
організація
Internet Security Research Group
Бюджет3 600 000 $ (2019)[2]
Вебсайт: letsencrypt.org

Мапа

CMNS: Let's Encrypt у Вікісховищі

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].

Див. також

Примітки

  1. Aas, Josh (20 вересня 2016). What It Costs to Run Let's Encrypt. Let's Encrypt (англ.). Процитовано 12 грудня 2017.
  2. https://letsencrypt.org/2018/12/31/looking-forward-to-2019.html
  3. а б Public Beta: December 3, 2015. 12 листопада 2015. Архів оригіналу за 7 квітня 2018. Процитовано 3 квітня 2018.
  4. Kerner, Sean Michael (18 листопада 2014). Let's Encrypt Effort Aims to Improve Internet Security. eWeek.com. Quinstreet Enterprise. Архів оригіналу за 19 листопада 2014. Процитовано 27 лютого 2015. [Архівовано 19 листопада 2014 у Archive.is]
  5. Eckersley, Peter (18 листопада 2014). Launching in 2015: A Certificate Authority to Encrypt the Entire Web. Electronic Frontier Foundation. Архів оригіналу за 18 листопада 2018. Процитовано 27 лютого 2015.
  6. Liam Tung (ZDNet), November 19, 2014: EFF, Mozilla to launch free one-click website encryption
  7. а б в г Fabian Scherschel (heise.de), November 19, 2014: Let's Encrypt: Mozilla und die EFF mischen den CA-Markt auf
  8. Rob Marvin (SD Times), November 19, 2014: EFF wants to make HTTPS the default protocol
  9. Подробная информация о пакете certbot в stretch
  10. Richard Barnes (Mozilla), April 30, 2015: Deprecating Non-Secure HTTP
  11. The Chromium Projects – Marking HTTP As Non-Secure
  12. Glyn Moody, November 25, 2014: The Coming War on Encryption, Tor, and VPNs – Time to stand up for your right to online privacy
  13. 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)»
  14. Steven J. Vaughan-Nichols (ZDNet), April 9, 2015: the web once and for all: The Let's Encrypt Project
  15. Zeljka Zorz (Help Net Security), July 6, 2015: Let's Encrypt CA releases transparency report before its first certificate
  16. ACME v2 and Wildcard Certificate Support is Live. Let's Encrypt Community Support. Архів оригіналу за 1 червня 2018. Процитовано 16 березня 2018.
  17. Wildcard Certificates Coming January 2018. Архів оригіналу за 8 січня 2021. Процитовано 3 квітня 2018.
  18. Sean Michael Kerner (eweek.com), April 9, 2015: Let's Encrypt Becomes Linux Foundation Collaborative Project
  19. а б в Aas, Josh (4 червня 2015). Let's Encrypt Root and Intermediate Certificates. Архів оригіналу за 3 грудня 2015. Процитовано 3 квітня 2018.
  20. а б Reiko Kaps (heise.de), June 17, 2015: SSL-Zertifizierungsstelle Lets Encrypt will Mitte September 2015 öffnen
  21. а б Reiko Kaps (heise.de), June 5, 2015: Let's Encrypt: Meilenstein zu kostenlosen SSL-Zertifikaten für alle
  22. Certificates. Let's Encrypt. Архів оригіналу за 3 грудня 2015.
  23. Certificates. Let's Encrypt. Архів оригіналу за 9 жовтня 2017.
  24. а б Chris Brook (Threatpost), November 18, 2014: EFF, Others Plan to Make Encrypting the Web Easier in 2015
  25. Draft ACME specification. Архів оригіналу за 21 листопада 2014. Процитовано 3 квітня 2018.
  26. R. Barnes, P. Eckersley, S. Schoen, A. Halderman, J. Kasten (28 січня 2015). Automatic Certificate Management Environment (ACME) draft-barnes-acme-01. Архів оригіналу за 28 червня 2020. Процитовано 3 квітня 2018.
  27. boulder/LICENSE.txt at master · letsencrypt/boulder · GitHub. Архів оригіналу за 19 березня 2019. Процитовано 3 квітня 2018.
  28. letsencrypt/LICENSE.txt at master · letsencrypt/letsencrypt · GitHub
  29. James Sanders (TechRepublic), November 25, 2014: Let's Encrypt initiative to provide free encryption certificates
  30. Let’s Encrypt | Boom Swagger Boom. Архів оригіналу за 8 грудня 2015. Процитовано 3 квітня 2018. [Архівовано 2015-12-08 у Wayback Machine.]
  31. Joseph Tsidulko (18 листопада 2014). Let's Encrypt, A Free And Automated Certificate Authority, Comes Out Of Stealth Mode. crn.com (англ.). Архів оригіналу за 12 червня 2018. Процитовано 26 серпня 2015.
  32. History for draft-barnes-acme
  33. Josh Aas (16 червня 2015). Let's Encrypt Launch Schedule. letsencrypt.org. Let's Encrypt. Архів оригіналу за 26 травня 2018. Процитовано 19 червня 2015.
  34. Updated Let's Encrypt Launch Schedule. 7 серпня 2015. Архів оригіналу за 27 вересня 2015. Процитовано 3 квітня 2018.
  35. Michael Mimoso. First Let’s Encrypt Free Certificate Goes Live. Threatpost.com, Kaspersky Labs. Архів оригіналу за 12 червня 2018. Процитовано 16 вересня 2015.
  36. Let’s Encrypt Leaves Beta. 15 квітня 2016. Архів оригіналу за 15 квітня 2016. Процитовано 25 січня 2018. [Архівовано 2016-04-15 у Wayback Machine.]
  37. Milestone: 100 Million Certificates Issued - Let's Encrypt - Free SSL/TLS Certificates. letsencrypt.org. Архів оригіналу за 12 травня 2018. Процитовано 25 січня 2018.
  38. Looking Forward to 2018 - Let's Encrypt - Free SSL/TLS Certificates. letsencrypt.org. Архів оригіналу за 22 січня 2018. Процитовано 25 січня 2018.

Література

Посилання