
Библиотека криптографии общего назначения, реализующая протоколы SSL/TLS, симметричные и асимметричные шифры, дайджесты сообщений, а также обработку сертификатов X.509 для защищённой связи и шифрования данных.
OpenSSL 1.0.1g 7 Apr 2014
Copyright (c) 1998-2011 The OpenSSL Project Copyright (c) 1995-1998 Eric A. Young, Tim J. Hudson Все права защищены.
Проект OpenSSL — это совместная работа по разработке надёжного, готового к коммерческому использованию, полнофункционального инструментария с открытым исходным кодом, реализующего протоколы Secure Sockets Layer (SSL v2/v3) и Transport Layer Security (TLS v1), а также полноценную криптографическую библиотеку общего назначения. Проект управляется всемирным сообществом добровольцев, которые через Интернет общаются, планируют и развивают инструментарий OpenSSL и связанную с ним документацию.
OpenSSL основан на превосходной библиотеке SSLeay, разработанной Эриком А. Янгом (Eric A. Young) и Тимом Дж. Хадсоном (Tim J. Hudson). Инструментарий OpenSSL распространяется на условиях двойной лицензии (лицензия OpenSSL плюс лицензия SSLeay), что по сути означает, что вы можете свободно получать и использовать его в коммерческих и некоммерческих целях при условии выполнения требований обеих лицензий.
Инструментарий OpenSSL включает:
libssl.a: Реализация SSLv2, SSLv3, TLSv1 и кода, необходимого для поддержки SSLv2, SSLv3 и TLSv1 одновременно на одном сервере и клиенте.
libcrypto.a: Различные средства шифрования общего назначения и X.509 v1/v3, необходимые для SSL/TLS, но логически не являющиеся его частью. Библиотека включает процедуры для следующего:
Шифры
libdes — пакет DES-шифрования libdes авторства EAY, который
несколько лет ходил по сети, а затем был перелицензирован
им как часть SSLeay. Он включает 15 «режимов/вариантов»
DES (версии с 1, 2 и 3 ключами для ecb, cbc, cfb и ofb;
pcbc и более общая форма cfb и ofb), включая desx в режиме
cbc, быстрый crypt(3) и процедуры чтения паролей
с клавиатуры.
Шифрование RC4,
Шифрование RC2 — 4 различных режима: ecb, cbc, cfb и ofb.
Шифрование Blowfish — 4 различных режима: ecb, cbc, cfb и ofb.
Шифрование IDEA — 4 различных режима: ecb, cbc, cfb и ofb.
Дайджесты
Алгоритмы дайджестов сообщений MD5 и MD2 — быстрые реализации,
алгоритмы дайджестов сообщений SHA (SHA-0) и SHA-1,
дайджест сообщения MDC2. Хеш на основе DES, популярный на смарт-картах.
Открытый ключ
Шифрование/дешифрование/генерация RSA.
Количество бит не ограничено.
Шифрование/дешифрование/генерация DSA.
Количество бит не ограничено.
Обмен ключами/генерация ключей Diffie-Hellman.
Количество бит не ограничено.
Сертификаты X.509v3
Кодирование/декодирование X509 в/из двоичного ASN1 и
ASCII-двоичное кодирование на основе PEM, поддерживающее
шифрование с помощью закрытого ключа. Программа для генерации
запросов на сертификаты RSA и DSA, а также для генерации
самих сертификатов RSA и DSA.
Системы
Стандартные процедуры цифровых конвертов и кодирование base64.
Доступ к шифрам и дайджестам более высокого уровня по имени.
Новые шифры могут загружаться во время выполнения. Система
ввода-вывода BIO — простая абстракция неблокирующего ввода-вывода.
Поддерживаемые в настоящее время методы: файловые дескрипторы,
сокеты, accept и connect сокетов, буфер в памяти, буферизация,
SSL-клиент/сервер, файловый указатель, шифрование, дайджест,
тестирование неблокирующего режима и null.
Структуры данных
Динамически расширяемая хеш-система
Простой стек.
Загрузчик конфигурации, использующий формат, аналогичный MS .ini-файлам.
openssl: Инструмент командной строки, который можно использовать для: Создания параметров ключей RSA, DH и DSA Создания сертификатов X.509, CSR и CRL Вычисления дайджестов сообщений Шифрования и дешифрования с помощью шифров Тестирования SSL/TLS-клиентов и серверов Обработки подписанной или зашифрованной почты S/MIME
Различные компании владеют различными патентами на различные алгоритмы в различных странах мира. ВЫ несёте ответственность за обеспечение законности использования любых алгоритмов — проверьте, нет ли патентов в вашей стране. В этом файле перечислены некоторые патенты, о которых мы знаем или которые, по слухам, существуют. Это не исчерпывающий список.
Компания RSA Security владеет программными патентами на алгоритм RC5. Если вы намерены использовать этот шифр, свяжитесь с RSA Security для получения условий лицензирования. Их веб-страница: http://www.rsasecurity.com/.
RC4 является товарным знаком компании RSA Security, поэтому этот ярлык, вероятно, следует использовать только с разрешения RSA Security.
Алгоритм IDEA запатентован компанией Ascom в Австрии, Франции, Германии, Италии, Японии, Нидерландах, Испании, Швеции, Швейцарии, Великобритании и США. С ними следует связаться, если планируется использовать этот алгоритм; их веб-страница: http://www.ascom.ch/.
Компании NTT и Mitsubishi владеют патентами и поданными заявками на патенты на алгоритм Camellia, но разрешают использовать его бесплатно без требования явного лицензионного соглашения: http://info.isl.ntt.co.jp/crypt/eng/info/chiteki.html
Чтобы установить этот пакет в Unix-подобной системе, прочитайте файл INSTALL. Для платформы Win32 прочитайте файл INSTALL.W32. Для систем OpenVMS прочитайте INSTALL.VMS.
Прочитайте документацию в каталоге doc/. Она довольно сырая, но в ней перечислены функции; вам, вероятно, придётся изучить код, чтобы понять, как их использовать. Посмотрите на примеры программ.
Для некоторых платформ существуют известные проблемы, которые могут затронуть пользователя или автора приложений. Мы стараемся собрать их в doc/PROBLEMS вместе с текущими соображениями о том, как их следует решать в будущих версиях OpenSSL.
Сведения о том, как получить коммерческую техническую поддержку, смотрите на веб-сайте OpenSSL www.openssl.org.
Если у вас возникли проблемы с OpenSSL, сначала выполните следующие действия:
- Загрузите текущий снимок с ftp://ftp.openssl.org/snapshot/,
чтобы проверить, не устранена ли уже эта проблема
- Удалите ASM-версии библиотек
- Уберите флаги оптимизации компилятора
Если вы хотите сообщить об ошибке, пожалуйста, включите в любой отчёт об ошибке следующую информацию:
- В Unix-системах:
Отчёт о самотестировании, созданный командой «make report»
- В других системах:
Версия OpenSSL: вывод команды «openssl version -a»
Название ОС, версия, аппаратная платформа
Сведения о компиляторе (название, версия)
- Сведения о приложении (название, версия)
- Описание проблемы (шаги для воспроизведения проблемы, если они известны)
- Трассировка стека (если приложение создаёт дамп ядра)
Сообщите об ошибке проекту OpenSSL через систему Request Tracker (http://www.openssl.org/support/rt.html) по электронной почте:
[email protected]
Обратите внимание: request tracker НЕ следует использовать для общих запросов о помощи или поддержке. То, что что-то работает не так, как вы ожидаете, не обязательно означает, что это ошибка в OpenSSL.
Обратите внимание: письма на [email protected] записываются в общедоступную базу данных request tracker и пересылаются в открытый список рассылки. Конфиденциальные письма можно отправлять на [email protected] (PGP-ключ доступен на серверах ключей).