
SSL/TLSプロトコルを実装したフル機能のオープンソースツールキットであり、対称/非対称暗号、メッセージダイジェスト、公開鍵基盤(PKI)、X.509証明書管理を備えた汎用暗号ライブラリです。
OpenSSL 1.0.1g 2014年4月7日
Copyright (c) 1998-2011 The OpenSSL Project Copyright (c) 1995-1998 Eric A. Young, Tim J. Hudson All rights reserved.
OpenSSL Project は、Secure Sockets Layer (SSL v2/v3) および Transport Layer Security (TLS v1) プロトコルを実装した、堅牢で商用グレード、フル機能のオープンソースツールキットと、本格的な汎用暗号ライブラリを開発するための協力的な取り組みです。このプロジェクトは、インターネットを利用してコミュニケーション、計画、開発を行い、OpenSSL ツールキットとその関連ドキュメントを製作する、世界中のボランティアコミュニティによって運営されています。
OpenSSL は、Eric A. Young と Tim J. Hudson によって開発された優れた SSLeay ライブラリに基づいています。OpenSSL ツールキットはデュアルライセンス(OpenSSL ライセンスと SSLeay ライセンス)のもとで提供されており、基本的には両方のライセンスの条件を満たす限り、商業目的・非商業目的を問わず自由に入手して使用できます。
OpenSSL ツールキットには以下が含まれます:
libssl.a: SSLv2、SSLv3、TLSv1 の実装、および1つのサーバとクライアントで SSLv2、SSLv3、TLSv1 の両方をサポートするために必要なコード。
libcrypto.a: SSL/TLS に必要だが、実際にはその一部ではない、一般的な暗号化および X.509 v1/v3 関連の機能。以下のルーチンを含みます:
暗号 (Ciphers)
libdes - EAY の libdes DES 暗号化パッケージ。数年間ネット上に出回っていた後、SSLeay の一部として再ライセンスされたものです。DES の15の「モード/バリエーション」(ecb、cbc、cfb、ofb の1、2、3鍵バージョン、pcbc および cfb と ofb のより一般的な形式)を含み、さらに cbc モードの desx、高速な crypt(3)、キーボードからのパスワード読み取りルーチンを含みます。
RC4 暗号化、
RC2 暗号化 - ecb、cbc、cfb、ofb の4つの異なるモード。
Blowfish 暗号化 - ecb、cbc、cfb、ofb の4つの異なるモード。
IDEA 暗号化 - ecb、cbc、cfb、ofb の4つの異なるモード。
ダイジェスト (Digests)
MD5 および MD2 メッセージダイジェストアルゴリズム、高速実装、
SHA (SHA-0) および SHA-1 メッセージダイジェストアルゴリズム、
MDC2 メッセージダイジェスト。スマートカードでよく使われる DES ベースのハッシュ。
公開鍵 (Public Key)
RSA 暗号化/復号/生成。
ビット数に制限はありません。
DSA 暗号化/復号/生成。
ビット数に制限はありません。
Diffie-Hellman 鍵交換/鍵生成。
ビット数に制限はありません。
X.509v3 証明書
バイナリ ASN1 および PEM ベースの ASCII-バイナリ符号化への/からの X509 符号化/復号。PEM は秘密鍵による暗号化をサポートします。RSA および DSA 証明書要求の生成、RSA および DSA 証明書の生成を行うプログラム。
システム (Systems)
通常のデジタルエンベロープルーチンと base64 符号化。名前による暗号およびダイジェストへの高レベルアクセス。実行時に新しい暗号をロード可能。シンプルな非ブロッキング IO 抽象化である BIO io システム。現在サポートされているメソッドは、ファイルディスクリプタ、ソケット、ソケット受付、ソケット接続、メモリバッファ、バッファリング、SSL クライアント/サーバ、ファイルポインタ、暗号化、ダイジェスト、非ブロッキングテスト、null です。
データ構造 (Data structures)
動的に成長するハッシュシステム
シンプルなスタック。
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 と三菱は 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' の出力
OS 名、バージョン、ハードウェアプラットフォーム
コンパイラの詳細(名前、バージョン)
- アプリケーションの詳細(名前、バージョン)
- 問題の説明(問題を再現する手順が既知の場合はそれ)
- スタックトレースバック(アプリケーションがコアダンプする場合)
Request Tracker (http://www.openssl.org/support/rt.html) を介して OpenSSL プロジェクトにバグを報告するか、以下のメールアドレスに送信してください:
なお、Request Tracker は一般的な支援やサポートの問い合わせに使用すべきではありません。期待通りに動作しないからといって、必ずしも OpenSSL のバグであるとは限りません。
[email protected] へのメールは公開の Request Tracker データベースに記録され、公開メーリングリストに転送されることに注意してください。機密メールは [email protected] に送信してください(PGP 鍵は鍵サーバから入手可能です)。
開発は openssl-dev メーリングリストで調整されています(購読情報については http://www.openssl.org を参照してください)。パッチを提出する場合は、件名に "[PATCH]" を付けて [email protected] に送信してください。パッチの内容を説明するテキストを必ず含めてください。
機能が一般的な OpenSSL コミュニティにとって有用かどうかわからない場合は、まず openssl-dev メーリングリストで議論してください。誰かが既に同じ作業をしているか、その機能が実装されていない正当な理由があるかもしれません。
パッチは可能な限り最新のものにし、できれば現在の Git または最後のスナップショットを基準にしてください。OpenSSL のコーディングスタイルに従い、警告なしでコンパイルできるようにしてください。コアチームの開発者ターゲットの一部をテスト目的で使用できます(debug-steve64、debug-geoff など)。OpenSSL は多種多様なプラットフォームでコンパイルされます。ポータブルな機能のみを使用するように注意してください。
注: 法的理由により、米国からの貢献は、TSU 通知とパッチのコピーが [email protected](旧 BXA)に送信され、さらに ENC 暗号化リクエストコーディネーターにコピーが送信された場合にのみ受け入れられます。詳細については、 http://www.bis.doc.gov/Encryption/PubAvailEncSourceCodeNofify.html [sic] および http://w3.access.gpo.gov/bis/ear/pdf/740.pdf (EAR セクション 740.13(e)) をご確認ください。「暗号化ソースコードが大きすぎて電子メールの添付ファイルとして送信できない」場合は、代わりに FAX で受け付けてもらえます。格安の長距離電話プランがあることを願っています。
変更の推奨形式は "diff -u" の出力です。以下のように生成できます: