OpenSSL

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

Библиотека

Разработчик

The OpenSSL Project

Написана на

C

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

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

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

1.0.1i (6 августа 2014)

Лицензия

OpenSSL License, SSLeay License

Сайт

openssl.org

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

Доступна для большинства UNIX-подобных операционных систем (включая Solaris/OpenSolaris, Linux, Mac OS X, QNX4[1], 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[2]
Версия Дата релиза Комментарий
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.1i 6 августа 2014 года
  • Текущий релиз [3]

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

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

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

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

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

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

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