Usługi bezpieczeństwa sieci — Network Security Services
Deweloper(zy) | Mozilla , AOL , Red Hat , Sun Microsystems , Oracle Corporation , Google i inne | ||||
---|---|---|---|---|---|
Stabilne zwolnienie(-a) [±] | |||||
| |||||
Magazyn | |||||
Napisane w | C , montaż | ||||
System operacyjny | Wieloplatformowy | ||||
Platforma | Wieloplatformowy | ||||
Rodzaj | Biblioteki | ||||
Licencja | MPL 2.0 | ||||
Strona internetowa | programista |
Network Security Services ( NSS ) to zbiór kryptograficznych bibliotek komputerowych zaprojektowanych do obsługi wieloplatformowego rozwoju aplikacji klienckich i serwerowych z włączonymi zabezpieczeniami z opcjonalną obsługą sprzętowej akceleracji TLS/SSL po stronie serwera i sprzętowych kart inteligentnych po stronie klienta. NSS zapewnia kompletną implementację open-source bibliotek kryptograficznych obsługujących Transport Layer Security (TLS) / Secure Sockets Layer (SSL) i S/MIME . Wersje NSS wcześniejsze niż 3.14 są trójlicencjonowane w ramach Mozilla Public License 1.1, GNU General Public License i GNU Lesser General Public License . Od wersji 3.14 wydania NSS są objęte licencją Mozilla Public License 2.0 zgodną z GPL.
Historia
NSS wywodzi się z bibliotek opracowanych, gdy Netscape opracował protokół bezpieczeństwa SSL.
Walidacja FIPS 140 i testy NISCC
Moduł kryptograficzny oprogramowania NSS został zweryfikowany pięciokrotnie (w 1997, 1999, 2002, 2007 i 2010) pod kątem zgodności z FIPS 140 na poziomach bezpieczeństwa 1 i 2. NSS była pierwszą biblioteką kryptograficzną typu open source, która otrzymała walidację FIPS 140. Biblioteki NSS przeszły pomyślnie zestawy testów NISCC TLS/SSL i S/MIME (1,6 miliona przypadków testowych błędnych danych wejściowych).
Aplikacje korzystające z NSS
AOL , Red Hat , Sun Microsystems / Oracle Corporation , Google i inne firmy oraz indywidualni współtwórcy współtworzyli NSS. Mozilla dostarcza repozytorium kodu źródłowego, system śledzenia błędów oraz infrastrukturę dla list mailingowych i grup dyskusyjnych. Oni i inni wymienieni poniżej używają NSS w różnych produktach, w tym:
- Produkty klienckie Mozilli , w tym Firefox , Thunderbird , SeaMonkey i Firefox na urządzenia mobilne .
- AOL Communicator i AOL Instant Messenger (AIM)
- Aplikacje klienckie typu open source, takie jak Evolution , Pidgin i OpenOffice.org 2.0 (i ich potomkowie).
- Produkty serwerowe firmy Red Hat : Red Hat Directory Server , Red Hat Certificate System oraz mod nss moduł SSL dla serwera WWW Apache .
- Produkty serwerowe Sun firmy Sun Java Enterprise System , w tym Sun Java System Web Server , Sun Java System Directory Server , Sun Java System Portal Server , Sun Java System Messaging Server oraz Sun Java System Application Server , wersja open source Directory Server OpenDS .
- Libreswan IKE/IPsec wymaga NSS. Jest to widelec Openswan, który może opcjonalnie korzystać z NSS.
Architektura
NSS zawiera strukturę, do której programiści i producenci OEM mogą dostarczać poprawki, takie jak kod asemblera, w celu optymalizacji wydajności na swoich platformach. Mozilla certyfikowała NSS 3.x na 18 platformach. NSS korzysta z Netscape Portable Runtime (NSPR), niezależnego od platformy API o otwartym kodzie źródłowym dla funkcji systemowych zaprojektowanych w celu ułatwienia rozwoju międzyplatformowego. Podobnie jak NSS, NSPR był intensywnie używany w wielu produktach.
Zestaw do tworzenia oprogramowania
Oprócz bibliotek i interfejsów API, NSS zapewnia narzędzia bezpieczeństwa wymagane do debugowania, diagnostyki, zarządzania certyfikatami i kluczami, zarządzania modułami kryptograficznymi i innych zadań programistycznych. NSS zawiera obszerny i stale powiększający się zestaw dokumentacji, w tym materiały wprowadzające, referencje API, man
strony z narzędziami wiersza poleceń i przykładowy kod.
Programiści mogą wykorzystywać NSS jako biblioteki źródłowe i współdzielone (dynamiczne). Każde wydanie NSS jest wstecznie kompatybilne z poprzednimi wydaniami, umożliwiając użytkownikom NSS uaktualnienie do nowych bibliotek współdzielonych NSS bez konieczności ponownej kompilacji lub ponownego łączenia ich aplikacji.
Interoperacyjność i otwarte standardy
NSS obsługuje szereg standardów bezpieczeństwa, w tym:
- TLS 1,0 (RFC 2246), 1,1 (RFC 4346), 1,2 (RFC 5246) i 1,3 (RFC 8446). Protokół Transport Layer Security (TLS) z IETF zastępuje SSL v3.0, zachowując zgodność wsteczną z implementacjami SSL v3.
- SSL 3.0. Protokół Secure Sockets Layer (SSL) umożliwia wzajemne uwierzytelnianie między klientem a serwerem oraz ustanowienie uwierzytelnionego i szyfrowanego połączenia.
- DTLS 1.0 (RFC 4347) i 1.2 (RFC 6347).
- DTLS-SRTP (RFC 5764).
- Następujące standardy PKCS :
- PKCS #1. Standard RSA regulujący implementację kryptografii klucza publicznego w oparciu o algorytm RSA.
- PKCS #3. Standard RSA, który reguluje implementację umowy klucza Diffie-Hellmana.
- PKCS #5. Standard RSA, który reguluje kryptografię opartą na hasłach, na przykład w celu szyfrowania kluczy prywatnych do przechowywania.
- PKCS #7. Standard RSA regulujący stosowanie kryptografii do danych, na przykład podpisów cyfrowych i kopert cyfrowych.
- PKCS #8. Standard RSA regulujący przechowywanie i szyfrowanie kluczy prywatnych.
- PKCS #9. Standard RSA, który reguluje wybrane typy atrybutów, w tym te używane z PKCS #7, PKCS #8 i PKCS #10.
- PKCS #10. Standard RSA regulujący składnię żądań certyfikatów.
- PKCS #11. Standard RSA, który reguluje komunikację z tokenami kryptograficznymi (takimi jak akceleratory sprzętowe i karty inteligentne) i umożliwia niezależność aplikacji od określonych algorytmów i implementacji.
- PKCS #12. Standard RSA regulujący format używany do przechowywania lub transportu kluczy prywatnych, certyfikatów i innych tajnych materiałów.
- Składnia wiadomości kryptograficznych , używana w S/MIME (RFC 2311 i RFC 2633). Specyfikacja wiadomości IETF (oparta na popularnym internetowym standardzie MIME ), która zapewnia spójny sposób wysyłania i odbierania podpisanych i zaszyfrowanych danych MIME.
- X.509 v3 . Standard ITU, który reguluje format certyfikatów używanych do uwierzytelniania w kryptografii klucza publicznego.
- OCSP (RFC 2560). Protokół OCSP (Online Certificate Status Protocol) zarządza potwierdzaniem ważności certyfikatu w czasie rzeczywistym.
- Certyfikat PKIX i profil CRL (RFC 3280). Pierwsza część czteroczęściowego standardu opracowywanego przez grupę roboczą Infrastruktury Klucza Publicznego (X.509) IETF (znanej jako PKIX) dla infrastruktury klucza publicznego dla Internetu.
- 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 : Powszechne algorytmy kryptograficzne używane w kryptografii z kluczem publicznym i kluczem symetrycznym.
- Generator liczb pseudolosowych FIPS 186-2.
Wsparcie sprzętowe
NSS obsługuje interfejs PKCS #11 umożliwiający dostęp do sprzętu kryptograficznego, takiego jak akceleratory TLS/SSL , sprzętowe moduły bezpieczeństwa i karty inteligentne . Ponieważ większość dostawców sprzętu, takich jak SafeNet , AEP i Thales, również obsługuje ten interfejs, aplikacje obsługujące NSS mogą współpracować z szybkim sprzętem kryptograficznym i używać kluczy prywatnych znajdujących się na różnych kartach inteligentnych, jeśli dostawcy zapewnią niezbędne oprogramowanie pośredniczące. NSS w wersji 3.13 i nowszych obsługuje nowe instrukcje Advanced Encryption Standard (AES-NI).
Obsługa Javy
Network Security Services for Java (JSS) składa się z interfejsu Java do NSS. Obsługuje większość standardów bezpieczeństwa i technologii szyfrowania obsługiwanych przez NSS. JSS zapewnia również czysty interfejs Java dla typów ASN.1 i kodowania BER / DER .