OpenSSL
OpenSSL | |||
---|---|---|---|
![]() | |||
![]() | |||
Тип | библиотека функций, шифрующее программное обеспечение и утилита | ||
Разработчики | Richard Levitte[вд][2], Stephen Henson[вд], Matt Caswell[вд] и Hugo Landau[вд] | ||
Написана на | Си[3], язык ассемблера и Perl | ||
Операционные системы | GNU/Linux[4], GNU/Hurd[вд][4], BSD[вд][4], macOS[4] и Windows[4] | ||
Первый выпуск | 1998 | ||
Последняя версия | |||
Репозиторий | github.com/openssl/opens… | ||
| |||
| |||
Лицензия | Apache License 2.0[5] | ||
Сайт | openssl.org (англ.) | ||
![]() |
OpenSSL — полноценная криптографическая библиотека с открытым исходным кодом, широко известна из-за расширения SSL/TLS, используемого в веб-протоколе HTTPS.
Поддерживает почти все низкоуровневые алгоритмы хеширования, шифрования и электронной подписи, а также реализует большинство популярных криптографических стандартов, в том числе позволяет создавать ключи RSA, DH, DSA, сертификаты X.509, подписывать их, формировать CSR (Certificate Signing Request) и CRT (файл сертификата безопасности), шифровать данные и тестировать SSL/TLS соединения.
Доступна в виде пакетов для большинства UNIX-подобных операционных систем (включая Solaris/OpenSolaris, Linux, macOS, QNX4[6], QNX6 и четырёх операционных систем BSD с открытым исходным кодом), а также для OpenVMS и Microsoft Windows.
OpenSSL основана на SSLeay, написанной Эриком Янгом (Eric A. Young) и Тимом Хадсоном (Tim Hudson), которые неофициально закончили работать над ней в декабре 1998 года, когда начали работу в проекте RSA Security.
Основные релизы
Версия | Дата релиза | Комментарий |
---|---|---|
0.9.1c | 23 декабря 1998 года | |
0.9.2c | 22 марта 1999 года |
|
0.9.3 | 25 мая 1999 года |
|
0.9.4 | 9 августа 1999 года |
|
0.9.5 | 28 февраля 2000 года |
|
0.9.6 | 25 сентября 2000 года |
|
0.9.7 | 31 декабря 2002 года |
|
0.9.8 | 5 июля 2005 года |
|
1.0.0 | 29 марта 2010 года |
|
1.0.1 | 14 марта, 2012 года |
|
1.0.1k | 8 января, 2015 года | CVE-2014-3572, CVE-2015-0204, CVE-2015-0205 |
1.0.2 | 22 января 2015 года |
|
1.1.0 | 25 августа 2016 года | |
1.1.0g | 2 ноября 2017 года | |
1.1.1 | 11 сентября 2018 года |
|
1.1.1a | 20 ноября 2018 года |
|
1.1.1b | 26 февраля 2019 года |
|
1.1.1c | 28 мая 2019 года |
|
Алгоритмы
Поддержка алгоритмов ГОСТ появилась в версии 1.0.0, выпущенной 29 марта 2010 года, и была реализована сотрудниками фирмы «Криптоком»[14].
Полезные команды openssl
- Создание ключа для SSL-сертификата. Если не указывать "-des3", то он будет без пароля:
# openssl genrsa -des3 -out example.com.key 2048
В случае утери пароля или файла ключа придется пересоздавать сертификат.
- Генерация CSR-запроса:
# openssl req -new -key example.com.key -out example.com.csr
Имя домена на который создаётся запрос прописывается в "Common Name - example.com", "A challenge password" и "An optional company name" вводить не нужно (просто нажимаем Enter).
- Убрать пароль с ключа (необходимо когда сертификат ставится в конфигурацию Apache, иначе он при запуске будет просить пароль):
# openssl rsa -in example.com.key -out example.com-nopass.key - passin stdin
и вводим пароль с консоли (либо - "passin pass: supersecretpassword" что считается менее безопасным)
- Прочитать содержимое CSR-файла в более удобном для чтения текстовом виде:
# openssl req -no out - text -in example.com.csr
Выявленные уязвимости
Уязвимость в реализации дистрибутива Debian
В Debian версии 0.9.8c-1 к OpenSSL был применён патч, преднамеренно повреждавший генератор случайных чисел. Эта версия OpenSSL была включена в релиз Debian 17 сентября 2006. Все ключи, сгенерированные через эту версию генератора, и все данные, зашифрованные такими ключами, могут считаться скомпрометированными. Проблема была исправлена в версии 0.9.8c-4etch3 дистрибутива Debian 4.0; в версии 0.9.8g-9 дистрибутива Debian 5.0.
Heartbleed bug
7 апреля 2014 года было объявлено о критической уязвимости OpenSSL 1.0.2-beta и всех версий OpenSSL 1.0.1, кроме 1.0.1g. Уязвимость связана с расширением TLS Heartbeat и позволяет считывать до 64Кб оперативной памяти приложения с каждым heartbeat-запросом. В списке CVE она значится под номером CVE-2014-0160.
Уязвимость существует с 31 декабря 2011 года; уязвимый код был распространён с выпуском версии OpenSSL 1.0.1 14 марта 2012 года. Читая оперативную память веб-сервера, атакующий может получить доступ к конфиденциальной информации как сервера, так и пользователей, позволяя перехватить приватные ключи, cookies и пароли. На момент объявления около 17 % из полумиллиона защищённых веб-серверов предполагались уязвимыми.
Форки
LibreSSL
После обнаружения уязвимости Heartbleed разработчики проекта OpenBSD объявили о создании форка OpenSSL на основе ветки 1.0.1g под названием LibreSSL[15]. Акцент разработчиков сделан на устранении ошибок, удалении излишней функциональности, повышении защищённости и читаемости кода.
BoringSSL
В июле 2014 компания Google анонсировала собственный форк OpenSSL под названием BoringSSL[16]. Google намеревается сотрудничать и обмениваться патчами с разработчиками OpenSSL и LibreSSL.
Примечания
- ↑ OpenSSL version 3.3.1 published — 2024.
- ↑ https://github.com/openssl/openssl/graphs/contributors?type=a
- ↑ The openssl Open Source Project on Open Hub: Languages Page — 2006.
- ↑ 1 2 3 4 5 Free Software Directory
- ↑ Change license to the Apache License v2.0 · openssl/openssl@1513331 · GitHub
- ↑ OpenSSL для QNX4 (рус.). СВД Встраиваемые Системы. Архивировано из оригинала 10 февраля 2012 года.
- ↑ OpenSSL - Project Newsflash (неопр.). OpenSSL Software Foundation. Дата обращения: 25 ноября 2012. Архивировано из оригинала 26 февраля 2013 года.
- ↑ r. r (неопр.). Дата обращения: 14 ноября 2019. Архивировано 29 сентября 2019 года.
- ↑ OpenSSL 1.x Changelog (неопр.). OpenSSL Software Foundation. Дата обращения: 25 ноября 2012. Архивировано из оригинала 26 февраля 2013 года.
- ↑ OpenSSL 1.0.2 Changelog (неопр.). OpenNET. Дата обращения: 26 января 2012. Архивировано 19 марта 2015 года.
- ↑ OpenSSL Foundation, Inc. OpenSSL 1.1.1 Is Released - OpenSSL Blog (англ.). www.openssl.org. Дата обращения: 12 сентября 2018. Архивировано 15 сентября 2018 года.
- ↑ Changes between 1.1.1 and 1.1.1a (неопр.). Дата обращения: 8 января 2019. Архивировано 13 сентября 2016 года.
- ↑ 1 2 3 GOST engine для OpenSSL 1.0
- ↑ Поддержка ГОСТ в разрабатываемой версии OpenSSL 1.0.0 Архивировано 11 февраля 2011 года. на сайте фирмы «Криптоком».
- ↑ Проект OpenBSD представил LibreSSL, форк OpenSSL (неопр.). OpenNET. Дата обращения: 26 ноября 2015. Архивировано 20 ноября 2015 года.
- ↑ Компания Google представила BoringSSL, форк OpenSSL (неопр.). OpenNET. Дата обращения: 26 ноября 2015. Архивировано 8 декабря 2015 года.
Ссылки
- OpenSSL.org Архивная копия от 14 апреля 2014 на Wayback Machine
- Win32 версия OpenSSL Архивная копия от 23 сентября 2016 на Wayback Machine, slproweb.com
- Win64 версия OpenSSL Архивная копия от 23 сентября 2016 на Wayback Machine, slproweb.com
- IA64, Alpha, VAX версия OpenSSL для OpenVMS Архивная копия от 12 марта 2014 на Wayback Machine, polarhome.com
- статья «Использование OpenSSL» Архивная копия от 19 января 2009 на Wayback Machine, opennet.ru
- Перевод на русский некоторых команд OpenSSL, omsk.lug.ru
- OpenSSL на Xgu.ru Архивная копия от 13 октября 2010 на Wayback Machine — перевод OpenSSL Command Line HOWTO на русский язык