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 (), 1.1 (), 1.2 (), TLS 1.3 (草稿) DTLS 1.0 (), 1.2 () DTLS-SRTP () 以下のPKCS標準 PKCS #1. RSA暗号標準 PKCS #3. Diffie-Hellman鍵共有標準 PKCS #5. パスワードに基づく暗号化の標準 PKCS #7. 暗号メッセージ構文標準 PKCS #8. 秘密鍵情報構文の標準 PKCS #9. 選択された属性タイプ PKCS #10. 証明書署名要求 PKCS #11. 暗号トークンインタフェース PKCS #12. 個人情報交換構文の標準 S/MIME (, ) X.509 v3 OCSP () PKIX Certificate and CRL Profile () 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