Network Security Services
![]() | |
開発元 | Mozilla Foundation, AOL, レッドハット, サン・マイクロシステムズ, オラクル, Google など |
---|---|
最新版 | 3.53.1 - 2020年6月16日[1] [±] |
リポジトリ | |
プログラミング 言語 | C言語、アセンブリ言語 |
対応OS | クロスプラットフォーム |
プラットフォーム | クロスプラットフォーム |
種別 | ライブラリ |
ライセンス | Mozilla Public License 2.0 |
公式サイト |
developer |
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回にわたり認証を受けている[2]。NSSはFIPS 140認証を受けた最初のオープンソースライブラリである。
また、NSSはNISCCのTLS/SSLおよびS/MIMEのテストスイートに合格している[3]
アプリケーションでの利用
[編集]- Mozillaソフトウェア (Mozilla Firefox、Thunderbird、SeaMonkey、Firefox for Mobile[4]
- AOL Communicator、AOL Instant Messenger (AIM)
- Android版およびOS X版を除くGoogle ChromeおよびChromium[5][6]、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でサポートされているセキュリティ規格は以下の通りである[3][7]
- 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の高速処理が可能となった[8]
Javaのサポート
[編集]Network Security Services for Java (JSS)はNSSのJavaインターフェイスを提供する。NSSがサポートするほとんどのセキュリティ標準と暗号技術をサポートしている他、ASN.1形式およびBER/DER形式のエンコーディングに対応している。
脚注
[編集]- ^ a b “Release notes for recent versions of NSS” (2021年5月13日). 2021年7月18日閲覧。
- ^ “FIPS Validation”. Mozilla Foundation (2011年11月11日). 2013年8月11日閲覧。
- ^ a b “Overview of NSS”. Mozilla Foundation (2013年5月16日). 2013年8月11日閲覧。
- ^ “Does Fennec use NSS?”. mozilla.dev.security.policy newsgroup (April 2010). 2013年8月11日閲覧。
- ^ “External: Chrome, NSS, and OpenSSL” (2014年1月26日). 2014年6月22日閲覧。
- ^ “The Chromium Project: BoringSSL”. 2015年3月7日閲覧。
- ^ “Encryption Technologies Available in NSS 3.11”. Mozilla (2007年2月26日). 2013年8月11日閲覧。
- ^ “AES-NI enhancements to NSS on Sandy Bridge systems” (2012年5月2日). 2013年8月11日閲覧。