Rustls (pronunciado « rustls » [ 2 ] ) es una implementación de código abierto del protocolo criptográfico Transport Layer Security (TLS) escrita en el lenguaje de programación Rust . TLS es esencial para la seguridad en internet , y Rustls busca habilitar conexiones TLS seguras y rápidas . Rustls utiliza la protección de memoria de Rust para reducir el riesgo de vulnerabilidades de seguridad . Forma parte de los esfuerzos para mejorar la seguridad en internet mediante la sustitución de bibliotecas de software que no son seguras para la memoria , como OpenSSL , por alternativas seguras para la memoria.
Equipo y financiación
Joe Birr-Pixton inició Rustls en 2016 y sigue siendo el desarrollador principal en 2024. [ 1 ] El Internet Security Research Group (ISRG), una organización sin fines de lucro con sede en Estados Unidos, ha patrocinado el proyecto desde 2021 como parte de su iniciativa Prossimo. [ 3 ] [ 4 ] ISRG tiene como objetivo hacer de Rustls una alternativa viable a OpenSSL , que es ampliamente utilizado por los servidores de internet pero difícil de usar correctamente y ha tenido errores de seguridad , como Heartbleed , causados por código inseguro de memoria. [ 3 ] [ 5 ]
ISRG ha pagado a varios programadores para trabajar en Rustls, incluidos Birr-Pixton, Daniel McCarney y Dirkjan Ochtman, utilizando dinero aportado por Google y otras empresas y organizaciones. [ 3 ] [ 6 ] En 2023, la iniciativa Alpha-Omega de la Open Source Security Foundation dio a ISRG $530,000 para el desarrollo de la opción de usar diferentes backends criptográficos y para el proyecto separado Rust para Linux . [ 7 ] [ 8 ] Ese dinero provino de Google, Amazon Web Services y Microsoft . [ 9 ] Amazon Web Services también dio a ISRG $1 millón en 2023 para proyectos de seguridad de memoria, incluido Rustls. [ 10 ] El Sovereign Tech Fund , apoyado por el gobierno alemán, dio $1.5 millones a ISRG en 2023 para trabajar en Rustls y otros proyectos que proporcionan versiones seguras de memoria de herramientas de código abierto críticas para la seguridad de Internet. [ 11 ] [ 12 ] Craig Newmark Philanthropies otorgó $100,000 a ISRG para proyectos de seguridad de la memoria en 2024. [ 13 ] Fly.io, [ 14 ] una plataforma en la nube que utiliza Rustls, ha proporcionado financiación adicional. [ 15 ]
La Oficina del Director Nacional de Ciberseguridad de los Estados Unidos ha alentado el trabajo en software de seguridad que protege la memoria [ 16 ] y felicitó al equipo de Rustls. [ 14 ] Google otorgó bonificaciones de pares de código abierto a Birr-Pixton y Ochtman por su trabajo en Rustls. [ 17 ]
Arquitectura y características
Rustls es una biblioteca de software de bajo nivel centrada en la implementación de TLS . [ 18 ] Esto significa que no admite otros protocolos de Internet por sí misma, como HTTPS , pero el software que implementa otros protocolos puede usar Rustls como un componente. [ 18 ]
Por defecto, Rustls utiliza primitivas criptográficas de Amazon Web Services Libcrypto para Rust ( aws-lc-rs ), que admite los Estándares Federales de Procesamiento de Información (FIPS) . [ 19 ] Rustls permite utilizar bibliotecas criptográficas alternativas en lugar de aws-lc-rs , como ring . [ 19 ] El proyecto cuenta con soporte experimental para criptografía postcuántica : un método de intercambio de claves con un mecanismo especial de encapsulación de claves ( Kyber ). [ 20 ]
Rustls utiliza su propia bifurcación de la biblioteca webpki para verificar certificados de infraestructura de clave pública , un paso en el protocolo de enlace TLS . [ 2 ] [ 21 ] Rustls admite la Indicación de Nombre de Servidor (SNI), que permite que un servidor web sirva múltiples sitios web HTTPS en la misma dirección IP con diferentes certificados. [ 22 ] También admite certificados TLS que contienen direcciones IP en lugar de nombres de dominio . [ 23 ]
Los programas en C pueden usar Rustls a través de una API de interfaz de función externa , rustls-ffi . [ 2 ] [ 5 ] Por ejemplo, cURL es una herramienta popular escrita en C, y permite usar Rustls a través de rustls-ffi . [ 24 ] [ 25 ] Rustls también tiene una capa de compatibilidad con OpenSSL que permite configurar el servidor web Nginx, ampliamente utilizado , para usar Rustls en lugar de OpenSSL. [ 14 ] [ 26 ]
Rustls está disponible bajo múltiples licencias de software libre : Apache 2.0 , MIT e ISC . [ 1 ]
Evaluaciones
En 2020, la Cloud Native Computing Foundation financió una auditoría de seguridad de Rustls y dos bibliotecas de Rust que utilizaba, ring y webpki , con resultados positivos. [ 27 ]
En 2019, las pruebas de rendimiento realizadas por el desarrollador de Rustls mostraron un mejor rendimiento que OpenSSL . [ 28 ] En 2024, el proyecto realizó nuevas comparaciones de rendimiento con la última versión de OpenSSL, que mostraron algunos escenarios donde Rustls era más rápido o más eficiente y otros donde OpenSSL tuvo un mejor desempeño. [ 29 ]
Usos
Al igual que otras implementaciones de TLS, un usuario de computadora puede usar Rustls sin ser consciente de ello, como parte subyacente de una aplicación o sitio web. Un programador puede usar Rustls directamente o configurando una biblioteca o herramienta de nivel superior para que lo utilice. En particular, Rustls es utilizado por algunos proyectos que desean garantizar una cadena de suministro de software segura . [ 30 ] La Agencia de Seguridad de Infraestructura y Ciberseguridad de EE. UU. ha recomendado el uso de productos en lenguajes seguros para memoria como parte de su iniciativa "Seguro por Diseño". [ 31 ]
Algunas bibliotecas admiten Rustls como una de varias opciones para implementaciones de TLS. La biblioteca cliente HTTP reqwest ofrece la opción de usar Rustls para TLS en lugar de la biblioteca TLS predeterminada del sistema (por ejemplo, en Windows la predeterminada es la Interfaz del Proveedor de Soporte de Seguridad ). [ 32 ] [ 33 ] En 2020, un ingeniero de software de ISRG habilitó el uso de Rustls como un backend TLS para cURL . [ 34 ] [ 35 ] s2n-quic, una implementación del protocolo de red QUIC en Rust, admite tanto Rustls como s2n-tls para TLS. [ 36 ]
En 2021, Google financió la creación de mod_tls , un nuevo módulo TLS para Apache HTTP Server que utiliza Rustls. [ 37 ] [ 38 ] El nuevo módulo está diseñado para ser un sucesor del módulo mod_ssl que utiliza OpenSSL, como una opción predeterminada más segura. [ 37 ] [ 39 ] A partir de agosto de 2024, mod_tls está disponible en la última versión de Apache, pero aún está marcado como experimental. [ 40 ] La Internet Society , una organización sin fines de lucro que aboga por una internet abierta y segura , sugiere que las organizaciones utilicen este módulo como un paso hacia una mayor seguridad de la memoria. [ 41 ]
Rustls es la implementación TLS predeterminada en algunas aplicaciones. El programa de utilidad cargo_audit, que verifica las dependencias de proyectos Rust en busca de vulnerabilidades de seguridad, utiliza Rustls. [ 42 ] Linkerd , que "agrega seguridad, observabilidad y confiabilidad a cualquier clúster de Kubernetes ", incluye un servidor proxy construido con Rustls. [ 43 ] Wolfi, una herramienta para hacer contenedores Linux seguros en cuanto a memoria , utiliza Rustls. [ 44 ] [ 45 ] En 2024, ISRG anunció planes para comenzar a reemplazar OpenSSL con Rustls en Let's Encrypt , su autoridad de certificación gratuita utilizada por cientos de millones de sitios web. [ 14 ] [ 46 ]
Véase también
Referencias
- 1 2 3 4 "Rustls README" . GitHub . 30 de julio de 2024. Consultado el 20 de agosto de 2024 .
- 1 2 3 Edge, Jake (4 de mayo de 2021). "Rustls: seguridad de memoria para TLS" . LWN.net . Recuperado el 20 de agosto de 2024 .
- 1 2 3 Melanson, Mike (23 de abril de 2021). "Rustls busca proporcionar un reemplazo seguro para la memoria de OpenSSL" . The New Stack . Insight Partners . Recuperado el 20 de agosto de 2024 .
- ↑ Aas, Josh (20 de abril de 2021). "Preparando Rustls para una adopción más amplia" . Prossimo . Grupo de Investigación sobre Seguridad en Internet . Recuperado el 20 de agosto de 2024 .
- 1 2 Vaughan-Nichols, Steven J. (2 de noviembre de 2021). "Prossimo: Haciendo segura la memoria de Internet" . The New Stack . Insight Partners . Recuperado el 20 de agosto de 2024 .
- ↑ "Rustls" . Prossimo . Grupo de Investigación sobre Seguridad en Internet . Consultado el 21 de agosto de 2024 .
- ↑ Gran, Sarah (18 de septiembre de 2023). "Avances en Rustls y Rust para Linux con soporte de OpenSSF" . Open Source Security Foundation (OpenSSF) . Linux Foundation . Consultado el 20 de agosto de 2024 .
- ↑ "OpenSSF da la bienvenida a nuevos miembros en apoyo de la seguridad del software de código abierto" . ITSecurityWire . 18 de septiembre de 2023. Consultado el 3 de septiembre de 2024 .
- ↑ "Comentario de Amazon Web Services (Re: Respuesta a la solicitud de información sobre seguridad de software de código abierto, Amazon Web Services)" . Regulations.gov . 8 de noviembre de 2023. Consultado el 22 de agosto de 2024 .
- ↑ Aas, Josh (11 de mayo de 2023). "AWS destina 1 millón de dólares para mejorar la seguridad de la memoria en partes críticas de la web" . Prossimo . Internet Safety Research Group . Consultado el 22 de agosto de 2024 .
- ↑ Gran, Sarah (11 de julio de 2023). "$1,5 millones del Fondo de Tecnología Soberana para Impulsar la Seguridad de la Memoria" . Grupo de Investigación de Seguridad en Internet . Recuperado el 20 de agosto de 2024 .
- ↑ Tarakiyee, Tara (22 de mayo de 2024). "Sobre Rust, seguridad de la memoria e infraestructura de código abierto" . Sovereign Tech Fund . Recuperado el 20 de agosto de 2024 .
- ↑ Gran, Sarah (12 de marzo de 2024). "La Casa Blanca y Craig Newmark apoyan el software Memory Safe" . Grupo de Investigación sobre Seguridad en Internet . Consultado el 3 de septiembre de 2024 .
- 1 2 3 4 Aas, Josh (8 de mayo de 2024). "Rustls obtiene compatibilidad con OpenSSL y Nginx" . Prossimo . Grupo de Investigación en Seguridad de Internet . Recuperado el 20 de agosto de 2024 .
- ↑ "Aplicaciones de salud en Fly" . Fly . Consultado el 22 de agosto de 2024 .
- ↑ Wang, Dana; Arasaratnam, Omkhar (26 de febrero de 2024). "OpenSSF apoya los esfuerzos de la Casa Blanca para crear software más seguro y medible" . Open Source Security Foundation (OpenSSF) . Linux Foundation . Consultado el 22 de agosto de 2024 .
- ↑ Tabak, Maria (22 de marzo de 2022). "Recompensando a los colaboradores de Rust con bonificaciones entre pares" . Blog de código abierto de Google . Consultado el 22 de agosto de 2024 .
- 1 2 "Ruido de cajas" . Docs.rs. Consultado el 21 de agosto de 2024 .
- 1 2 Aas, Josh (29 de febrero de 2024). "Rustls ahora usa AWS Libcrypto para Rust y obtiene soporte FIPS" . Prossimo . Internet Security Research Group . Recuperado el 20 de agosto de 2024 .
- ↑ Aas, Josh (26 de marzo de 2024). "La biblioteca Rustls TLS añade soporte para intercambio de claves post-cuántico" . Prossimo . Grupo de Investigación en Seguridad de Internet . Consultado el 21 de agosto de 2024 .
- ↑ "Rustls webpki README" . GitHub . 18 de septiembre de 2023. Consultado el 22 de agosto de 2024 .
- ↑ "ServerName en rustls::pki_types" . Docs.rs. Consultado el 21 de agosto de 2024 .
- ↑ Aas, Josh (29 de marzo de 2023). "Rustls 0.21.0 lanzado con nuevas y emocionantes características" . Prossimo . Grupo de Investigación en Seguridad de Internet . Recuperado el 22 de agosto de 2024 .
- ↑ Stenberg, Daniel (9 de febrero de 2021). "curl admite rustls" . daniel.haxx.se . Consultado el 21 de agosto de 2024 .
- ↑ "Bibliotecas TLS" . Todo sobre curl . Consultado el 22 de agosto de 2024 .
- ↑ Larabel, Michael (11 de mayo de 2024). "Rustls ahora puede funcionar con Nginx a través de una nueva capa de compatibilidad OpenSSL" . Phoronix . Consultado el 21 de agosto de 2024 .
- ↑ Birr-Pixton, Joseph (14 de junio de 2010). "Auditoría de terceros de rustls" . jbp.io. Consultado el 22 de agosto de 2024 .
- ↑ Cimpanu, Catalin (19 de julio de 2019). "Una biblioteca TLS basada en Rust superó a OpenSSL en casi todas las categorías" . ZDNET . Consultado el 20 de agosto de 2024 .
- ↑ Ochagavía, Adolfo (4 de enero de 2024). "Protegiendo la web: Rustls va camino de superar a OpenSSL" . Prossimo . Grupo de Investigación en Seguridad de Internet . Recuperado el 20 de agosto de 2024 .
- ↑ Lorenc, Dan; Conill, Ariadne (24 de enero de 2023). "Construyendo la primera distribución segura para la memoria" . Chainguard . Recuperado el 20 de agosto de 2024 .
- ↑ Moore, Matt (8 de mayo de 2024). "Firma del compromiso de CISA de seguridad desde el diseño" . Chainguard . Consultado el 3 de septiembre de 2024 .
- ↑ Palmieri, Luca (14 de marzo de 2022). Zero to Production In Rust: An introduction to backend development in Rust . Luca Palmieri. p. 214. ISBN 979-8-8472-1143-7.
- ↑ "RustLS" . The Goose Book . Consultado el 21 de agosto de 2024 .
- ↑ Aas, Josh (9 de octubre de 2020). "Memory Safe 'curl' para una Internet más segura" . Internet Security Research Group . Recuperado el 20 de agosto de 2024 .
- ↑ De Simone, Sergio (25 de octubre de 2020). "La biblioteca Rust Hyper HTTP contribuirá a que Curl sea más seguro" . InfoQ . Consultado el 20 de agosto de 2024 .
- ↑ Kampanakis, Panos (17 de febrero de 2022). "Presentamos s2n-quic, una nueva implementación de protocolo QUIC de código abierto en Rust" . Blog de seguridad de AWS . Consultado el 22 de agosto de 2024 .
- 1 2 Cimpanu, Catalin (2 de febrero de 2021). "Google financia un proyecto para proteger el servidor web Apache con un nuevo componente Rust" . ZDNET . Recuperado el 20 de agosto de 2024 .
- ↑ Eissing, Stefan (1 de marzo de 2022). "Llevando TLS seguro para la memoria a Apache httpd" . Prossimo . Grupo de Investigación en Seguridad de Internet . Recuperado el 20 de agosto de 2024 .
- ↑ Claburn, Thomas (2 de febrero de 2021). "En Rust confiamos: ISRG refuerza Apache y abandona C, recurriendo al lenguaje prodigioso para un nuevo módulo criptográfico TLS" . The Register . Consultado el 2 de septiembre de 2024 .
- ↑ "Servidor HTTP Apache versión 2.4: Módulo Apache mod_tls" . Proyecto Servidor HTTP Apache . Fundación de Software Apache . Consultado el 22 de agosto de 2024 .
- ↑ "Cómo hablar con tu jefe sobre la seguridad de la memoria" . Internet Society . 10 de octubre de 2023. Consultado el 22 de agosto de 2024 .
- ↑ Davidoff, Sergey "Shnatsel" (4 de septiembre de 2023). "Manteniendo seguros los proyectos de Rust con cargo-audit 0.18: mejoras de rendimiento, compatibilidad y seguridad" . Inside Rust Blog . Consultado el 21 de agosto de 2024 .
- ↑ Weisman, Eliza (23 de julio de 2020). "Bajo la superficie del proxy Rust de última generación de Linkerd, Linkerd2-proxy" . Linkerd . Cloud Native Computing Foundation . Recuperado el 20 de agosto de 2024 .
- ↑ Lewkowicz, Jakub (29 de septiembre de 2023). "Proyecto de código abierto de la semana de SD Times: Wolfi" . SD Times . Consultado el 20 de agosto de 2024 .
- ↑ Claburn, Thomas (26 de enero de 2023). "La seguridad de la memoria es la nueva tendencia, moderna y adecuada para cualquier ocasión: las voces que piden evitar C/C++ y adoptar Rust se hacen más fuertes" . The Register . Consultado el 20 de agosto de 2024 .
- ↑ Aas, Josh (24 de junio de 2024). "Mayor seguridad de la memoria para Let's Encrypt: Implementación de ntpd-rs" . Let's Encrypt . Grupo de Investigación en Seguridad de Internet . Consultado el 21 de agosto de 2024 .
Enlaces externos
- Iniciativa Rustls en Prossimo
- Software de seguridad gratuito
- Software libre programado en Rust.
- Implementación de la seguridad de la capa de transporte
- Software que utiliza la licencia Apache.
- Software que utiliza la licencia MIT.
- Software que utiliza la licencia ISC.