網絡安全服務

網絡安全服務（Network Security Services，簡稱NSS）是一組支持跨平臺開發安全客戶端與服務器應用程序的程序庫，它提供服務器側硬件TLS/SSL加速和客戶端側智能卡的可選支持。NSS提供了支持TLS/SSL及S/MIME的完全開源實現。早前以多許可方式授權在Mozilla公共許可證 1.1、GNU通用公共許可證和GNU寬通用公共許可證，但從3.14版本開始升級到GPL兼容的MPL 2.0許可證。

**歷史**
NSS的開發源自Netscape開發時SSL安全協議的發明。

**FIPS 140驗證和NISCC測試**
NSS軟件加密模塊已5次通過驗證（1997年、1999年、2002年、2007年和2010年），符合FIPS 140的安全層級1和2。NSS是首個通過FIPS 140驗證的開源的加密程序庫。NSS程序庫也已通過NISCC TLS/SSL和S/MIME測試套件（160萬無效數據輸入的測試）。

**使用NSS的應用程序**
AOL、Red Hat、Sun微系統/Oracle公司、Google及其他公司和個人貢獻者協作參與了NSS的開發。Mozilla提供了開源代碼庫、缺陷跟蹤系統和郵件列表及討論組這些基礎設施。有許多款產品中使用了NSS，以下是部分產品：- Mozilla客戶端產品，包括Firefox、Thunderbird、SeaMonkey和Firefox for mobile（Fennec）。- AOL Communicator和AOL Instant Messenger（AIM）- Opera- 開源客戶端程序，例如Evolution、Pidgin、OpenOffice.org 2.0及更高版本，以及Apache OpenOffice。- Red Hat的服務器產品：Red Hat Directory Server, Red Hat Certificate System以及Apache網頁服務器的mod nss SSL模塊。- Sun Java Enterprise System的Sun服務器產品，包括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，目錄服務器的開源版本OpenDS。- Libreswan IKE/IPsec需要NSS。它是Openswan的一個分支，其中可選使用NSS。- Google Chrome和Chromium曾使用NSS，但現在它們使用BoringSSL。

**架構**
NSS包含一個框架，開發者和OEM廠商可以貢獻補丁，例如優化在其特定平臺性能的彙編代碼。Mozilla已認證NSS 3.x可用於18種平臺。NSS製作了一個Netscape便攜式運行時（NSPR）, 一個無關平臺的開源API，便於跨平臺開發和完成系統功能設計。NSS、NSPR等已被多種產品大量使用。

**軟件開發工具包**
除了程序庫和API，NSS還提供了調試、診斷及證書和密鑰管理、加密模塊管理及其他開發任務所需的安全工具。NSS配有廣泛且持續增長的文檔，包括介紹材料、API參考、命令行工具的man頁面、示例代碼。
程序員可以使用NSS作為源代碼和作為共享（動態）程序庫。每個NSS發佈版本都對此前的版本有向後兼容性，允許NSS用戶直接升級到新的NSS共享程序庫，無須重新編譯或重新鏈接他們的應用程序。

**互操作性和開放標準**
NSS支持一系列安全標準，包括如下所示：- TLS 1.0（RFC 2246）、1.1（RFC 4346）和1.2（RFC 5246）。傳輸層安全（TLS）協議來自IETF取代的SSL v3.0，並保持了對SSL v3實現的向後兼容性。- SSL 2.0和3.0。安全套階層（SSL）協議允許客戶端與服務器互相認證身份並建立一個經身份驗證且加密的連接。- DTLS 1.0（RFC 4347）和1.2（RFC 6347）。- DTLS-SRTP（RFC 5764）。- 下列PKCS標準：
** PKCS #1。RSA標準，約定基於RSA算法的公鑰加密算法實現。
** PKCS #3。RSA標準，約定Diffie–Hellman密鑰協議的實現。
** PKCS #5。RSA標準，約定基於密碼的加密法，例如加密存儲設備上的私鑰。
** PKCS #7。RSA標準，約定加密數據的應用程序，例如數字簽名和數字信封。
** PKCS #8。RSA標準，約定私鑰的存儲和加密。
** PKCS #9。RSA標準，約定選擇的屬性類型，包括PKCS #7。PKCS #8和PKCS #10的使用。
** PKCS #10。RSA標準，約定證書請求的語法。
** PKCS #11。RSA標準，約定加密令牌的通信（例如硬件加速器和智能卡）並允許應用程序獨立於特定算法和實現。
** PKCS #12。RSA標準，約定存儲或傳輸私鑰、證書和其他秘密材料的格式。- Cryptographic Message Syntax，使用在S/MIME（RFC 2311和RFC 2633）中。IETF消息標準（基於流行的互聯網MIME標準）提供了一個一致的方法來發送和接收簽名並已加密的MIME數據。- X.509 v3。ITU標準，公鑰加密中用於身份驗證的證書的格式。- OCSP（RFC 2560）。在線證書狀態協議（OCSP）提供即時的證書有效性確認服務。- PKIX證書和CRL配置（RFC 3280）。按IETF的公鑰基礎設施（X.509）工作組（也稱PKIX）為互聯網的公鑰基礎設施開發的四個標準的部分內容組成。- RSA、DSA、ECDSA、Diffie–Hellman、EC Diffie–Hellman、AES、Triple 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加速器、HSM-s和智能卡。自從大多數設備供應商（例如SafeNet和Thales）也支持此接口，使用NSS的應用程序可以使用加密硬件高速運作，以及使用駐留在智能卡上的私鑰，只要設備供應商提供了必要的中間件。NSS 3.13及更高版本中支持高級加密標準新指令（AES-NI）。

**Java支持**
Network Security Services for Java（JSS）包含一個指向NSS的Java接口。它由NSS提供，支持大多數安全標準和加密技術。JSS也提供一個純Java接口用於ASN.1類型和BER/DER編碼。Mozilla CVS樹提供了指向NSS的Java接口的源代碼。

**另見**
 信息安全- TLS的應用對比- OpenSSL- MatrixSSL

**參考資料**

**外部鏈接**
  Network Security Services date=20140328061522 -  Network Security Services date=20210501074852 -  JSS toolkit date=20210502091032 - Cite web|url=http://csrc.nist.gov/groups/STM/cmvp/documents/140-1/1401val1997.htm#7|title=Validated FIPS 140-1 and FIPS 140-2 Cryptographic Modules: 1997|date=2013-04-02|publisher=NIST|access-date=2016-05-17|archive-date=2011-11-20|archive-url=https://web.archive.org/web/20111120173156/http://csrc.nist.gov/groups/STM/cmvp/documents/140-1/1401val1997.htm#7|dead-url=no- Cite web|url=http://csrc.nist.gov/groups/STM/cmvp/documents/140-1/1401val2002.htm#248|title=Validated FIPS 140-1 and FIPS 140-2 Cryptographic Modules: 2002|date=2013-04-02|publisher=NIST|access-date=2016-05-17|archive-date=2017-09-13|archive-url=https://web.archive.org/web/20170913212634/http://csrc.nist.gov/groups/STM/cmvp/documents/140-1/1401val2002.htm#248|dead-url=no- Cite web|url=http://csrc.nist.gov/groups/STM/cmvp/documents/140-1/1401val2010.htm#1280|title=Validated FIPS 140-1 and FIPS 140-2 Cryptographic Modules: 2010|date=2013-05-17|publisher=NIST|access-date=2016-05-17|archive-date=2017-08-24|archive-url=https://web.archive.org/web/20170824152753/http://csrc.nist.gov/groups/STM/cmvp/documents/140-1/1401val2010.htm#1280|dead-url=no