網絡安全服務

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

網絡安全服務
開發者Mozilla美國在線紅帽公司昇陽電腦甲骨文公司Google
當前版本
  • 3.106(2024年10月26日;穩定版本)[1]
編輯維基數據鏈接
源代碼庫 編輯維基數據鏈接
編程語言C語言匯編語言
操作系統跨平台
平台跨平台
類型函式庫
許可協議Mozilla公共許可證2.0
網站developer.mozilla.org/en-US/docs/NSS

歷史

編輯

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

FIPS 140驗證和NISCC測試

編輯

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

使用NSS的應用程序

編輯

AOLRed Hat、Sun微系統/Oracle公司Google及其他公司和個人貢獻者協作參與了NSS的開發。Mozilla提供了開源代碼庫、缺陷跟蹤系統和郵件列表及討論組這些基礎設施。有許多款產品中使用了NSS,以下是部分產品:

架構

編輯

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

軟件開發工具包

編輯

除了程序庫和API,NSS還提供了調試、診斷及證書和密鑰管理、加密模塊管理及其他開發任務所需的安全工具。NSS配有廣泛且持續增長的文檔,包括介紹材料、API參考、命令行工具的man頁面、示例代碼。

程序員可以使用NSS作為源代碼和作為共享(動態)程序庫。每個NSS發布版本都對此前的版本有向後兼容性,允許NSS用戶直接升級到新的NSS共享程序庫,無須重新編譯或重新鏈接他們的應用程序。

互操作性和開放標準

編輯

NSS支持一系列安全標準,包括如下所示[8][9]

  • 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-SRTPRFC 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–HellmanEC Diffie–HellmanAESTriple DESCamelliaIDEA、SEED、DES、RC2、RC4、SHA-1、SHA-256SHA-384SHA-512、MD2、MD5HMAC:公鑰和對稱密鑰加密中的常用算法。
  • FIPS 186-2偽隨機數生成器。

硬件支持

編輯

NSS支持PKCS #11接口訪問加密設備,例如SSL加速器、HSM-s和智能卡。自從大多數設備供應商(例如SafeNet和Thales)也支持此接口,使用NSS的應用程序可以使用加密硬件高速運作,以及使用駐留在智能卡上的私鑰,只要設備供應商提供了必要的中間件。NSS 3.13及更高版本中支持高級加密標準新指令(AES-NI)[10]

Java支持

編輯

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

另見

編輯

參考資料

編輯
  1. ^ NSS 3.106 release notes — Firefox Source Docs documentation. [2024年10月29日]. 
  2. ^ NSS 3.14 release notes. MDN. Mozilla Developer Network. [2015-09-01]. (原始內容存檔於2021-12-07). The NSS license has changed to MPL 2.0. Previous releases were released under a MPL 1.1/GPL 2.0/LGPL 2.1 tri-license. 
  3. ^ 3.0 3.1 3.2 FIPS. Mozilla. 2012-02-01 [2013-05-17]. (原始內容存檔於2013-05-02). 
  4. ^ Does Fennec use NSS?. mozilla.dev.security.policy newsgroup. April 2010 [2013-05-17]. 
  5. ^ The Chromium Project: BoringSSL. [2016-11-08]. (原始內容存檔於2015-09-23). 
  6. ^ Network Security Services. Mozilla. 2013-05-16 [2013-05-17]. (原始內容存檔於2014-03-28). 
  7. ^ NSS FAQ. Mozilla. 2013-05-16 [2013-05-17]. [失效連結]
  8. ^ Encryption Technologies Available in NSS 3.11. Mozilla. 2012-02-01 [2013-05-17]. (原始內容存檔於2013-04-02). 
  9. ^ "NSS 3.23 release notes"頁面存檔備份,存於網際網路檔案館).
  10. ^ AES-NI enhancements to NSS on Sandy Bridge systems. 2012-05-02 [2013-05-17]. (原始內容存檔於2014-04-13). 

外部連結

編輯