Network Security Services

software libero

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]

Network Security Services
software
Screenshot di about:support su Firefox 90, che mostra le informazioni sulla versione di Network Security Services (NSS)
Screenshot di about:support su Firefox 90, che mostra le informazioni sulla versione di Network Security Services (NSS)
Screenshot di about:support su Firefox 90, che mostra le informazioni sulla versione di Network Security Services (NSS)
GenereCrittografia
SviluppatoreMozilla
Ultima versione3.106 (26 ottobre 2024)
Sistema operativoMultipiattaforma
LinguaggioC
linguaggio assembly
LicenzaMPL 2.0
(licenza libera)
Sito webdeveloper.mozilla.org/en-US/docs/Mozilla/Projects/NSS

NSS nasce dalle librerie sviluppate quando Netscape ha sviluppato il protocollo di sicurezza SSL.

Convalida FIPS 140 e test NISCC

modifica

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

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:

Architettura

modifica

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

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

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

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

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]

  1. ^ 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.»
  2. ^ Cryptographic Module Validation Program, su csrc.nist.gov.
    «module:Netscape Security Module 1, vendor: Netscape Communications Corporation»
  3. ^ Cryptographic Module Validation Program, su csrc.nist.gov.
    «module: Network Security Services, vendor: Sun Microsystems, Inc.»
  4. ^ 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.»
  5. ^ a b c Current NSS FIPS documentation, su www-archive.mozilla.org. URL consultato il 3 luglio 2020.
  6. ^ Does Fennec use NSS?, su groups.google.com. URL consultato il 3 luglio 2020.
  7. ^ Overview of NSS, su developer.mozilla.org. URL consultato il 3 luglio 2020 (archiviato dall'url originale il 3 luglio 2021).
  8. ^ What is Network Security Services (NSS), su developer.mozilla.org. URL consultato il 3 luglio 2020 (archiviato dall'url originale il 4 luglio 2020).
  9. ^ Encryption Technologies Available in NSS 3.11, su www-archive.mozilla.org. URL consultato il 3 luglio 2020.
  10. ^ Matrix SSL, su matrixssl.org (archiviato dall'url originale il 17 luglio 2014).
  11. ^ AES-NI enhancements to NSS on Sandy Bridge systems, su bugzilla.mozilla.org. URL consultato il 17 maggio 2013.
  12. ^ Network Security Services for Java (JSS), su dogtagpki.github.io.

Collegamenti esterni

modifica