Network Security Services

Network Security Services (以下NSS)は、セキュア通信を用いるソフトウェアの開発のためのクロスプラットフォームライブラリである。NSSは、クライアントサイド、サーバサイドの双方においてTransport Layer Security (TLS)、Secure Sockets Layer (SSL)およびS/MIMEを提供し、クライアントサイドではスマートカード、サーバサイドではSSLアクセラレータに対応している。NSSはオープンソース実装であり、AOL、レッドハット、サン・マイクロシステムズ、オラクル、Googleやその他の複数の企業、個々の貢献者が共同でNSSを開発している。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プロトコルのために開発したライブラリを起源としている。

FIPS 140認証とNISCC試験 
NSSモジュールは、FIPS 140セキュリティレベル1及び2について、1997年、1999年、2002年、2007年、2010年の5回にわたり認証を受けている。NSSはFIPS 140認証を受けた最初のオープンソースライブラリである。

また、NSSはNISCCのTLS/SSLおよびS/MIMEのテストスイートに合格している

アプリケーションでの利用 
 Mozillaソフトウェア (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には、開発者がそれぞれのプラットフォームでの最適化のためのパッチを導入するためのフレームワークを有している。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標準
 PKCS #1. RSA暗号標準
 PKCS #3. Diffie-Hellman鍵共有標準
 PKCS #5. パスワードに基づく暗号化の標準
 PKCS #7. 暗号メッセージ構文標準
 PKCS #8. 秘密鍵情報構文の標準
 PKCS #9. 選択された属性タイプ
 PKCS #10. 証明書署名要求
 PKCS #11. 暗号トークンインタフェース
 PKCS #12. 個人情報交換構文の標準
 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に対応しており、一般向けのインテル製、AMD製のプロセッサでAESの高速処理が可能となった

Javaのサポート 
Network Security Services for Java (JSS)はNSSのJavaインターフェイスを提供する。NSSがサポートするほとんどのセキュリティ標準と暗号技術をサポートしている他、ASN.1形式およびBER/DER形式のエンコーディングに対応している。

脚注

関連項目 

Transport Layer Security
TLS実装の比較

外部リンク 
 Network Security Services
 JSS toolkit

インターネットのプロトコル
電子商取引
セキュア通信
Mozilla
Netscape
Transport Layer Security
オープンソースソフトウェア