Todo comienza por algo, y en el mundo del software no es distinto. Tanto los bienes físicos, como el código, tienen un punto de origen y una cadena de suministro asociada. En el mundo del desarrollo, la mayoría de aplicaciones de software comienzan, al menos parcialmente, en una comunidad open source. Entonces, ¿cómo se asegura la cadena de suministro de un producto que no tiene forma física, ni caja que cerrar, y que se crea en un entorno en el que cualquiera puede contribuir?

Este es el objetivo de sigstore, un proyecto de código abierto concebido y modelado originalmente en Red Hat y ahora bajo los auspicios de la Fundación Linux con el respaldo de Red Hat, Google y otros líderes de TI. Sigstore ofrece un método para asegurar mejor las cadenas de suministro de software de forma abierta, transparente y accesible. La necesidad de un proyecto como sigstore aumenta con los recientes ataques y violaciones de la infraestructura digital crítica, tanto en Norteamérica como en el resto del mundo, que han tenido como respuesta una orden ejecutiva presidencial en Estados Unidos destinada a mejorar la seguridad de la cadena de suministro de software.

Entonces, ¿por qué necesitamos algo como sigstore, exactamente? ¿Y qué hace sigstore que no hagan las tecnologías existentes, creadas para certificar y firmar tecnologías digitales?

seguridad vuelta oficina

La inaccesibilidad de la firma digital

La respuesta a la seguridad de las cadenas de suministro de software consiste en firmar digitalmente los distintos artefactos que componen las aplicaciones, desde los binarios y contenedores hasta los archivos agregados (como los tarballs) y las listas de materiales de software (SBOM). Las firmas digitales » detienen» un objeto en el tiempo, indicando que en su estado actual se verifica que es lo que dice ser y que no ha sido alterado de ninguna manera. Esto es estupendo para los desarrolladores que están extrayendo mucho código y proyectos diversos en cargas de trabajo más complicadas… o lo sería si el proceso estuviera mejor equipado para gestionar el código abierto.

Muchas soluciones de firma digital son buenas para lo que hacen, pero son caras y no se ajustan al modelo del motor de innovación del código abierto. Estas dos cosas por sí solas serían un problema, pero también está la cuestión de quién tiene la clave privada, que es exactamente lo que parece y es esencialmente la identificación que dice que el código proviene de una fuente específica. En las comunidades abiertas, en las que contribuyen muchísimas personas, ¿quién se supone que tiene una clave privada? ¿todo el mundo? ¿sólo los líderes de la comunidad (si existen)? ¿el patrocinador?

Este es el reto al que se enfrenta la cadena de suministro de software, especialmente en el código abierto: los presupuestos son escasos o inexistentes para las herramientas de firma digital, el propio software cambia con frecuencia y hay que gestionar y asegurar las claves privadas a lo largo de la vida del proyecto.

La firma digital al alcance de todo

Sigstore tiene como objetivo hacer que la firma de software sea omnipresente, de la misma manera que Let’s Encrypt hizo que los certificados X.509 para la Seguridad de la Capa de Transporte (TLS) fueran habituales. Antes de Let’s Encrypt, solo se veía HTTPS en la barra de direcciones para los sitios de comercio electrónico; en cambio ahora, dado lo accesibles que son los certificados, casi todos los sitios ejecutan HTTPS y son, por definición, más seguros. Este es el modelo que sigstore quiere seguir.

Sigstore quiere facilitar la firma criptográfica: la criptografía es una competencia especializada con la que el grueso de los desarrolladores no está muy familiarizado. Sigstore elimina esta carga y hace accesible la firma criptográfica al permitir a los desarrolladores utilizar una dirección de correo electrónico a través del protocolo OpenID connect como un identificador preexistente para firmar su código. El proyecto también produce un registro de actividad abierto, pero a la vez inalterable para rendir cuentas.

Para ofrecer todas estas capacidades y convertirse en un servicio gratuito y de uso generalizado, necesitamos generar confianza, literalmente. La confianza es la esencia (¡ja!) de la seguridad digital, tanto si se trata de certificados web como de código. Sin esta confianza, otras autoridades o servicios no pueden contar con sigstore para demostrar con exactitud que un individuo es quien dice ser y que el software producido es lo que dice ser.

Así que ahora estamos trabajando para establecer Sigstore Trust Root, un esfuerzo que se inició con una Fiesta de Firmado de Claves. Cinco miembros de la comunidad, uno de los cuales tengo el honor de ser, creamos claves criptográficas en una transmisión en directo de la comunidad, que luego fueron publicadas en un repositorio de GitHub y verificadas en vivo por los espectadores. Esta es la base del Trust Root de sigstore y, como parte de nuestro compromiso con la transparencia y la apertura, las funciones de los Key Holder rotarán por la comunidad a medida que crezcamos.

Qué es lo siguiente

Sigstore sigue creciendo, junto con los subproyectos Rekor (un servicio de registro de tiempo y de transparencia) y Fulcio, una autoridad de certificados libres de código de firma, pero tenemos grandes planes. Además de hacer crecer la comunidad, estamos trabajando con la Fundación Linux para crear un servicio público con todo el personal necesario. Por último, desde la perspectiva de Red Hat, estamos explorando cómo construir las capacidades de sigstore en Red Hat OpenShift, a través de herramientas de contenedores y Red Hat Advanced Cluster Management para Kubernetes como una forma de llevar la firma de software integrado y abierto en los flujos de trabajo de las aplicaciones existentes.

Se espera que aumente la necesidad de firmar código digital libre y abierto. Como se ha dicho muchas veces, todas las empresas son ahora empresas de software, lo que significa que el código no solo hace funcionar nuestros ordenadores portátiles y teléfonos. Es el motor que está detrás de los sistemas financieros globales, los avances sanitarios, los coches modernos, entre otros. Incluso nuestro suministro de alimentos, desde los tractores que recogen las cosechas hasta los camiones que transportan las mercancías, se basa ahora en aplicaciones y tecnología. El objetivo de sigstore es hacer que la firma de código sea tan accesible y esté tan ampliamente disponible como el propio software.