一般的な質問
Network Security Services (NSS) とは何ですか?
NSS とは、セキュリティ機能が利用できるクライアント/サーバアプリケーションのクロスプラットフォーム開発をサポートするようにデザインされたライブラリ、API、ユーティリティ、そして参考文献のセットです。NSS では、Netscape や他の会社で利用されている暗号ライブラリの完全にオープンソースな実装が提供されます。NSS が利用されている製品の例としては、Netscape 6 ブラウザ、iPlanet E-Commerce Solutions のサーバ製品、Gateway Connected Touch Pad with Instant AOL などが挙げられます。
NSS の概要については、NSS 概観 をご覧ください。オープンソース NSS プロジェクトの詳細情報は、NSS プロジェクトのページ をご覧ください。
NSS では何ができるのですか? 私が使っているアプリケーションで役に立つのでしょうか?
あなたが使っているアプリケーションに、SSL、S/MIME、その他のインターネットセキュリティスタンダードの機能を加えたい場合 Netscape Security Services (NSS) を使うことができます。NSS は SSL および TSL のすべてのバージョンをサポートしているので、すでに SSL をサポートしている多数のクライアントやサーバと通信する必要があるアプリケーションにはまさにうってつけといえます。
NSS に PKCS #11 インターフェースが含まれているということは、あなたのアプリケーションがサーバ上の ハードウェアアクセラレータ や二因子認証 (two-factor authentication) のための スマートカード を利用できるということを意味しています。
NSS は OpenSSL と比べてどうですか?
OpenSSL はサーバサイド SSL、TLS、および汎用暗号化機能ライブラリを実装するオープンソースプロジェクトですが、PKCS #11 をサポートしていません。OpenSSL は Eric A. Young と Tim J. Hudson によって開発された SSLeay ライブラリに基づいており、Apache サーバで幅広く使用されています。Apache スタイルのライセンスが付与されています。
NSS は PKCS #11 や S/MIME をはじめとして、サーバおよびクライアント両方のアプリケーションをサポートしています。できるだけ多くの用途を可能にするため、NSS は Mozilla Public License と GNU General Public License の両方でライセンスされています。MPL 条項下または GPL 条項下のどちらでライセンスするかを選択することができます。
NSS は SSLRef と比べてどうですか?
SSLRef は初期の SSL プロトコルのレファレンス実装で、フィックスされることのないバグがあり、TLS や新しい 56-bit エクスポート暗号スイートをサポートしていません。さらに SSLRef は PKCS#1 への Bleichenbacher 攻撃に対する修正が施されていません。
Netscape はもう SSLRef を管理していませんし、利用できないようにしています。SSLRef は SSL 実装の一例としてビルドされたものであり、製品としてのアプリケーションのためにビルドされたものではありません。
NSS は商業的な開発者によって利用されるような目的からデザインされたもので、Netscape や他の会社から出されている多くのクライアント/サーバ製品で利用されているセキュリティ機能をサポートするために利用されているのと同じアーキテクチャを使用した完全なソフトウェア開発キットを備えています。
どのようなプラットフォーム、開発環境がサポートされているのでしょう?
iPlanet E-Commerce Solutions は NSS 3.1 が 18のプラットフォームで利用できることを確認しています。その中には、AIX 4.3、HP-UX 11.0、Red Hat Linux 6.0、Solaris (2.6 以降) 、Windows NT (4.0 以降) 、そして Windows 2000 が含まれており、他の貢献者がさらに多くのプラットフォームで利用できるよう作業を進めています。NSS 3.1 API には C または C++ 開発環境が必要です。
最新の NSS リリースノートやプラットフォームに関する詳細情報は、プロジェクト情報 をご覧ください。
どのような暗号化スタンダードがサポートされているのでしょう?
NSS は SSL SSL v2/v3、TLS、PKCS #5、PKCS #7、PKCS #11、PKCS #12、S/MIME、そして X.509 v3 証明書をサポートしています。詳細情報は、Encryption Technologies Available in NSS 3.11 をご覧ください。
NSS と PSM との関係はどのようなものでしょう?
Personal Security Manager (PSM) は NSS の上にビルドされており、セキュリティ機能を備えたアプリケーションのクロスプラットフォーム開発をサポートするようにデザインされたライブラリとデーモンから成っています。PSM バイナリーでは、アプリケーションのために暗号処理を行うクライアントモジュールが提供されます。Netscape Personal Security Manager は、Netscape 6 や Gateway Connected Touch Pad with Instant AOL とともに公開されており、Communicagotr 4.7x でも利用できるようになっています。
PSM オープンソースプロジェクトについての詳細情報は、Personal Security Manager をご覧ください。
ソースはどこで手に入れられますか?
NSS 3.1 ソースのチェックアウトおよびビルド方法については、NSS 3.1 ビルドガイド をご覧ください。
ソースコードは ftp://ftp.mozilla.org/pub/mozilla.org/security/ からも tar ファイルとしてダウンロードできます。
いくらしますか?
NSS ソースコードおよびバイナリ (利用できるようになった暁には) は完全に無料です。ライセンス料、著作権使用料、購読料、すべて無料です。
開発者向けの質問
どのようなハードウェアアクセラレータがサポートされているのでしょう?
NSS はハードウェアアクセラレーションのための PKCS #11 インターフェースをサポートしています。Chrysalis-IT や nCipher、Rainbow Technologies をはじめとする大手のアクセラレータベンダーもこのインターフェースをサポートしているため、NSS が利用できるアプリケーションもまた多様なハードウェアアクセラレーションをサポートできます。
NSS を利用してスマートカードを私のプリケーションに組み込むにはどうしたら良いでしょう?
NSS は スマートカードのための PKCS #11 インターフェースをサポートしています。そのため、NSS によって提供される PKCS #11 インターフェースを利用するアプリケーションは、ActiveCard や Litronic、SafeNet、SecureID Technologies をはじめとする大手のベンダーのスマートカードをサポートします。これらのカードは PKCS #11 インターフェースをサポートしています。
NSS は他の Netscape 製品とどのような互換性がありますか?
NSS は他の Netscape 製品と二つの方法で緊密に統合されています。第一に、SSL や TLS を実装するために NSS を利用することで SSL および TLS をサポートする Netscape や他のベンダーからのすべての製品と SSL 通信が可能になります。第ニに、NSS を利用することで Netscape クライアントとサーバ製品、そしてあなたのアプリケーションとの間で証明書を簡単に共有することができます。
NSS には Netscape Portable Runtime (NSPR) が必要ですか?
クロスプラットフォームサポートを提供するため、NSS は Netscape Portable Runtime (NSPR) ライブラリを移植用インターフェースおよびネットワーク I/O やスレッドモデルのための一貫したクロスプラットフォーム・セマンティクスを提供する実装として利用します。アプリケーション全体で NSPR を利用することもできますし、NSS を呼び出す部分内でのみ利用することもできます。Netscape ではマルチスレッドアプリケーションでは NSPR またはネイティブな OS スレッドモデルを採用することを強くお薦めします。(最近の NSPR リリースでは、NSPR のスレッドモデルは、OS がネイティブなスレッドを持っている限り、ネイティブスレッドモデルと互換性を持つようになっています。) あるいは、オープンソース NSPR 実装を採用して、あなたの既存のアプリケーションのスレッドモデルと互換性を持たせることもできます。NSPR に関するより詳しい情報は、Netscape Portable Runtime で見ることができます。
アプリケーションプロトコルが HTTP でなくても NSS は利用できるのでしょうか?
はい。SSL はアプリケーションプロトコルとは独立しており、TCP/IP を利用したカスタムアプリケーションプロトコルだけではなく、共通のインターネット標準のアプリケーションプロトコル (HTTP、POP3、FTP、SMTP など) でも作動します。
NSS をアプリケーションに組み込むにはどのくらい時間がかかるのでしょうか?
統合のための作業は関係する要素の数によります。例えば、開発者の技術やアプリケーションの複雑さ、アプリケーションで要求されるセキュリティのレベルなどです。NSS には、統合プロセスをすぐに開始できるように、SSL API についての詳細な参考文献や基本的な SSL 機能 (暗号化されたセッションの設定、サーバ認証、そしてクライアント認証) のデモ用サンプルコードが含まれています。ただし、あなたのアプリケーションが洗練された証明書管理やスマートカード、ハードウェアアクセラレーションを必要とする場合、統合作業はより広範囲に渡ることになるでしょう。
NSS ツールはどこからダウンロードできますか?
いくつかのプラットフォーム向けのコマンドラインツールを含んだ NSS バイナリビルドは https://ftp.mozilla.org/pub/mozilla.o...y/nss/releases からダウンロードできます。同時に必要になる NSPR は https://ftp.mozilla.org/pub/mozilla.org/nspr/releases/ からダウンロードできます。
SSL についてより詳しく知るためにはどうしたら良いですか?
NSS は SSL に関連する広範な参考文献を用意しています。そのなかには高レベルな導入、詳細な API 参考文献、シンプルなクライアント/サーバアプリケーションのためのサンプルコード、オリジナルの SSL 3.0 仕様、デバッグ SSL アプリケーションについての情報が含まれます。詳しくは SSL/TLS プロジェクトページ をご覧ください。また、デバッグ SSL アプリケーションで利用されているものも含めた NSS ツールについての詳細情報は、NSS セキュリティツール をご覧ください。
ライセンスに関する質問
NSS はどのようにライセンスされていますか?
NSS は Mozilla Public License および GNU General Public License でデュアルライセンスされています。詳しくは Mozilla Crypto FAQ をご覧ください。
NSS は合衆国外でも利用できますか?
利用できます。NSS 3.1 ビルドガイド および ftp://ftp.mozilla.org/pub/mozilla.org/security/ をご覧ください。ただし、NSS ソースコードは合衆国輸出規制や他の合衆国の法律の対象となり、特定の国 (2000 年 1 月時点では、キューバ、イラン、イラク、リビア、北朝鮮、スーダン、シリアおよびタリバン支配地域のアフガニスタン) 、あるいは合衆国からの輸出物を受け取ることが禁じられている個人や組織 ((a) 産業安全保障局の Denied Parties List または Entity List、(b) 財務省外国資産管理局の Specially Designated Nationals および Blocked Persons リスト、(c) ミサイル技術、核兵器、化学兵器、生物兵器に関与する) に対しては輸出、再輸出が認められない可能性があります。
暗号化機能を持つソフトウェアの合衆国輸出管理についてのより詳しい情報は、Mozilla Crypto FAQ をご覧ください。