
Надёжная библиотека криптографии с открытым исходным кодом, реализующая протоколы 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, разработанной Эриком А. Янгом и Тимом Дж. Хадсоном. Инструментарий OpenSSL распространяется на условиях двойной лицензии ( лицензия OpenSSL плюс лицензия SSLeay), что в основном означает, что вы можете свободно получать и использовать его в коммерческих и некоммерческих целях при условии выполнения требований обеих лицензий.
Инструментарий OpenSSL включает:
libssl.a: Реализация SSLv2, SSLv3, TLSv1 и необходимый код для поддержки как SSLv2, SSLv3, так и TLSv1 в одном сервере и клиенте.
libcrypto.a: Общие средства шифрования и компоненты X.509 v1/v3, необходимые для SSL/TLS, но не являющиеся логической его частью. Она включает процедуры для следующего:
Шифры
libdes - пакет шифрования DES от EAY (libdes), который несколько лет
гулял по сети, а затем был перелицензирован
им в составе 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 и основанной на PEM
ASCII-двоичной кодировки, поддерживающей шифрование
закрытым ключом. Программа для генерации запросов на сертификаты RSA и DSA
и для генерации сертификатов RSA и DSA.
Системы
Обычные процедуры цифровых конвертов и кодировка base64. Более
высокоуровневый доступ к шифрам и дайджестам по имени. Новые шифры можно
загружать во время выполнения. Система ввода-вывода BIO, представляющая собой простое неблокирующее
абстрагирование ввода-вывода. Поддерживаемые методы: файловые дескрипторы,
сокеты, принятие сокетов, подключение сокетов, буфер памяти, буферизация, 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) по почте:
Обратите внимание, что request tracker НЕ следует использовать для общей помощи или вопросов поддержки. Тот факт, что что-то работает не так, как вы ожидаете, не обязательно означает, что это ошибка в OpenSSL.
Обратите внимание, что почта, отправленная на [email protected], записывается в общедоступную базу данных request tracker и пересылается в публичный список рассылки. Конфиденциальную почту можно отправлять на [email protected] (PGP-ключ доступен на серверах ключей).
Разработка координируется в списке рассылки openssl-dev (см. http://www.openssl.org для получения информации о подписке). Если вы хотите отправить патч, пошлите его на [email protected] с строкой "[PATCH]" в теме письма. Пожалуйста, обязательно включите текстовое объяснение того, что делает ваш патч.
Если вы не уверены, будет ли функция полезна для всего сообщества OpenSSL, сначала обсудите её в списке рассылки openssl-dev. Возможно, кто-то уже работает над тем же, или есть веская причина, по которой эта функция не реализована.
Патчи должны быть как можно более свежими, желательно относительно текущего Git или последнего снимка. Они должны соответствовать стилю кодирования OpenSSL и компилироваться без предупреждений. Некоторые цели разработчиков основной команды можно использовать для целей тестирования (debug-steve64, debug-geoff и т.д.). OpenSSL компилируется на многих разнообразных платформах: постарайтесь использовать только переносимые возможности.
Примечание: по юридическим причинам вклад из США может быть принят только если уведомление TSU и копия патча отправлены на [email protected] (ранее BXA) с копией координатору ENC Encryption Request; пожалуйста, уделите время просмотру http://www.bis.doc.gov/Encryption/PubAvailEncSourceCodeNofify.html [sic] и http://w3.access.gpo.gov/bis/ear/pdf/740.pdf (раздел 740.13(e) EAR) для получения подробной информации. Если "ваш исходный код шифрования слишком велик, чтобы быть вложением в электронное письмо", они с радостью получат его по факсу; надеемся, у вас недорогой тариф на междугороднюю связь.
Наш предпочтительный формат для изменений — вывод "diff -u". Вы можете сгенерировать его так: