Network Security Services software | |
---|---|
Screenshot di about:support su Firefox 90, che mostra le informazioni sulla versione di Network Security Services (NSS) | |
Genere | Crittografia |
Sviluppatore | Mozilla |
Ultima versione | 3.106 (26 ottobre 2024) |
Sistema operativo | Multipiattaforma |
Linguaggio | C linguaggio assembly |
Licenza | MPL 2.0 (licenza libera) |
Sito web | developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS |
Network Security Services (NSS) è una raccolta di librerie crittografiche concepite per supportare lo sviluppo multipiattaforma di applicazioni client e server abilitate alla sicurezza, con supporto opzionale per l'accelerazione hardware TLS/SSL sul lato server e smart card hardware sul lato client. NSS fornisce un'implementazione open-source ompleta delle librerie crittografiche che supportano Transport Layer Security (TLS) / Secure Sockets Layer (SSL) e S/MIME. Le versioni di NSS antecedenti alla versione 3.14 sono rilasciate sotto la Mozilla Public License 1.1, GNU General Public License e GNU Lesser General Public License. Dalla versione 3.14, le versioni di NSS sono rilasciate con licenza Mozilla Public License 2.0, compatibile con la GPL.[1]
Storia
[modifica | modifica wikitesto]NSS nasce dalle librerie sviluppate quando Netscape ha sviluppato il protocollo di sicurezza SSL.
Convalida FIPS 140 e test NISCC
[modifica | modifica wikitesto]Il modulo crittografico del software NSS è stato convalidato cinque volte (nel 1997,[2] 1999, 2002,[3] 2007 e 2010[4]) per la conformità a FIPS 140 per i livelli di sicurezza 1 e 2.[5] NSS è stata la prima libreria crittografica open source a ricevere la convalida FIPS 140.[5] Le librerie NSS hanno superato gli audit NISCC TLS/SSL e S/MIME (1,6 milioni di casi di test di dati di input non validi).[5]
Applicazioni che utilizzano NSS
[modifica | modifica wikitesto]AOL, Red Hat, Sun Microsystems / Oracle Corporation, Google e altre aziende e privati hanno collaborato allo sviluppo di NSS. Mozilla fornisce il repository del codice sorgente, il sistema di tracciamento dei bug e l'infrastruttura per le mailing list e i gruppi di discussione. L'azienda e le altre imprese citate utilizzano NSS in una serie di prodotti, tra cui:
- Prodotti client Mozilla, tra cui Firefox, Thunderbird, SeaMonkey e Firefox per dispositivi mobili.[6]
- AOL Communicator e AOL Instant Messenger (AIM)
- Applicazioni client open source come Evolution, Pidgin e OpenOffice.org 2.0 e versioni successive (e i suoi discendenti).
- Prodotti server di Red Hat : Red Hat Directory Server, Red Hat Certificate System e il modulo mod nss SSL per il server web Apache.
- Prodotti server Sun di Sun Java Enterprise System, tra cui Sun Java System Web Server, Sun Java System Directory Server, Sun Java System Portal Server, Sun Java System Messaging Server e Sun Java System Application Server, versione open source di Directory Server OpenDS.
- Libreswan IKE/IPsec richiede NSS. Si tratta di un fork di Openswan che potrebbe facoltativamente utilizzare NSS.
Architettura
[modifica | modifica wikitesto]NSS comprende un framework al quale gli sviluppatori e gli OEM possono contribuire con patch, come codice assembly, per ottimizzare le prestazioni sulle loro piattaforme. Mozilla ha certificato NSS 3.x su 18 piattaforme.[7][8] NSS si avvale di Netscape Portable Runtime (NSPR), un'API open-source compatibile con qualsiasi piattaforma per le funzioni di sistema, progettata per facilitare lo sviluppo multipiattaforma. Come NSS, NSPR è stato utilizzato massicciamente in diversi prodotti.
Kit di sviluppo software
[modifica | modifica wikitesto]In aggiunta alle librerie e API, NSS fornisce strumenti di sicurezza utili per il debug, la diagnostica, la gestione dei certificati e delle chiavi, la gestione dei moduli crittografici e altre attività di sviluppo. NSS è dotato di una documentazione estesa e in continua espansione, comprendente materiale introduttivo, riferimenti alle API, pagine man
per strumenti a riga di comando e codice di esempio.
I programmatori possono utilizzare NSS come sorgente e come librerie condivise (dinamiche). Ogni versione di NSS è compatibile con le versioni precedenti, consentendo agli utenti di NSS di passare a nuove librerie condivise senza dover ricompilare o ricollegare le proprie applicazioni.
Interoperabilità e standard aperti
[modifica | modifica wikitesto]NSS supporta una gamma di standard di sicurezza, tra cui i seguenti:[9][10]
- TLS 1.0 (RFC 2246), 1.1 (RFC 4346), 1.2 (RFC 5246) e 1.3 (RFC 8446). Il protocollo Transport Layer Security (TLS) dell'IETF sostituisce SSL v3.0, pur rimanendo retrocompatibile con le implementazioni SSL v3.
- Certificato SSL 3.0. Il protocollo Secure Sockets Layer (SSL) consente l'autenticazione reciproca tra un client e un server e la creazione di una connessione autenticata e crittografata.
- DTLS 1.0 (RFC 4347) e 1.2 (RFC 6347).
- DTLS-SRTP (RFC 5764).
- I seguenti standard PKCS:
- Codice PKCS n. 1. Standard RSA che regola l'implementazione della crittografia a chiave pubblica basata sull'algoritmo RSA.
- Codice PKCS n. 3. Standard RSA che regola l'implementazione dell'accordo sulle chiavi Diffie-Hellman.
- Codice PKCS n. 5. Standard RSA che regola la crittografia basata su password, ad esempio per crittografare chiavi private a scopo di archiviazione.
- Codice PKCS n. 7. Standard RSA che regola l'applicazione della crittografia ai dati, ad esempio firme digitali e buste digitali.
- Codice PKCS n. 8. Standard RSA che regola l'archiviazione e la crittografia delle chiavi private.
- Codice PKCS n. 9. Standard RSA che regola i tipi di attributi selezionati, inclusi quelli utilizzati con PKCS #7, PKCS #8 e PKCS #10.
- Codice PKCS n. 10. Standard RSA che regola la sintassi per le richieste di certificati.
- Codice PKCS n. 11. Standard RSA che regola la comunicazione con token crittografici (come acceleratori hardware e smart card) e consente l'indipendenza delle applicazioni da algoritmi e implementazioni specifici.
- Codice PKCS n. 12. Standard RSA che regola il formato utilizzato per archiviare o trasportare chiavi private, certificati e altro materiale segreto.
- Sintassi dei messaggi crittografici, utilizzata in S/MIME ( RFC 2311 e RFC 2633 ). Specifica dei messaggi IETF (basata sul diffuso standard MIME di Internet) che fornisce un modo coerente per inviare e ricevere dati MIME firmati e crittografati.
- Versione 3.5.5.1.1.1 . Standard ITU che regola il formato dei certificati utilizzati per l'autenticazione nella crittografia a chiave pubblica.
- OCSP (RFC 2560). Il protocollo OCSP (Online Certificate Status Protocol) regola la conferma in tempo reale della validità del certificato.
- Certificato PKIX e profilo CRL (RFC 3280). La prima parte dello standard in quattro parti in fase di sviluppo da parte del gruppo di lavoro Public-Key Infrastructure (X.509) dell'IETF (noto come PKIX) per un'infrastruttura a chiave pubblica per Internet.
- 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: algoritmi crittografici comuni utilizzati nella crittografia a chiave pubblica e a chiave simmetrica.
- Generatore di numeri pseudo-casuali FIPS 186-2.
Supporto hardware
[modifica | modifica wikitesto]NSS supporta l'interfaccia PKCS #11 per l'accesso all'hardware crittografico come acceleratori TLS/SSL, moduli di sicurezza hardware e smart card. Poiché la maggior parte dei fornitori di hardware come SafeNet, AEP e Thales supporta questa interfaccia, le applicazioni abilitate all'NSS possono lavorare con hardware crittografico ad alta velocità e utilizzare chiavi private residenti su varie smart card, se i fornitori forniscono il middleware necessario. La versione NSS 3.13 e successive supportano i nuovi set d'istruzioni Streaming SIMD Extensions di Intel (AES-NI).[11]
Supporto Java
[modifica | modifica wikitesto]Network Security Services for Java (JSS) è costituito da un'interfaccia Java per NSS. Supporta la maggior parte degli standard di sicurezza e delle tecnologie di crittografia supportate da NSS. JSS fornisce anche un'interfaccia Java pura per i tipi ASN.1 e la codifica BER / DER.[12]
Note
[modifica | modifica wikitesto]- ^
NSS 3.14 release notes, su MDN. URL consultato il 1º settembre 2015.«La licenza di NSS è stata modificata in MPL 2.0. Le versioni precedenti sono state rilasciate con una tri-licenza MPL 1.1/GPL 2.0/LGPL 2.1.»
- ^ Cryptographic Module Validation Program, su csrc.nist.gov.«module:Netscape Security Module 1, vendor: Netscape Communications Corporation»
- ^ Cryptographic Module Validation Program, su csrc.nist.gov.«module: Network Security Services, vendor: Sun Microsystems, Inc.»
- ^ Cryptographic Module Validation Program, su csrc.nist.gov.«module: Network Security Services (NSS) Cryptographic Module, vendor: Sun Microsystems, Inc., Red Hat®, Inc. and Mozilla Foundation, Inc.»
- ^ a b c Current NSS FIPS documentation, su www-archive.mozilla.org. URL consultato il 3 luglio 2020.
- ^ Does Fennec use NSS?, su groups.google.com. URL consultato il 3 luglio 2020.
- ^ Overview of NSS, su developer.mozilla.org. URL consultato il 3 luglio 2020 (archiviato dall'url originale il 3 luglio 2021).
- ^ What is Network Security Services (NSS), su developer.mozilla.org. URL consultato il 3 luglio 2020 (archiviato dall'url originale il 4 luglio 2020).
- ^ Encryption Technologies Available in NSS 3.11, su www-archive.mozilla.org. URL consultato il 3 luglio 2020.
- ^ Matrix SSL, su matrixssl.org (archiviato dall'url originale il 17 luglio 2014).
- ^ AES-NI enhancements to NSS on Sandy Bridge systems, su bugzilla.mozilla.org. URL consultato il 17 maggio 2013.
- ^ Network Security Services for Java (JSS), su dogtagpki.github.io.
Collegamenti esterni
[modifica | modifica wikitesto]- (EN) Sito ufficiale, su developer.mozilla.org.