Координати: 37°48′01″ пн. ш. 122°27′00″ зх. д. / 37.800322° пн. ш. 122.449951° зх. д. / 37.800322; -122.449951

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">[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-0">↑ https://letsencrypt.org/2018/12/31/looking-forward-to-2019.html
  • а б Public Beta: December 3, 2015. 12 листопада 2015. Архів оригіналу за 7 квітня 2018. Процитовано 3 квітня 2018.
  • 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]
  • Eckersley, Peter (18 листопада 2014). Launching in 2015: A Certificate Authority to Encrypt the Entire Web. Electronic Frontier Foundation. Архів оригіналу за 18 листопада 2018. Процитовано 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
  • 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. Архів оригіналу за 1 червня 2018. Процитовано 16 березня 2018.
  • Wildcard Certificates Coming January 2018. Архів оригіналу за 8 січня 2021. Процитовано 3 квітня 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. Архів оригіналу за 3 грудня 2015. Процитовано 3 квітня 2018.
  • а б 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. Архів оригіналу за 21 листопада 2014. Процитовано 3 квітня 2018.
  • 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.
  • boulder/LICENSE.txt at master · letsencrypt/boulder · GitHub. Архів оригіналу за 19 березня 2019. Процитовано 3 квітня 2018.
  • 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. [Архівовано 2015-12-08 у Wayback Machine.]
  • Joseph Tsidulko (18 листопада 2014). Let's Encrypt, A Free And Automated Certificate Authority, Comes Out Of Stealth Mode. crn.com (англ.). Архів оригіналу за 12 червня 2018. Процитовано 26 серпня 2015.
  • History for draft-barnes-acme
  • Josh Aas (16 червня 2015). Let's Encrypt Launch Schedule. letsencrypt.org. Let's Encrypt. Архів оригіналу за 26 травня 2018. Процитовано 19 червня 2015.
  • Updated Let's Encrypt Launch Schedule. 7 серпня 2015. Архів оригіналу за 27 вересня 2015. Процитовано 3 квітня 2018.
  • Michael Mimoso. First Let’s Encrypt Free Certificate Goes Live. Threatpost.com, Kaspersky Labs. Архів оригіналу за 12 червня 2018. Процитовано 16 вересня 2015.
  • Let’s Encrypt Leaves Beta. 15 квітня 2016. Архів оригіналу за 15 квітня 2016. Процитовано 25 січня 2018. [Архівовано 2016-04-15 у Wayback Machine.]
  • Milestone: 100 Million Certificates Issued - Let's Encrypt - Free SSL/TLS Certificates. letsencrypt.org. Архів оригіналу за 12 травня 2018. Процитовано 25 січня 2018.
  • Looking Forward to 2018 - Let's Encrypt - Free SSL/TLS Certificates. letsencrypt.org. Архів оригіналу за 22 січня 2018. Процитовано 25 січня 2018.
  • Література

    [ред. | ред. код]

    Посилання

    [ред. | ред. код]