[an error occurred while processing this directive]

SSLeayとSSLappsに関するよくある質問


このドキュメントは

SSLeay and SSLapps FAQ (1998.9.24)

(Draft)
T J Hudson tjh@cryptsoft.com, E A Young eay@cryptsoft.com
24 September 1998

の日本語訳です。 オリジナルのドキュメントははこれより新しくなっている可能性がありますのでhttp://www.psy.uq.oz.au/~ftp/Crypto/を見て下さい。 日本語訳に関する責任はインフォサイエンス(株)にあります。日本語訳に関する質問、誤訳の指摘などはssleay@infoscience.co.jpまで御連絡ください。

この日本語訳の公開を快諾していただいたT.J.HudsonとE.A.Youngに感謝します。


目次


1. どのような内容ですか?

1998年9月24日版のFAQです。

SSLeayはNetscapeのセキュアソケットレイヤー - Netscapeセキュアサーバーやナビゲーターのソフトウェア暗号プロトコル - をインプリメントしたフリーソフトです。

SSLeayはS-S-L-e-a-y(各文字を個々に)と発音します.

SSLeaySSLv2(version 2)とSSLv3(version 3)とTLSv1をSSLeay-0.9.0のリリースより実装しています。

https://tls.cryptsoft.comにはテストサーバが動いていて、共同で利用する命令はtls@cryptsoft.comにメールで送ってください。

これはEric Youngeay@cryptsoft.comによって公開されている様々なプロトコルに関する文書だけからコーディングされました。

SSLの実装にとりかかろうと最初にいいだし、αテスト、開発者(Eric)との交渉、Windowsへの移植、ドキュメント作成などをしたのはTim Hudson tjh@cryptsoft.comです.

この実装は、Tim Hudsontjh@cryptsoft.comによって、以下のアプリケーションのSSLサポートに使われてきました:

他の人達の初期の仕事によって、今では以下のアプリケーションでも使えます:

また、以下のアプリケーションもサポートしています:

SSLeayは以下の暗号アルゴリズムを実装しています:

このドキュメントのCopyrightはTim Hudson tjh@cryptsoft.comにあります。使用と再配布の制限についてはCOPYRIGHTファイルを見て下さい。


2. 何が新しくなりましたか


3. これは合法的ですか?

それは最も難しい質問の一つで、まだ明解な答えがありません。あなたが結論を出すにはかなりの文書を読み(SSLeayのソース配布の中にある四方八方に分散したファイルを見て下さい) - そして弁護士に相談に行く必要があります。くりかえしますが、この文書は私の見解であって、そのように扱うべきです - reality could be quite different to how I happen to see things :-)。

簡単に言えば:


4. 価格はいくらですか?

無料です。パッケージ自体はフリーです。いくつかの些細な条件はあり、ソース配布の中のCOPYRIGHTファイルに明快に書いてあります。In short - attribution is mandatory, and no publicly available version of this code can have a different license.

COPYRIGHTファイルの中の正確な文面を確認してください。SSLeayを使うパッケージに要求されることが"the acknowledgement must take ..."というように詳述されています。リリースごとに変わりますので製品を出すまえに忘れずに確認して下さい。


5. 商用に使えますか?

はい。無料で。ライセンスを注意深く読んで下さい(SSLeayソース配布の中のCOPYRIGHTファイル参照)。もしCOPYRIGHTについて不明の点があればEric Youngeay@mincom.comに直接連絡してください。


6. どのようなドキュメントがありますか?

現時点では、プログラマーの観点からのドキュメントは非常に少なく、ライブラリーのコードを読み、どのようにパッチがあてられているかを見る必要があります。現存するアプリケーションにSSLサポートを加えるのは非常に簡単です。

SSLをエンドユーザーまたは開発者として使い始める上で考慮しなければならない事はドキュメントに書かれています - 確かにこのドキュメントはもっと充実する必要がありますが;しかしドキュメントを読めばほとんどの疑問に対する答えが得られる(そしてさらに疑問が生じることも少ない)はずです。

最終的にEricがライブラリー自体のドキュメントを作りました ... SSLeayソース配布の中のdocディレクトリーとhttp://www.psy.uq.edu.au/ftp/Crypto/ssleayにあるオンライン情報を見て下さい。

最良の出発点は、SSLeayを使ったクライアント・サーバープログラムやパッチをあてたアプリケーションの中のexample codeを見ることです - それぞれのアプリケーションの内部構造は非常に似通っています

もし躓いたらssl-usersメーリングリストのアーカイブを覗いて下さい ... またはssleay@mincom.com宛のemailで直接我々に聞いて下さい。

6.1. SSLプロトコルのリファレンス情報

SSL Protocol Specificationの詳細は以下にあります:

TLS (次世代のSSL)の詳細があります:

SSLRef (Netscape のリファレンス実装SSL)はhttp://home.netscape.com/newsref/std/sslref.htmlにあります。

Netscapeによって管理されているSSLに関する議論をするためのメーリングリストもssl-talk@netscape.comにあります。subjectか本文をsubscribeにしてssl-talk-request@netscape.comにメールを送るとメーリングリストに参加できます。

SSL-Talk List FAQはhttp://www.consensus.com/security/ssl-talk-faq.htmlにあります。これには多くの有用な情報が含まれています。

6.2. SSLクライアント証明書

証明書の使用に関するドキュメントがあります:http://home.netscape.com/newsref/std/ssl_2.0_certificate.html。これには、"application/x-x509-ca-cert" MIME typeに関する記述も含まれています。

Netscapeのセキュリティーに関する一般的な情報はhttp://home.netscape.com/eng/securityで得ることができます。

さらに、Jeff Weinstein jsw@netscape.comはNetscape Navigator 3.0における鍵生成(Key Generation)・証明書の拡張(Certificate Extensions)・証明書のダウンロードに関する記述をhttp://home.netscape.com/eng/security/certs.htmlにまとめています. これは一読の価値があります!

6.3. その他のリファレンス情報

暗号に関するかなり充実したリストがhttp://www.cs.hut.fi/cryptoにあります。また公開されているソフトウェアの簡単なリストがhttp://www.cs.hut.fi/crypto/software.htmlにあります。

http://www.enter.net/~chronos/cryptolog.htmlにあるCrypto Logにはinternet cryptography resourcesの明快なリストが含まれています。

認証サービス一般に関する概要がRSAのftp://ftp.rsa.com/pub/csc/docs/wp.epsにあります。これは1993年7月に書かれた40ページのドキュメントで、良い副読本です。

Adam Shostackadam@homeport.orghttp://www.homeport.org/~adam/cryptoで、最も一般に使える暗号化ライブラリーについて興味ある比較をしています。

Raph Levien raph@c2.orghttp://www.c2.net/~raph/comparison.htmlには、"A brief comparison of email encryption protocols"というemailの異なる暗号化オプションに関するドキュメントがあります。

Xcert Software Inchttp://www.xcert.com/support/sites.htmlに、暗号化と一般の電子商取引の分野に関するオンライン情報の膨大なリファレンスリストを持っています。

Peter Guttman (pgut001@cs.auckland.ac.nz)は情報(X509情報を含む)をリファレンスするリンクの包括的なリストを管理しています:

Peter は便利な(実用的な)X509で動く"joys"の解説を用意しています:

Stefan Kelm (kelm@pca.dfn.de)は証明書とツールキットに関する情報の使いやすいリンクを集めています:

6.4. その他の情報

SSLeayの仕事の一部として、SSLを使用可能なアプリケーションを書くときに重要だと思われる事項が記してあるドキュメントを寄せ集めました。当然、ドキュメントとしては最新のものではありませんが、多くの有用な情報を含んでいます。

私は、以下のアプリケーションをSSLeayが使えるように書き換えた時、SSLeayのサポートがしやすいように、SSLが使えるようにするために要する労力やアプリケーションを書く際にしなければならないことがわかる、移植に関するメモを書きました。


7. オンラインで入手できるSSLeayの記事

Holger Reif(Holger.Reif@PrakInf.TU-Ilmenau.DE)http://www.heise.de/ix/artikel/E/9606128でSSLeay-0.5.xの詳細をとてもわかりやすく書いています。これはドイツ語でも読むことができます。

Dave Madden(dhm@paradigm.webvision.com)http://paradigm.webvision.com/developers/casetup.htmlに、CAに役立つようなセットアップに必用なことについて、多様なソースからの注意をまとめています。

Frederick J. Hirsch(f.hirsch@opengroup.org)http://www.opengroup.org/RI/www/prism/wwwj/に、オンラインで役に立つIntroducing SSL and Certificates using SSLeayというタイトルの文書を載せています。

Rudolph Pienaar (rudolph@enterprise.mikom.csir.co.za)はhttp://www.mikom.csir.co.za/SSLeay/HOWTO集を載せています。


8. CAリファレンス情報

Stephan Kolletzki kolletzki@darmstadt.gmd.deとDavid P Kemp dpkemp@missi.ncsc.milが認証のAPIの分野に関する以下のオンライン情報源のリストを提供してくれたことに感謝します。

8.1. ノーテル認証管理サービス API version 1.0

http://www.nortel.com/entrust

Version 1, Dec 1995 があります。現在のバージョンは2.0で、http://www.entrust.com/downloads/cmsapi.pdfからダウンロードできます。

8.2. Intel's Common Data Security Architecture (CDSA)

http://www.intel.com/ial/security/specs.htm

8.3. Microsoft's CryptoAPI version 2 (ZIP file)

http://www.microsoft.com/intdev/security/capi/capiref.zip

8.4. The SESAME V4 Public Key Management API

http://www.esat.kuleuven.ac.be/cosic/sesame

The SESAME V4 Public Key Management Application Developers' Guide describes the PKM API (pkm_begin, pkm_get_pub_key, etc).

8.5. SECUDE - Security Development Environment

http://www.darmstadt.gmd.de/secude

European multipurpose security toolkit + applications for Unix and PC including APIs for crypto/X.509/GSSv2/PEM/PKCS/SMIME and utilities/GUI for digital ID maintainance

8.6. General PKI


9. このパッチでNCSA httpdはNetscapeと対話できますか?

これは(信じようが信じまいが)最もよく尋ねられた質問です

認証のRSA(今は実際にはVerisign)への全面的な依存は、Netscapeブラウザーがリリース1.xの時に、どの認証局が信頼できるかを変更することを許さず、4社のhardcoded CAだけを信頼したことから始まりました。

Netscapeナビゲーターはリリース2.x(β)からユーザーによるCAの変更をサポートし始めました。もしユーザーがhardcoded CA以外によって署名された証明書を使っているサービスに接続した場合、ユーザーはそれを信頼できるCAのリストに追加するかどうかを訊かれます。これは基本的に、今やセキュリティートラストポリシーはユーザーの手中にあることを意味します。このポリシーはリリース3.xまで続き、Netscapeはさらに標準CAのリストを(Thawte Consultinghttp://www.thawte.comを含む)いくつかの米国外のCAも含むように拡張しました。認証局のリストに私が契約したすべてのCAのリストがあります。

9.1. Netscape以外のSSLサーバーに対してVerisignは証明書を発行するでしょうか?

答えはYesです。Verisignは証明書の発行に関するポリシーを変更し、セキュリティライブラリとしてSSLeayを使っている、登録されたアプリケーションとApacheの派生版には発行するようにしました。

現在のポリシーについての詳細は:

以前Verisignは外部の暗号解析にもかかわらず必要としました(そしてSSLeay自身は現在のカテゴリーに自動的には適応しません)。

9.2. RSAの証明書を使うのは法律に触れませんか?

もしあなたがすでにRSAの証明書を持っているならば、あなたはそれを(合法的に)SSLeay対応のhttpdで使うことができるでしょうか? Verisignから得た情報によると、このようなことをすることはVerisignから証明書を得るためのライセンス契約に反することになります。もしあなたの状況がよくわからなければ、Verisignに直接連絡をとって下さい。

もしあなたが米国内にいるという"好運"に恵まれているならば、Alex Tang altitude@cic.netが経験したプロセスの詳細を読むべきです。これはhttp://petrified.cic.net/~altitude/ssl/ssl.saga.htmlに詳しく書いてあり、非常に"興味深い"ものです。


注: Microsoftは状況を複雑にしてしまいました。 Internet ExplorerはCAのユーザーによる変更を自動ではサポートしておらず、Netscape Navigator 2.xの時の状態だからです。

MSIE3はユーザーがCAを追加するのをサポートしていますが、未知のCAに遭遇した際に、それを(Navigator 3.xのように)CAのリストに追加するオプションを提示するということはありません。

MSIE4はサーバー認証が既知のCAによってサインされていないとしても、接続のリクエストを継続することをサポートします; しかしながら、サイトの認証はサイトへの接続を再び許可しなければならないブラウザを再起動すると、セーブされません。



10. このパッチでNCSA MosaicはNetscapeセキュアサーバーと対話できますか?

Mosaicへのパッチは、現存するいかなるセキュアサーバーとも問題なく接続できるように、サーバーの証明書のチェックをしていません。 しかし、もしあなたがクレジットカード情報のやりとりをするつもりならば、これはおそらく採用すべきポリシーではないでしょう - そのかわりに、クライアントは重要な情報を渡す前に、サーバーを信頼できるリストを参照してチェックするといった何らかのセキュリティー認証の手続きをするべきです。

現時点では、どのようにすれば認証管理やauthorisation processがglobalにうまくいくのかはよくわかっていません。

あなたのサーバーに認証プロセスを加えるのは非常に簡単です:しかし、NetscapeやMicrosoftが行っている、そしてこれからも継続して行うであろう製品への投資を考えると、個人的にはNCSA Mosaicが長期にわたって使えるブラウザーの候補であるとは思えません(このため私は継続的な更新をしてきていません。なぜなら私はもはやdecent tableをサポートしないブラウザーを使うことができないので、私自身何の意義も見出せないからです)。


11. 最新のリリースされたNetscape NavigatorのソースについてはどうですかWhat about the recently released source for Netscape Navigator

Netscapeは1998年3月31日にNetscape Navigatorのソースをリリースしました。詳細はhttp://www.mozilla.orgです。

Netscapeはアメリカに基礎を置いているので、コードに関連する全ての暗号化とセキュリティは、ソースのリリースから外されています。

Mozilla Crypto GroupはSSLeayを使っているMozillaに暗号を返すために作られました。その詳細は(Cryptozillaという名が付いています):


12. どうすれば手伝うことができますか?

私たちはさらに多くのアプリケーションを得るために、私たちと同じ条件(できたものはattributionは必要だがそれ以外はフリー)で貢献できる人を必要としています。 もしあなたがアプリケーションにSSLをサポートしたら私たちに教えて下さい(できればパッチも)。

しかし、もしあなたがどのような形ででも寄付をしたいならば、誰もいやとは言わないし、次に何をやるか、どれだけ早くやるかに影響を与えるかもしれません。 これを疑うのならば、ssleay@cryptsoft.comに直接連絡してください。

もし、私たちがアクセスしないUNIX派生版にあなたがアクセスして(バンド幅的に)良く接続でき、少し余分な負荷があってもかまわないならば、SSLアプリケーションの普及をスピードアップできます(ライブラリー自体は非常に移植性が高く、(現在)移植性が低いのはアプリケーションのほうです)。

ssl-users@lists.cryptsoft.comメーリングリストにも参加して下さい。(このリストを管理しているmajordomo varientの利用の手引についてはssl-users-request@lists.cryptsoft.comにemailを送って下さい - 簡単にいえば、本文をsubscribe ssl-usersとしてfactotum@lists.cryptsoft.comにメールを送ります)。

もしUnixベンダーに勤めているなら、そのプラットフォーム向けの、内部ループするRSAとDESの暗号のハイパフォーマンスなアセンブラ版のお返しとして、実装に寄与するように言ってください。インテルは今まで、これをする時間を重要視している唯一のプラットフォームです(他のプラットフォームはasmバージョンを持っていますが、あまりチューンされていません)。

12.1. ssl-users アーカイブサイト

Tom Kee tom.kee@magnets.com maintains an archive of the mailing list at http://www.magnets.com/lists/

Holger Reif Holger.Reif@PrakInf.TU-Ilmenau.DE also maintains an archive at http://remus.prakinf.tu-ilmenau.de/ssl-users/


13. もし問題が生じたときには、誰にメールを送ればよいのですか?

これは実際にはサポートの保証のない、無報酬の仕事ですが(あなたが埋め合わせをすることになります:-); しかしながら、SSLeay とその更なる開発に興味を持つ人達のためのメーリングリストがあります。 SSLeayの動作についての役に立つ専門的なコンサルタントがたくさんあります。

ssl-users@lists.cryptsoft.comメーリングリストへの入会(このメーリングリストを制御するmajordomoのコマンドの説明については、ssl-users-request@lists.cryptsoft.comにメールを送ってください。手短かに言うと、本文にsubscribe ssl-usersと書いたメールをfactotum@lists.cryptsoft.comに送ってください)


14. どうやってEricとTimに連絡をとるのですか?

Eric Young eay@cryptsoft.com

Tim Hudson tjh@cryptsoft.com

または、二人とも捕まえるにはssleay@cryptsoft.comを使って下さい(おそらくほとんどの質問についてこれが"正解"でしょう)。

Ericはライブラリーに集中し、アプリケーションとドキュメントは全てTim(これは私です)がやりました;しかし、私たちは互いに何をやっているかを知っており、異なる時間帯に働き(そしていくつかの事については異なる意見を持っており:-)、異なる日に休暇をとるので、特殊な質問でない限り両方に連絡するほうがいいでしょう。 Windowsのinfrastructureのコードもほとんど私が書きました。


15. メーリングリストのアーカイブはありますか?

Tom Kee tom.kee@magnets.comhttp://www.magnets.com/lists/でメーリングリストのアーカイブの保守をしています。

Holger Reif Holger.Reif@PrakInf.TU-Ilmenau.DEhttp://remus.prakinf.tu-ilmenau.de/ssl-users/でメーリングリストのアーカイブの保守をしています。


16. SSLeayはどこで入手できますか - FTPサイトのリスト

SSLeayのソースとSSLappsmasterは以下の場所にあります:

Note: the SSLeay Programmer Reference is in the process of being updated to SSLeay-0.6 so what is there doesn't exactly match the current version.

16.1. FTP Mirrors

SSLeay is also mirrored at the following locations:

Christoph Martin christoph.martin@uni-mainz.de mirrors the SSLeay distribution (updated every 24 hours) in the following location:

The German CERT server in Hamburg

For those close to Finland

Panu Rissanen bande@nic.funet.fi mirrors SSLeay updated biweekly at:

Sites in Sweeden

Tein Yuan tyuan@beta.wsl.sinica.edu.tw mirrors SSLeay related stuff at:

Sites in South Africa

John Hay jhay@zibbi.mikom.csir.co.za and Johan Eksteen Johan.Eksteen@dent.mikom.csir.co.za mirrors SSLeay updated daily at:

Sites in Korea

Lee, Ho-sun ahmlhs@cair.kaist.ac.kr mirrors SSLeay related stuff at:

Sites in Japan

Takahiro Kiuchi kiuchi@rick.epistat.m.u-tokyo.ac.jp mirrors SSLeay related stuff at:

Ayamura Kikuchi (ayamura@ayamura.org) mirrors SSLeay related stuff updated daily at:

Sites in the UK

Steve Kennedy steve@gbnet.net mirrors SSLeay updated daily at:

Simon Gornall simon@oyster.co.uk mirrors SSLeay updated daily at:

Sites in Hong Kong

Enzo Michelangeli enzo@ima.net mirrors SSLeay updated daily at:

Sites in Taiwan

CS Lee (Lee Chee Siong) ftpowner@ftp.nchu.edu.tw mirrors SSLeay updated daily at:

Sites in Poland

Martin E. Bednarz specula@lodz.pdi.net mirrors SSLeay updated daily at:

Sites in Italy

Aniello Castiglione (anicas@cert.unisa.it) and Gerardo Maiorano (germai@cert.unisa.it) of the Salerno CERT-IT at the Dipartimento di Informatica ed Applicazioni of the Universita' di Salerno mirror SSLeay and SSLapps updated daily at:

Bruno Crispo (Bruno.Crispo@di.unito.it) from the Security Group - Department of Computer Science, University of Turin, Italy mirrors SSLeay updated weekly at:

Sites in Holland

Prebuilt packages for Linux (RedHat and Debian) for SSLeay itself and the apps are at the following location:


注: もしあなたが米国外にいて暗号技術の輸出入に関する法的制約を受けておらずSSLeay distributionをmirrorするつもりがあれば、現在のミラーサイトと同様の情報をtjh@cryptsoft.comに知らせて下さい。このリストに追加します。


16.2. SSLが使える他のアプリケーション

以下はSSLeayを使ってSSLをサポートするためのフリーのパッチが手に入るアプリケーションのリストです。

16.2.1. MZtelnet

Christoph Martin christoph.martin@uni-mainz.deによる4.4BSD-Lite telnet (NEtelnet)へのパッチは:

注: Christophと私はまだ両者のコードを一つのバージョンにまとめているところです。

16.2.2. stelnet

Simon J. Garraty sjg@zen.quick.com.auSSLtelnet(オリジナルのパッチを基にしている)と互換性のあるSSLeayをサポートする他の異なるtelnetを実施しています。

注: Simonはまた、同じロケーションでSSLrshを利用できるようにしています。

Simonのバージョンはコンパイルするためにbmakeを必用とします ... bmakeのautoconf可能なバージョンのポインタが、彼のドキュメントページには含まれています。

16.2.3. SSLをサポートしたApache

SSLをサポートするApacheの最初の完全機能版(fully functional version)はBen Laurieben@algroup.co.ukによって実装されました。 もしフリーで入手できSSLが使えるWWWサーバーを探していて、コンパイル・設定・保守を自分でするのを厭わなければ、このサーバーはおそらく現時点で最良の選択でしょう。

注: もしあなたが米国内にいてこのサーバーを商用に使いたい場合には、おそらく商用RSArefかBSAFEライセンスが必要でしょう。

You should also have a look at mod_ssl which is based on Apache-SSL and provides a more supported implementation.

16.2.4. SSLをサポートしたCERN (or W3C) httpd

CERN httpdのSSLサポートはGertjan van Oosten gertjan@West.NLによって実装されました。 パッチはhttp://www.west.nl/archive/cern_httpd/HTTPS.patchを見て下さい。

16.2.5. SSLをサポートしたLynx

Thomas Zerucha tz@execpc.comがLynxにSSLeayをサポートするためのパッチを保守しています。

最新のSSL版lynxの入手先の詳細はhttp://www.mich.com/~thomas/ftpを見て下さい ... 輸出規制を受けているかもしれない(under the might-be-export-controlled section)http://www.mich.com/~thomas/ftp/sslprox.htmlへのリンクをたどって下さい。

LynxはUnix,VMSそしてもちろんDOSをサポートするテキストベースのWWWブラウザーです。詳細についてはhttp://lynx.browser.orgを見てください。

16.2.6. SSLをサポートしたPerl

SSLeayが使えるPerl5のモジュールがhttp://www.neuronio.pt/SSLeay.pm.htmlにあります。

16.2.7. mSQL

Sascha Kettler (kettler@rummelplatz.uni-mannheim.de)はSSLをサポートするためにmSQL version 1.0.16にパッチをあてました。パッチは:

から入手できます。

16.2.8. Cryptozilla

Mozilla Crypto Group (mcg@ssleay.org)はCryptozillaを作るためにNetscape Mozillaソースに暗号化を組み込みました。

16.2.9. mod_ssl

Ralf Engelschall (rse@engelschall.com)はApacheとSSLeayを統合した(Apache-SSLベース)優れたモジュールをリリースしています。


17. その他のプラットフォーム

SSLeayは様々なプラットフォームに対応しています。もしここで挙げられていないプラットフォームに対応させようとしているなら、ssleay@cryptsoft.comまで知らせて下さい。

SSLeayの基本リリースは以下のサポートを含んでいます。

17.1. Microsoft Windows

SSLeay-0.6.1と上記はWIN16とWIN32をサポートしています。基本リリースではMicrosoft Visual C++でコンパイルするためのコマンドライン用makefileをサポートしています。msディレクトリに置いてあります。


注: Borland C++ 4.x用のWIN16 setupのコンパイルもしましたが、まだ標準配布にはまとめていません。最新のBorland Cサポートを入手したければtjh@cryptsoft.comに連絡してください。Borland C++ コンパイラの最新版にはアクセスしていないので、これの整備はしていません。もしこの問題を解決したいなら、知らせて下さい。


SSLeay-0.6.4にはWIN32のマルチスレッドサポートが含まれています。

We have tested Windows 3.11, Windows 95 and Windows NT.

17.2. Apple Macintosh

私たちはMac用の適当な開発環境を持っていないので、SSLeay自体はMacをサポートしていません(私の古いMac 2ciは開発用マシンにはカウントされていません)。 もしあなたが完全な開発環境付のPowerMacをEricか私に寄付する気があれば、何らかの対応はするでしょう:-)

CodeWarriorとフリーで入手できるバークレーソケット互換ライブラリー(GUSI)を使えば、どうやらMacintosh用のSSLeay-0.6.3をコンパイルすることができます。

17.3. Amiga

SSLeayAmigaのボックスの外で非常によくコンパイルします。

Nordic Global Inc. のHolger Kruse(kruse@nordicglobal.com)はAmiga 'Miami' TCP/IPスタック用のSSLeay-0.6.6をコンパイルしました。

ライブラリーのバイナリーは配布自由で、RC4なしでRSArefとリンクしているので、USAでは合法的に使うことができます。これはhttp://www.nordicglobal.com/から入手できます。RC4を持ち、標準SSLeay RSAを満たしたものとリンクしている国際的なコンパイルもあります; http://www.vapor.com/voyager/から自由に入手できます。

現在Voyager Amiga ウェブブラウザはSSLeay 0.6.6のSSLをサポートしています。SSLモジュールはRC4、IDEA、DESによって最強の暗号化をサポートしています。SSLeayのサポートはhttp://www.vapor.com/voyager/から入手できる最新版に含まれています。

注: 一度、転送されてきたAmigaのコンパイルに関するこの情報を更新します。

17.4. Pilot

Ian Goldberg(iang@CS.Berkeley.EDU)はPalmPilot Professional organizer にSSLeay-0.6.6のcryptパートのほとんどをポートしました。それは古いPilotsでも作動し、おそらくPersonalでも作動しますが、テストはしていません。

17.5. Java

Javaに関連するものはいろいろあります。SSLeay自体はJavaに移植されていませんし、我々が知る限り、移植が進められているということもありません。

17.5.1. SSLava

http://www.phaos.comから入手できるUSA-onlyのツールキットがあります。製品版自身はJDK 1.0.2と1.1の両方で動きます。

17.5.2. NET.DLL replacement

Scott Jewell (jewellsc@pop.mts.kpnw.org)は、ソケットルーチンにSSLeayを使うための、Java用のNET.DLLを持っています。詳細はhttp://noc.kpnw.org/scottで見ることができます。

17.5.3. Javaでの暗号化ツール

実際にはSSLを実装していませんが、CryptixはJavaのSSL実装のために要求されるたくさんのフレームワークを提供しています。

17.5.4. IAIK

17.5.5. Baltimore JSSL

BaltimoreはJavaにSSLを実装させています。

17.5.6. JCP SSL-Pro

UKの会社であるJCPはUSの輸出制限外のSSLを実装した完全なJavaを作っています。

17.6. Pascal / Delphi

Max Masyutin (max@ritlabs.com)はSSLeayを使ったSSLをサポートするWin32用のTinyWebサーバの開発者です(written in Delphi)。


18. 証明書とプライベート鍵の生成

証明書やプライベート鍵、証明書署名要求(CSR)を生成するためには、単に実行できる"ssleay"があればいいのです。

これは通常/usr/local/ssl/binにインストールされ、もしこれがパスになければ、次の例のようにssleayよりもむしろ/usr/local/ssl/bin/ssleayを使う必要があります。

18.1. create random state

鍵を生成する過程で、randomな情報を入力する必要があります。 その正確なコンテンツが重要でないのなら、いつでもrand.datファイルを削除するか、変更することができます。

 head -25 * > rand.dat
 OR
 ssleay md5 * > rand.dat
 OR
 cat file1 file2 file3 > rand.dat

18.2. プライベート鍵の生成

 ssleay genrsa -rand rand.dat > key.pem

18.3. パスフレーズで保護されたプライベート鍵の生成

 ssleay genrsa -rand rand.dat -des 1024 > key.pem
 OR (if you want to use triple DES)
 ssleay genrsa -rand rand.dat -des3 1024 > key.pem


注: パスフレーズを忘れてはいけません。そうでなければ鍵は役に立ちません。


18.4. プライベート鍵からパスフレーズを外す。

もし鍵からパスフレーズを外したいなら、単に以下のコマンドを使ってください:

 ssleay rsa -in key1.pem -out key2.pem

パスフレーズの間はプロンプトになって、出力ファイルは暗号化されません(なんらかの暗号化オプションを含んでいないせいです(-des/-des3/-idea))

現在のところ、key1.pemを使うことのできるkey2.pemを使うことができます。

18.5. プライベート鍵にパスフレーズを追加する

 ssleay rsa -des -in key1.pem -out key2.pem
 OR (if you want to use triple DES)
 ssleay rsa -des3 -in key1.pem -out key2.pem

あたかも、必要とする、パスフレーズの保護された鍵が残した、鍵周辺のパスフレーズのない保護されたフォームが、パスフレーズを持つのに失敗するかのようにこれを行った後、key1.pemを外すべきでしょう。


注: パスフレーズを忘れてはいけません。そうしないと使えません。


18.6. 証明書署名要求の生成(CSR)

証明書署名要求(CSR)とはサインするために証明書を認証局(CA)に送り、生成したプライベート鍵(認証局に送られていない)と組み合わせて使う認証フォームを得ることです。

もし要求がセキュアなウェブサーバで行われるなら、"Common Name"でプロンプトのときに、使うことを計画しているhttps URLにある名前と一致する名前を入力するべきです。それはFQDNでなければなりません。つまりwww.domain.comのような

もし"extra attributes"でプロンプトなら、単にそれを無視して空白のままにしておきます(もしCAによらないで直接行うなら)

 ssleay req -new -key key.pem -out csr.pem

csr.pem の中身は以下のようなものです:

-----BEGIN CERTIFICATE REQUEST-----
MIIBETCBvAIBADBXMQswCQYDVQQGEwJBVTETMBEGA1UECBMKU29tZS1TdGF0ZTEh
MB8GA1UEChMYSW50ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMRAwDgYJKoZIhvcNAQkB
FgFgMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAL6nPTy3avNgbubx+ESmD4LV1LQG
fcSh8nehEOIxGwmCPlrhTP87PaA0XvGpvRQUjCGStrlQsd8lcYVVkOaytNUCAwEA
AaAAMA0GCSqGSIb3DQEBBAUAA0EAXcMsa8eXgbG2ZhVyFkRVrI4vT8haN39/QJc9
BrRh2nOTKgfMcT9h+1Xx0wNRQ9/SIGV1y3+3abNiJmJBWnJ8Bg==
-----END CERTIFICATE REQUEST-----

ほとんどのCAはCSRでカット・ペーストをするサーバ認証のリクエスト処理があります。認証要求の詳細がCAが要求に適用した判定基準に一致することを確認した後で、CAは署名された証明書か、署名された証明書を取り出すことのできるURLをメールで送ります。

18.7. 自分で署名したダミーの証明書の生成

自分で署名する作業を行いたいなら(すなわち、全く役に立たないテスト証明書)、このように自分自身で生成することができます:

 ssleay req -new -x509 -key key.pem -out dummy.pem

19. 自分自身のCAになるには

SSLeay-0.5.xでは、自分自身の認証局として動作するcaプログラムが始めてサポートされました。


注: CAになり証明書を発行するソフトウェアを持つには、もっと<たくさんやることがあります。 もし、あなたが証明書を公に発行するためにCAをはじめようと計画しているならば、CAになるための全ての情報を読むことからスタートすべきです。 これは、Verisignのhttp://www.verisign.comから入手できます。


19.1. SSLeayでサポートしている基本レベルのCA機能

私は使いやすいようにcaプログラムをスクリプトにまとめました。これはSSLeayのリリースにapps/CA.shとして含まれています。

 CA.sh -newca ... はcaを使うための準備をします
 CA.sh -newreq ... は認証要求を生成します
 CA.sh -sign ... は生成された署名要求に署名し、証明書を出力します

caそのものに関するドキュメントは非常に少ないですが、いくつか基本的なことをここに書いておきます:

caプログラムは、ほとんどの設定にssleay.confファイルを使います。 あなたは、このファイルを読んであなたの要求にあうようにカスタマイズしたいと思うでしょう

標準的な短い使用法を見るにはca -helpを使ってください。 以下の文章にはもっと情報が含まれています。まだ完全ではありませんが、試してみようと思うには十分な情報があります。

19.1.1. caポリシー

caは、署名要求のフィールドの順番や、どの属性が書かれた時にどのフィールドが必須かを定義するポリシーの概念をサポートしています。

それそれのpolicyのオプションはコンフィギュレーションファイルのsectionsに保存されます(デフォルトのコンフィギュレーションファイルはssleay.confです)。

コンフィギュレーションファイルのセクションは、"普通の"Windows INIファイルの、値を持つ変数のnamed listの概念と基本的に同じです。

[section name]
variable1=value
variable2=value

19.1.2. caオプション

Configファイルの中でパラメータとして使われるセクション。 これによって一つのファイルで複数の設定ができます。 デフォルトでは、default_ca変数が[ ca ]セクションの中で参照されます。 従って、配布されたssleay.confの中では、CA_defaultがCA定義として使われます。 これは他のどのような名前でもかまいません。

これは新しい証明書無効リスト(certificate revocation list: 訳注)を生成します。

証明書を認証する際、これが証明書の有効期限 - すなわち、現時点から証明書が無効になるまでの日数 - になります。

これらについては後述します。 デフォルトのssleay.confコンフィギュレーションファイルには、二つのポリシーが定義されています。

CAのRSA鍵は必ず暗号化されていることが要請されます!

-out オプションは得られる全ての認証された証明書を一つのファイルにまとめます。 -outdir オプションはこれらに通し番号で名前をつけてディレクトリーにいれます。

19.1.3. ca コンフィギュレーション

ほとんどのパラメータはコンフィギュレーションファイルssleay.confに定義されているデフォルト値を持ちます(もちろん標準的なデフォルト値はreasonableなものです :-)。SSLeay-0.6.3+では、MS-DOSでも扱いやすいようにコンフィギュレーションファイルの名前をssleay.cnfに変えていることに注意してください。

ほとんどのオプションに対する標準的なデフォルト値は、ssleay.confCA_defaultセクションで設定されています。

名前 説明
dir 全てのCAデータベースが保存されている場所。
certs 既に発行された全ての証明書が保存されている場所。
database file 発行された証明書の状態(status)が記録されているテキストデータベース。
policy デフォルトのポリシー名。

ポリシーのセクションは、認証を受けるそれぞれの"objects"に対する要請を:

によって指定します。

policy_matchのデフォルト値は

countryName             = match
stateOrProvinceName     = match
organizationName        = match
organizationalUnitName  = optional
commonName              = supplied
emailAddress            = optional

policyセクションにおける"objects"の順番は、証明書を生成する際の順番を同じです。

19.1.4. CAインデックスファイルのフォーマット

status: 'R'(revoked), 'E'(expired)または'V'(valid)のいずれかの値。
expiry date:  証明書が認証された日時。
revoked date:  無効になった日時。無効になっていない場合は空白。
serial number:  証明書の通し番号(serial number)。
certificate:    証明の場所(Where the certificate is located)。
CN:     証明の名前(The name of the certificate)


注: デモファイルには、作られた値(made up values)はほんの少ししかありません。最後の二つはcaプログラムによって追加されたもので、正確です。

現時点では、caプログラムは'certificate'ファイルを正しく更新しません。 CN/statusの組合せが正しくなければならないので、serialの項目(field)はuniqueでなければなりません(The serial field should be unique as should the CN/status combination be correct.)。 caプログラムはこれらを立ち上げ時に確認します。 まだ、発行された証明書のリスト(とCRLリスト)から、データベースファイルを再生成するプログラムを書く必要かあります。


19.1.5. なぜ異なるポリシーがあるのですか?

Personaの署名要求がどのように動作するかを考えると、これはpolicy_matchポリシーに似ており、policy_anythingVerisignがやっていることに似ています。

19.2. 難しい質問ですが ... 私の選択は?

もちろん最も簡単なのは認証局のリストにある商用のCAの一つを使うことです。 リストに挙げられているCAはそれぞれのポリシー(と価格)でサービスを提供しています。 いくつかのCAは、あなた自身のCAになるために必要な詳細な情報を含むパッケージを売っています。


20. クライアント証明書に関するMini-CAsとテスト

何人かの人がNetscape NavigatorとMicrosoft Internet Explorerでどのようにクライアント証明書が発行されるのかを説明するために、ウェブベースの環境をまとめています。テストのためか、あるいはもし望むなら自身の会社内部のCAを構築する基礎として、これを使うことができます。

会社内部で使う商用サポートされたCAが欲しいなら、以下はあなたが取るべき方法ではありません。製品についてはCAベンダーに話すべきです。

20.1. Holger Reif - テスト証明書の発行

Holger(Holger.Reif@PrakInf.TU-Ilmenau.DE)はMSIEクライアント証明書の発行するためにやらなくてはならないことを、sedとawkにとともに一連のシェルスクリプトにまとめました。Holgerは、GenerateKeyPair()の8つのパラメータが0でなく1でなければならないことをも教えてくれました。これはドキュメントに明確に書かれていませんでした。

20.2. Tim Hudson - テスト証明書の発行

私は、NSNAVとMSIEの両方にzero value certificateを発行するテストサーバを走らせています。これは標準のSSLeayツールを使っており、テスト用の証明書を直ちに発行するための、1200行からなる一つのPerlスクリプトです。

もしこのコードをお望みの場合には、tjh@cryptsoft.comまでメールを下さい。あなたにこれを送ります。

20.3. Clifford Heath - 基本的なCAのセットアップ

Clifford(cjh@osa.com.au)は証明書署名要求を受け取り、認証要求(authorisation rquests)を指定されたアドレスにemailで送るCAをまとめました。これによって署名要求を認証し、証明書をダウンロードするためにどこに接続したらいいかをemailによってユーザに知らせます。Cliffordはこれに一連のシェルスクリプト、sed、awkを用いています。

20.4. Simon Gerraty - QuickCA

Simon (sjg@quick.com.au)はCA操作のスクリプトをここに持っています:

CAにメールで送信された要求を生成するためのウェブインターフェースをハンドルしているperlスクリプトです。CAの最後のスクリプトがssleayのcaと、ユーザに戻ってくるメールを介して署名をハンドルします。

役立つ追加情報はここです。


21. 鍵の読み出しと読み込み

SSLeayの標準PEMスタイルのエンコーディングを使わないパッケージからの、鍵を読み出しと読み込みはほぼ不可能です。Nagivator 4.04とInternet Explorer 4.0以前には読み出しの機能がありませんでした。

最新の方法はPKCS#12を使うことです。詳細はこのFAQにあり、Dr Stephen Henson (shenson@bigfoot.com)からソフトを入手することができます:


22. 問題

もしSSLeayで問題が生じたら、以下のステップを踏んで下さい:


注: gccを使っている場合には、デバッグを試す前に -fomit-frame-pointer をはずしてみて下さい。


バグを報告する場合には、全てのバグレポートに以下の情報をいれておいて下さい: (これをbug submission formにすべきかもしれません)

SSLeay Details
    - Version
Operating System Details
    - OS Name
    - OS Version
    - Hardware platform
Compiler Details
    - Name
    - Version
Application Details
    - Name
    - Version
Problem Description
    - include steps that will reproduce the problem (if known)
Stack Traceback (if the application dumps core)

For example:

SSLeay-0.5.1a
SunOS 5.3, SPARC, SunC 3.0
SSLtelnet-0.7

以下のスタック・トラックバックにあるbn_mul()のSSLサポートでtelnetを使うときにコアをダンプします
...

ssleay@cryptsoft.com (Eric and Tim)または、ssl-bugs@lists.cryptsoft.com (mailing list of active developers)にバグを報告して下さい。


23. トラブルシューティング

以下は共通の"問題"に対する有用な解決法です。

23.1. Apache-SSLパスフレーズプロンプト

鍵からパスフレーズを取り除くには、以下のコマンドを使うだけです:

あなたはパスフレーズを入力するよう要求され、出力ファイルは暗号化されていないでしょう(暗号化オプション-des/-des3/-ideaを付けなかった場合のように)。


24. SSLeay-0.4.xからSSLeay-0.5.xへの移植

主な変更内容についてはftp://ftp.psy.uq.oz.au/pub/Crypto/SSLapps/PORT4-5を見て下さい。


25. Netscapeはどのような暗号をサポートしていますか

Netscapeは現在以下の暗号セットを実装しています: (current at 12-Mar-97)

すべてのバージョン

米国版のみ

Fortezza版のみ


26. PGP公開鍵

もしテキスト形式ではないemailを送る場合には、以下がtjh@cryptsoft.comのPGP鍵です(鍵のサイズが小さいことはわかっています)。

Type Bits/KeyID    Date       User ID
pub   512/4D799671 1997/02/20 Tim Hudson <tjh@cryptsoft.com>

-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: 2.6.3ia

mQBNAjMMyzgAAAECAOZEuKvH4qzwgA0nzFlqGmFTrNoqpSsXAoldy9kSfjFYBfg2
SVFar9GTMUpgTZqXStyvDezce8b1BqZXPE15lnEABRG0HlRpbSBIdWRzb24gPHRq
aEBjcnlwdHNvZnQuY29tPokAVQIFEDMMyzkGplc8TXmWcQEBaUYB/0iDS6thkxqn
wXAqQrsxhFAS7u1ASn681gXieam853lfvpmzQ0e5HR1exITD3SbT2t3FveU5UB4Q
96gqA+tXJVk=
=4FmU
-----END PGP PUBLIC KEY BLOCK-----

27. SSLappsの標準的なコマンドラインオプション

-z ssl SSLモードのみを用いる; 他のものとはネゴシエートを試みない
-z secure (ftp, ftpd, telnet, telnetd)は、SSL-handshakeが失敗した時にnonsecure modeにならない
-z verify=level
  • 0 - サーバーはクライアントの証明書を要求しない; クライアントはサーバーの証明書を確認しないが、それをSSL接続を確立するために用いる
  • 1 - サーバーはクライアントの証明書を要求する; 両方とも証明書の確認を行う; 未知の発行者による証明であるために(確認が)失敗した場合には接続は確立する
  • 2 - サーバーはクライアントの証明書を要求する; 両方とも証明書の確認を行う; 証明書の確認が成功した場合のみSSL接続が確立する
-z cert=certfile (デフォルト <appname>.pem) 他の証明書ファイルを見に行く
-z key=keyfile (デフォルト <appname>.pem) 他のRSA秘密鍵を見に行く
-z certsok (サーバーのみ) クライアントの証明書を確認し、さらにOneline versionの確認をし、それが/etc/ssl.usersのエントリーと一致すれば、"通常の"ユーザー名とパスワードのかわりにそれを認証として使う
-z cipher どの暗号を使うか; (環境変数SSL_CIPHERでも設定できる)

28. SSLappsの標準的な環境変数

SSL_CERT_DIR 証明書ファイルがあるディレクトリー
SSL_CERT_FILE 証明書が入っているファイル
SSL_CIPHER どの暗号を使うか

29. SSLeayを用いた非商用ソフトにはどのようなものがありますか?

以下のリストは、私が知っているSSLeay対応のフリーウェア/シェアウェアなどのソフトです。 これらは我々が見つけた順にならんでいるだけで、いろいろなパッケージのどれがいいかという我々の意見ではありません。

29.1. SSLrsh

Simon J. Gerraty(sjg@zen.quick.com.au)はssl_rcmd()というSSLeay版のrcmd()を実装しました。これは.rhostsのかわりにX509を認証に使っています。

このパッケージにはSSLrsh, SSLrshd, SSLrcp, SSLrdist が含まれています。

29.2. Apache-SSL

Ben Laurie (ben@algroup.co.uk)は、SSLeayを使ってApacheにSSLをサポートするためのパッチに関する詳細は:

29.3. Cryptozilla

Mozilla Crypto Group (mcg@ssleay.org)はCryptozillaを作るためにNetscape Mozillaソースに暗号化を組み込みました。

29.4. TinyWeb

Max Masyutin (max@ritlabs.com)はSSLeayを使ったSSLをサポートするWin32のTinyWebサーバ(written in Delphi)の作者です。


30. SSLeayを用いた商用ソフトにはどのようなものがありますか?

以下が、私が知っているSSLeayを用いた商用ソフトのリストです。 これらは我々が見つけた順にならんでいるだけで、いろいろなパッケージのどれがいいかという我々の意見ではありません。

もしあなたの製品をこのリストに追加したければ、あなたが付け加えたい簡単な説明をつけてtjh@cryptsoft.comにemailで連絡してください。

30.1. WWW Servers

30.1.1. Stronghold

十分強い(full-strength)暗号が世界中で使えるStrongHold (元はApache-SSL-USとして知られていた)が商用および非商用で入手できます。 米国用はCommunity ConneXionhttp://stronghold.c2.net、国際用はUK Webhttp://stronghold.ukweb.comによって開発されました。

注: C2Netは米国内でのRSAアルゴリズムの商用利用に関して、RSAからのライセンスを持っています。

30.1.2. Roxen

RoxenSSLeayを使っています。詳細はhttp://www.roxen.comで入手できます。

30.1.3. iNETstore

iNETstoreは、SSLが使えるウェブブラウザーを含む、特殊なオンラインショップとカタログ構築システムです。詳細はhttp://www.smi.com.au/~cb2000/です。

30.2. WWW Browers

私はまだMicrosoft WindowsやUnix用のSSLeayベースの商用ブラウザーを知りません ... たぶんNetscapeとMicrosoftが彼のマーケットをとってしまったのでしょう。

30.2.1. Voyager

Voyager Amigaウェブブラウザーは、現在SSLeay 0.6.6をサポートしています。SSLモジュールはRC4、IDEA、DESの十分な強い暗号をサポートしています。最新版はSSLeayをサポートしており、http://www.vapor.com/voyager/から入手できます。

30.3. その他

WebブラウザーでもWebサーバーでもないものです。

30.3.1. SafePassage

Safe PassageはproxyサーバーのようにあなたのブラウザーとWebを透過的に仲介する十分な強さの(full-strength)暗号化を行うWeb proxyです。

さらに詳しいことはhttp://stronghold.ukweb.com/safepassageを見て下さい。

30.3.2. Secure Socket Relay

SSLeayベースのsecure socket relayをCelocomから評価用にダウンロードでき、非商用ならばフリーです。

http://www.celocom.se/ssr

30.3.3. PersonalSecure Web Proxy

PersonalSecure Web Proxyは、輸出版のブラウザーに代わって強い暗号のSSL接続を確立する、Windows 95/Windows 3.1ベースの小さなmiddleware製品です。 現在はNetscape NavigatorとInternet Explorerに対応しています。

http://www.security.is.co.za/Pages/HTTPPersonalSecure.htm


31. SSLeay上でどのようなライブラリーが使えますか?

以下が、私が知っているSSLeayを使ったフリーウェア/シェアウェア/等のライブラリーのリストです。

31.1. PGPlib

Tage Stabell-Kuloe (tage@ACM.org)はPGPを走らせずにPGPのパケットを扱うためのライブラリーを持っています。

Tageはこのライブラリーを使ったPGP鍵サーバーも動かしています:


32. 認証局のリスト


33. 推薦するコンサルタント

私たちは、SSLeayに関するコンサルティングができるのは誰かという質問を非常に多く尋ねられます。 私たちは推薦できる知識を持った人のリストを持っており、もしあなたがこの分野に興味を持っているならばtjh@cryptsoft.comにemailで知らせて下さい。

日本国内ではインフォサイエンス(株)SSLeayによるアプリケーション開発とコンサルティングを行なっているので、 ssleay@infoscience.co.jp 宛に連絡をください。