OpenSSL

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск
OpenSSL
OpenSSL logo.png
Тип

библиотека функций

Разработчик

The OpenSSL Project

Написана на

Си и Ассемблер

Операционная система

кроссплатформенное программное обеспечение

Последняя версия

1.1.0b (26 сентября 2016)[1]

Лицензия

OpenSSL License, SSLeay License

Сайт

openssl.org

Commons-logo.svg OpenSSL на Викискладе

OpenSSL — криптографический пакет с открытым исходным кодом для работы с SSL/TLS. Позволяет создавать ключи RSA, DH, DSA и сертификаты X.509, подписывать их, формировать CSR и CRT. Также имеется возможность шифрования данных и тестирования SSL/TLS соединений.

Доступна для большинства UNIX-подобных операционных систем (включая Solaris/OpenSolaris, Linux, Mac OS X, QNX4[2], QNX6 и четырёх операционных систем BSD с открытым исходным кодом), а также для OpenVMS и Microsoft Windows.

OpenSSL основана на SSLeay, написанной Эриком Янгом (Eric A. Young) и Тимом Хадсоном (Tim Hudson), которые неофициально закончили работать над ней в декабре 1998 года, когда они начали работать в проекте RSA Security.

Основные релизы[править | править вики-текст]

История релизов OpenSSL[3]
Версия Дата релиза Комментарий
0.9.1c 23 декабря 1998 года
0.9.2c 22 марта 1999 года
  • Преемник 0.9.1c
0.9.3 25 мая 1999 года
  • Преемник 0.9.2b
0.9.4 9 августа 1999 года
  • Преемник 0.9.3a
0.9.5 28 февраля 2000 года
  • Преемник 0.9.4
0.9.6 25 сентября 2000 года
  • Преемник 0.9.5a
0.9.7 31 декабря 2002 года
  • Преемник 0.9.6h
0.9.8 5 июля 2005 года
  • Преемник 0.9.8za (5 июня 2014)
1.0.0 29 марта 2010 года
  • Преемник 0.9.8x
1.0.1 14 марта, 2012 года
  • Преемник 1.0.0e
  • Поддерживает TLS v1.2
  • Поддержка SRP
1.0.1k 8 января, 2015 года CVE-2014-3572, CVE-2015-0204, CVE-2015-0205
1.0.2 22 января 2015 года
  • Текущий релиз [4][5]
  • Поддержка DTLS 1.2|
1.1.0 25 августа 2016 года

Алгоритмы[править | править вики-текст]

OpenSSL поддерживает разные алгоритмы шифрования и хеширования:

Симметричные
Blowfish, Camellia, DES, RC2, RC4, RC5, IDEA, AES, ГОСТ 28147-89[6]
Хеш-функции
MD5, MD2, SHA, MDC-2, ГОСТ Р 34.11-94[6]
Асимметричные
RSA, DSA, Diffie-Hellman key exchange, ГОСТ Р 34.10-2001 (34.10-94)[6]

Поддержка алгоритмов ГОСТ появилась в версии 1.0.0, выпущенной 29 марта 2010 года, и была реализована сотрудниками фирмы «Криптоком»[7].

Полезные команды 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 -noout -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-запросом.[18] В списке CVE она значится под номером CVE-2014-0160.

Уязвимость существует с 31 декабря 2011 года; уязвимый код был распространён с выпуском версии OpenSSL 1.0.1 14 марта 2012 года. Читая оперативную память веб-сервера, атакующий может получить доступ к конфиденциальной информации как сервера, так и пользователей, позволяя перехватить приватные ключи, cookies и пароли. На момент объявления около 17 % из полумиллиона защищённых веб-серверов предполагались уязвимыми.

Форки[править | править вики-текст]

LibreSSL[править | править вики-текст]

После обнаружения уязвимости Heartbleed разработчики проекта OpenBSD объявили о создании форка OpenSSL на основе ветки 1.0.1g под названием LibreSSL[8]. Акцент разработчиков сделан на устранение ошибок, удаление излишней функциональности, повышение защищённости и повышение читаемости кода.

BoringSSL[править | править вики-текст]

В июле 2014 компания Google анонсировала собственный форк OpenSSL под названием BoringSSL[9]. Google намеревается сотрудничать и обмениваться патчами с разработчиками OpenSSL и LibreSSL.

Примечания[править | править вики-текст]

  1. OpenSSL version 1.1.0b published
  2. OpenSSL для QNX4 (рус.). СВД Встраиваемые Системы. Архивировано из первоисточника 10 февраля 2012.
  3. OpenSSL - Project Newsflash. OpenSSL Software Foundation. Проверено 25 ноября 2012. Архивировано из первоисточника 26 февраля 2013.
  4. OpenSSL 1.x Changelog. OpenSSL Software Foundation. Проверено 25 ноября 2012. Архивировано из первоисточника 26 февраля 2013.
  5. OpenSSL 1.0.2 Changelog. OpenNET. Проверено 26 января 2012.
  6. 1 2 3 GOST engine для OpenSSL 1.0
  7. Поддержка ГОСТ в разрабатываемой версии OpenSSL 1.0.0 на сайте фирмы «Криптоком».
  8. Проект OpenBSD представил LibreSSL, форк OpenSSL. OpenNET. Проверено 26 ноября 2015.
  9. Компания Google представила BoringSSL, форк OpenSSL. OpenNET. Проверено 26 ноября 2015.

Ссылки[править | править вики-текст]