OpenSSL

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

Библиотека

Разработчик

The OpenSSL Project

Написана на

C

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

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

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

1.0.2a[1] (19 марта 2015)

Лицензия

OpenSSL License, SSLeay License

Сайт

openssl.org

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 0.9.3 релиз 25 мая 1999 г.
  • OpenSSL 0.9.4 релиз 9 августа 1999 г.
  • OpenSSL 0.9.5 релиз 28 февраля 2000 г.
  • OpenSSL 0.9.6 релиз 25 сентября 2000 г.
  • OpenSSL 0.9.7 релиз 31 декабря 2002 г.
  • OpenSSL 0.9.8 релиз 5 июля 2005 г.
  • OpenSSL 1.0.0 релиз 29 марта 2010 г.
  • OpenSSL 1.0.1 с поддержкой TLS 1.2 релиз 14 марта 2012 г.
  • OpenSSL 1.0.1 d релиз 5 февраля 2013 г.
  • OpenSSL 1.0.1e релиз 11 февраля 2013 г.
  • OpenSSL 1.0.1f релиз 6 января 2014 г.
  • OpenSSL 1.0.1g релиз 7 апреля 2014 г.
  • OpenSSL 1.0.1h релиз 5 июня 2014 г.
  • OpenSSL 1.0.1i релиз 6 августа 2014 г.
  • OpenSSL 1.0.1j релиз 14 октября 2014 г.
  • OpenSSL 1.0.1k релиз 8 января 2015 г. (CVE-2014-3572, CVE-2015-0204, CVE-2015-0205)
  • OpenSSL 1.0.2 релиз 22 января 2015 г.
История релизов 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.2 22 января 2015 года
  • Текущий релиз [4][5]
  • Поддержка DTLS 1.2

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

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 % из полумиллиона защищённых веб-серверов предполагались уязвимыми.

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

  1. Project Newsflash (англ.).
  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.0
  7. Поддержка ГОСТ в разрабатываемой версии OpenSSL 1.0.0 на сайте фирмы «Криптоком».

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