Google anunció las primeras versiones estables de los componentes del proyecto Sigstore, que ya está listo para su implementación en producción. Sigstore desarrolla herramientas y servicios para la verificación de software mediante firmas digitales y mantiene un registro público que confirma la autenticidad de los cambios (registro de transparencia). El proyecto se desarrolla bajo el patrocinio de una organización sin ánimo de lucro. Linux Fundación impulsada por Google, Red Hat, Cisco, VMware, GitHub y HP Enterprise, con la participación de la Open Source Security Foundation (OpenSSF) y la Universidad de Purdue.
Se puede considerar a Sigstore como Let's Encrypt para código, que proporciona certificados para firmar código digitalmente y herramientas para automatizar la verificación. Con Sigstore, los desarrolladores pueden firmar digitalmente artefactos relacionados con las aplicaciones, como archivos de lanzamiento, imágenes de contenedores, manifiestos y ejecutables. El material de la firma se refleja en un registro público a prueba de manipulaciones que se puede utilizar para verificación y auditoría.
En lugar de claves permanentes, Sigstore utiliza claves efímeras de corta duración, que se generan en base a credenciales confirmadas por los proveedores de OpenID Connect (al momento de generar las claves necesarias para crear una firma digital, el desarrollador se identifica a través del proveedor de OpenID vinculado a un correo electrónico). La autenticidad de las claves se verifica mediante un registro público centralizado, lo que permite verificar que el autor de la firma es exactamente quien dice ser, y que la firma fue generada por el mismo participante responsable de las liberaciones anteriores.
La preparación de Sigstore para la implementación se debe a la formación de lanzamientos de dos componentes clave: Rekor 1.0 y Fulcio 1.0, cuyas interfaces de software se declaran estables y seguirán siendo compatibles con versiones anteriores. Los componentes del servicio están escritos en Go y distribuidos bajo la licencia Apache 2.0.
El componente Rekor contiene una implementación de registro para almacenar metadatos firmados digitalmente que reflejan información sobre proyectos. Para garantizar la integridad y proteger contra la corrupción de datos después del hecho, se utiliza una estructura de árbol Merkle Tree, en la que cada rama verifica todas las ramas y nodos subyacentes mediante hash conjunto (árbol). Al tener el hash final, el usuario puede verificar la exactitud de todo el historial de operaciones, así como la exactitud de los estados pasados de la base de datos (el hash de verificación raíz del nuevo estado de la base de datos se calcula teniendo en cuenta el estado pasado ). Se proporciona una API RESTful, así como una interfaz de línea de comandos para verificar y agregar nuevos registros.
El componente Fulcio (SigStore WebPKI) incluye un sistema de creación de autoridades de certificación (CA raíz) que emiten certificados de corta duración basados en correo electrónico autenticado a través de OpenID Connect. La vida útil del certificado es de 20 minutos, durante los cuales el desarrollador debe tener tiempo para generar una firma digital (si el certificado luego cae en manos de un atacante, ya estará caducado). Además, el proyecto está desarrollando el kit de herramientas Cosign (Container Signing), diseñado para generar firmas para contenedores, verificar firmas y colocar contenedores firmados en repositorios compatibles con OCI (Open Container Initiative).
La implementación de Sigstore permite aumentar la seguridad de los canales de distribución de programas y proteger contra ataques destinados a sustituir bibliotecas y dependencias (cadena de suministro). Uno de los problemas de seguridad clave en el software de código abierto es la dificultad de verificar el origen del programa y verificar el proceso de compilación. Por ejemplo, la mayoría de los proyectos utilizan hashes para verificar la integridad de una versión, pero a menudo la información necesaria para la autenticación se almacena en sistemas desprotegidos y en repositorios de código compartido, como resultado de lo cual los atacantes pueden comprometer los archivos necesarios para la verificación e introducir cambios maliciosos. sin levantar sospechas.
El uso de firmas digitales para la verificación de la liberación aún no se ha generalizado debido a las dificultades para administrar claves, distribuir claves públicas y revocar claves comprometidas. Para que la verificación tenga sentido, es necesario además organizar un proceso confiable y seguro para distribuir claves públicas y sumas de verificación. Incluso con una firma digital, muchos usuarios ignoran la verificación porque necesitan dedicar tiempo a aprender el proceso de verificación y comprender qué clave es confiable. El proyecto Sigstore intenta simplificar y automatizar estos procesos proporcionando una solución probada y lista para usar.
Fuente: opennet.ru
