Colección de bibliotecas informáticas criptográficas
Network Security Services ( NSS ) es una colección de bibliotecas criptográficas diseñadas para soportar el desarrollo multiplataforma de aplicaciones de cliente y servidor con seguridad habilitada con soporte opcional para aceleración de hardware TLS/SSL en el lado del servidor y tarjetas inteligentes de hardware en el lado del cliente. NSS proporciona una implementación completa de código abierto de bibliotecas criptográficas que admiten Transport Layer Security (TLS) / Secure Sockets Layer (SSL) y S/MIME . Las versiones de NSS anteriores a la versión 3.14 tienen licencia triple bajo la Licencia Pública de Mozilla 1.1, la Licencia Pública General de GNU y la Licencia Pública General Reducida de GNU . Desde la versión 3.14, las versiones de NSS tienen licencia de la Licencia Pública de Mozilla 2.0 compatible con GPL. [2]
Historia
NSS se originó a partir de las bibliotecas desarrolladas cuando Netscape inventó el protocolo de seguridad SSL.
Validación FIPS 140 y pruebas NISCC
El módulo criptográfico de software NSS ha sido validado cinco veces (en 1997, [3] 1999, 2002, [4] 2007 y 2010 [5] ) para su conformidad con FIPS 140 en los niveles de seguridad 1 y 2. [6] NSS fue la primera biblioteca criptográfica de código abierto en recibir la validación FIPS 140. [6] Las bibliotecas NSS pasaron las suites de pruebas NISCC TLS/SSL y S/MIME (1,6 millones de casos de prueba de datos de entrada no válidos). [6]
Aplicaciones que utilizan NSS
AOL , Red Hat , Sun Microsystems / Oracle Corporation , Google y otras empresas y colaboradores individuales han desarrollado NSS en conjunto. Mozilla proporciona el repositorio de código fuente, el sistema de seguimiento de errores y la infraestructura para listas de correo y grupos de discusión. Ellos y otros nombrados a continuación utilizan NSS en una variedad de productos, incluidos los siguientes:
- Productos cliente de Mozilla , incluidos Firefox , Thunderbird , SeaMonkey y Firefox para dispositivos móviles . [7]
- AOL Communicator y AOL Instant Messenger (AIM)
- Aplicaciones cliente de código abierto como Evolution , Pidgin y OpenOffice.org 2.0 en adelante (y sus descendientes).
- Productos de servidor de Red Hat : Red Hat Directory Server , Red Hat Certificate System y el módulo SSL mod nss para el servidor web Apache .
- Productos de servidor Sun de Sun Java Enterprise System , incluidos Sun Java System Web Server , Sun Java System Directory Server , Sun Java System Portal Server , Sun Java System Messaging Server y Sun Java System Application Server , versión de código abierto de Directory Server OpenDS .
- Libreswan IKE/IPsec requiere NSS. Es una bifurcación de Openswan que podría utilizar NSS de manera opcional.
Arquitectura
NSS incluye un marco al que los desarrolladores y OEM pueden contribuir con parches, como código ensamblador, para optimizar el rendimiento en sus plataformas. Mozilla ha certificado NSS 3.x en 18 plataformas. [8] [9] NSS utiliza Netscape Portable Runtime (NSPR), una API de código abierto independiente de la plataforma para funciones del sistema diseñadas para facilitar el desarrollo multiplataforma. Al igual que NSS, NSPR se ha utilizado ampliamente en múltiples productos.
Kit de desarrollo de software
Además de las bibliotecas y las API, NSS proporciona las herramientas de seguridad necesarias para la depuración, el diagnóstico, la gestión de certificados y claves, la gestión de módulos criptográficos y otras tareas de desarrollo. NSS incluye un conjunto de documentación extenso y en constante crecimiento, que incluye material introductorio, referencias de API, man
páginas para herramientas de línea de comandos y código de muestra.
Los programadores pueden utilizar NSS como fuente y como bibliotecas compartidas (dinámicas). Cada versión de NSS es compatible con versiones anteriores, lo que permite a los usuarios de NSS actualizar a nuevas bibliotecas compartidas de NSS sin tener que volver a compilar o vincular sus aplicaciones.
Interoperabilidad y estándares abiertos
NSS admite una variedad de estándares de seguridad, incluidos los siguientes: [10] [11]
- TLS 1.0 (RFC 2246), 1.1 (RFC 4346), 1.2 (RFC 5246) y 1.3 (RFC 8446). El protocolo Transport Layer Security (TLS) de la IETF reemplaza a SSL v3.0 y sigue siendo compatible con las implementaciones de SSL v3.
- SSL 3.0. El protocolo Secure Sockets Layer (SSL) permite la autenticación mutua entre un cliente y un servidor y el establecimiento de una conexión autenticada y cifrada.
- DTLS 1.0 (RFC 4347) y 1.2 (RFC 6347).
- Protocolo de transmisión de datos de red (DTLS-SRTP ) (RFC 5764).
- Los siguientes estándares PKCS :
- PKCS #1. Estándar RSA que rige la implementación de la criptografía de clave pública basada en el algoritmo RSA.
- PKCS #3. Estándar RSA que rige la implementación del acuerdo de clave Diffie-Hellman.
- PKCS #5. Estándar RSA que rige la criptografía basada en contraseñas, por ejemplo para cifrar claves privadas para almacenamiento.
- PKCS #7. Estándar RSA que rige la aplicación de la criptografía a los datos, por ejemplo, firmas digitales y sobres digitales.
- PKCS #8. Estándar RSA que rige el almacenamiento y cifrado de claves privadas.
- PKCS #9. Estándar RSA que rige tipos de atributos seleccionados, incluidos aquellos utilizados con PKCS #7, PKCS #8 y PKCS #10.
- PKCS #10. Estándar RSA que rige la sintaxis de las solicitudes de certificados.
- PKCS #11. Estándar RSA que rige la comunicación con tokens criptográficos (como aceleradores de hardware y tarjetas inteligentes) y permite la independencia de las aplicaciones con respecto a algoritmos e implementaciones específicos.
- PKCS #12. Estándar RSA que rige el formato utilizado para almacenar o transportar claves privadas, certificados y otro material secreto.
- Sintaxis de mensajes criptográficos , utilizada en S/MIME (RFC 2311 y RFC 2633). Especificación de mensajes de IETF (basada en el popular estándar MIME de Internet ) que proporciona una forma consistente de enviar y recibir datos MIME firmados y cifrados.
- X.509 v3 . Norma ITU que rige el formato de los certificados utilizados para la autenticación en criptografía de clave pública.
- OCSP (RFC 2560). El Protocolo de estado de certificado en línea (OCSP) regula la confirmación en tiempo real de la validez de los certificados.
- Certificado PKIX y perfil CRL (RFC 3280). La primera parte del estándar de cuatro partes que está desarrollando el grupo de trabajo de infraestructura de clave pública (X.509) del IETF (conocido como PKIX) para una infraestructura de clave pública para 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 : Algoritmos criptográficos comunes utilizados en criptografía de clave pública y clave simétrica.
- Generador de números pseudoaleatorios FIPS 186-2 .
Soporte de hardware
NSS admite la interfaz PKCS #11 para acceder a hardware criptográfico como aceleradores TLS/SSL , módulos de seguridad de hardware y tarjetas inteligentes . Dado que la mayoría de los proveedores de hardware como SafeNet , AEP y Thales también admiten esta interfaz, las aplicaciones compatibles con NSS pueden funcionar con hardware criptográfico de alta velocidad y usar claves privadas que residen en varias tarjetas inteligentes, si los proveedores proporcionan el middleware necesario. La versión 3.13 y posteriores de NSS admiten las nuevas instrucciones del estándar de cifrado avanzado (AES-NI). [12]
Soporte para Java
Network Security Services for Java (JSS) consiste en una interfaz Java para NSS. Es compatible con la mayoría de los estándares de seguridad y tecnologías de cifrado compatibles con NSS. JSS también proporciona una interfaz Java pura para tipos ASN.1 y codificación BER / DER . [13]
Véase también
Referencias
- ^ "Notas de la versión NSS 3.106 — Documentación de Firefox Source Docs" . Consultado el 29 de octubre de 2024 .
- ^ "Notas de la versión de NSS 3.14". MDN . Mozilla Developer Network . Consultado el 1 de septiembre de 2015 .
La licencia de NSS ha cambiado a MPL 2.0. Las versiones anteriores se publicaron bajo una licencia trilingüe MPL 1.1/GPL 2.0/LGPL 2.1.
- ^ "Programa de validación de módulos criptográficos: certificado nº 7". NIST . 29 de agosto de 1997.
módulo: Módulo de seguridad de Netscape 1, proveedor: Netscape Communications Corporation
- ^ "Programa de validación de módulos criptográficos: certificado n.º 248". NIST. 4 de septiembre de 2002.
Módulo: Servicios de seguridad de red. Proveedor: Sun Microsystems, Inc.
- ^ "Programa de validación de módulos criptográficos: certificado n.º 1280". NIST. 29 de marzo de 2010.
Módulo: Módulo criptográfico de servicios de seguridad de red (NSS), proveedor: Sun Microsystems, Inc., Red Hat®, Inc. y Mozilla Foundation, Inc.
- ^ abc "FIPS". Fundación Mozilla . 2007-10-11 . Consultado el 2020-07-03 .
- ^ "¿Fennec usa NSS?". grupo de noticias mozilla.dev.security.policy . 2010-04-09 . Consultado el 2020-07-03 .
- ^ "Descripción general de NSS: bibliotecas criptográficas de código abierto". Mozilla . 2020-03-02 . Consultado el 2020-07-03 .
- ^ "Preguntas frecuentes sobre NSS". Mozilla . 2019-11-21 . Consultado el 2020-07-03 .
- ^ "Tecnologías de cifrado disponibles en NSS 3.11". Mozilla . 2007-02-26 . Consultado el 2020-07-03 .
- ^ "Lista de lanzamientos". Archivado desde el original el 14 de febrero de 2015.
- ^ "Mejoras de AES-NI para NSS en sistemas Sandy Bridge". 2012-05-02 . Consultado el 2013-05-17 .
- ^ "jss: Network Security Services for Java es una interfaz Java para NSS".
Enlaces externos