網路安全服務

網路安全服務(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支持一系列安全標準,包括如下所示:

•TLS1.0(RFC 2246)、1.1(RFC 4346)和1.2(RFC 5246)。傳輸層安全(TLS)協定來自IETF取代的SSL v3.0,並保持了對SSL v3實現的向後兼容性。

•SSL2.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:公鑰和對稱密鑰加密中的常用算法。

•FIPS186-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接口的原始碼。

相關詞條

熱門詞條

聯絡我們