Network Security Services (NSS) は、セキュアな通信を必要とする
ソフトウェア開発のための
クロスプラットフォームライブラリです。クライアントサイド、サーバーサイドの両方で、
Transport Layer Security (TLS)、Secure Sockets Layer (SSL)、
S/MIME|S_MIME を提供し、クライアントサイドではスマートカード、サーバーサイドではSSLアクセラレータに対応しています。
NSSはオープンソースで開発されており、
AOL、
レッドハット、
サン・マイクロシステムズ、オラクル、
Google、そして多くの個人貢献者が共同で開発を行っています。
Mozillaはソースコード
リポジトリ、バグトラッキングシステム、メーリングリストなどのインフラを提供しています。
ライセンスは当初、
Mozilla Public License (MPL) 1.1、
GNU General Public License (GPL)、
GNU Lesser General Public License (LGPL) のトリプル
ライセンスでしたが、現在は他の
Mozillaプロジェクトと同様にMPL 2.0単独で
ライセンスされています。
歴史
NSSは、Netscape社がSSLプロトコルのために開発した
ライブラリを起源としています。
NSSモジュールは、
FIPS 140セキュリティレベル1および2について、1997年、1999年、2002年、2007年、2010年の5回にわたり認証を受けています。NSSは
FIPS 140認証を受けた最初のオープンソース
ライブラリです。
また、NSSはNISCCのTLS/SSLおよび
S/MIME|S_MIMEのテストスイートにも合格しています。
アプリケーションでの利用
NSSは、以下の
ソフトウェアで利用されています。
Mozilla Firefox、Thunderbird、
SeaMonkey、
Firefox for Mobile
AOL Communicator、
AOL Instant Messenger (AIM)
Android版およびOS X版を除く
Google Chromeおよび
Chromium、
Opera
Evolution、
Pidgin、
OpenOffice.orgなどのクライアントソフト
Red Hat Directory Server、Red Hat Certificate System
mod nss SSL module
Sun
Java Enterprise System、Sun
Java System Web Server、Sun
Java System Directory Server、Sun
Java System Portal Server、Sun
Java System Messaging Server、Sun
Java System Application Server
アーキテクチャ
NSSは、開発者がそれぞれのプラットフォームでの最適化のためのパッチを導入するためのフレームワークを提供しています。また、オープンソースな
クロスプラットフォームAPIである
Netscape Portable Runtime (NSPR) と連携して動作します。
ライブラリやAPIに加え、NSSはデバッグ、診断、証明書や鍵の管理、モジュール管理などのためのツールを提供しています。また、APIリファレンス、manページ、サンプルコードなどのドキュメントも付属しています。
開発者は、NSSをソースコードとしても、動的
ライブラリとしても利用できます。NSSは後方互換性が確保されており、再コンパイルや再リンクなしでNSSのアップグレードが可能です。
相互運用性と標準規格
NSSでサポートされている主なセキュリティ規格は以下の通りです。
SSL 2.0, 3.0
TLS 1.0 (RFC 2246), 1.1 (RFC 4346), 1.2 (RFC 5246), TLS 1.3 (草案)
DTLS 1.0 (RFC 4347), 1.2 (RFC 6347)
DTLS-SRTP (RFC 5764)
PKCS #1.
RSA暗号標準
PKCS #3. Diffie-Hellman鍵共有標準
PKCS #5. パスワードに基づく暗号化の標準
PKCS #7.
暗号メッセージ構文標準
PKCS #8. 秘密鍵情報構文の標準
PKCS #9. 選択された属性タイプ
PKCS #10.
証明書署名要求
PKCS #11. 暗号トークンインタフェース
PKCS #12. 個人情報交換構文の標準
S/MIME|S_MIME (RFC 2311, RFC 2633)
X.509 v3
OCSP (RFC 2560)
PKIX Certificate and CRL Profile (RFC 3280)
RSA, DSA, ECDSA, Diffie–Hellman, EC Diffie–Hellman, AES, トリプルDES, Camellia, IDEA, SEED, DES, RC2,
RC4,
SHA-1,
SHA-256, SHA-384, SHA-512,
MD2,
MD5,
HMAC
FIPS 186-2 疑似乱数生成器
ハードウェアサポート
NSSは
PKCS #11インターフェースを通じて、SSLアクセラレータ、ハードウェアセキュリティモジュール、スマートカードにアクセスできます。SafeNet社や
タレス・グループなど多くのハードウェアベンダーがこのインターフェースをサポートしており、NSSを利用するアプリケーションは、ハードウェアによる高速な暗号処理や、スマートカードに保存された秘密鍵を利用することができます。NSS 3.13からは
AES-NIに対応し、Intel製やAMD製のプロセッサでAESの高速処理が可能になりました。
Network Security Services for
Java (JSS) は、NSSの
Javaインターフェースを提供します。NSSがサポートするほとんどのセキュリティ標準と暗号技術をサポートしているほか、ASN.1形式およびBER/DER形式のエンコーディングに対応しています。
脚注
関連項目
Transport Layer Security
TLS実装の比較
外部リンク
Mozilla/Projects/NSS'>Network Security Services
JSS toolkit