網絡安全服務

網絡安全服務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、太陽電腦/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). 

外部連結