Diseño verificable en sistemas modernos


La forma en que diseñamos y creamos computer software evoluciona continuamente. Así como ahora pensamos en la seguridad como algo que incorporamos al program desde el principio, también buscamos cada vez más nuevas formas de minimizar la confianza en ese software. Una de las formas en que podemos hacerlo es diseñando program para que pueda obtener certeza criptográfica de lo que ha hecho el software package.

En esta publicación, presentaremos el concepto de estructuras de datos verificables que nos ayudan a obtener esta certeza criptográfica. Describiremos algunas aplicaciones nuevas y existentes de estructuras de datos verificables y proporcionaremos algunos recursos adicionales que hemos creado para ayudarlo a usarlas en sus propias aplicaciones.
Una estructura de datos verificable es una clase de estructura de datos que permite a las personas acordar de manera eficiente, con certeza criptográfica, que los datos que contiene son correctos.

Árboles Merkle son los más famosos y se han utilizado durante décadas porque pueden permitir la verificación eficiente de que un dato en specific está incluido entre muchos registros como resultado, también forman la foundation de la mayoría de las cadenas de bloques.

Aunque estas estructuras de datos verificables no son nuevas, ahora tenemos una nueva generación de desarrolladores que las han descubierto y los diseños que permiten, lo que acelera aún más su adopción.
Estas estructuras de datos verificables permiten construir una nueva clase de application que tiene elementos de verificabilidad y transparencia integrados en la forma en que operan. Esto nos brinda nuevas formas de defendernos contra la coerción, introducir la responsabilidad en los ecosistemas nuevos y existentes y facilitar la demostración del cumplimiento a los reguladores, clientes y socios.

Transparencia del certificado es un gran ejemplo de un uso no blockchain de estas estructuras de datos verificables a escala para proteger la infraestructura central de World wide web. Al utilizar estos patrones, hemos podido introducir transparencia y responsabilidad a un sistema existente utilizado por todos sin rompiendo la website.
Desafortunadamente, a pesar de las capacidades de las estructuras de datos verificables y los patrones asociados, no hay muchos recursos que los desarrolladores puedan usar para diseñar, construir e implementar sistemas escalables y de calidad de producción basados ​​en ellos.

Para abordar esta brecha, hemos generalizado la plataforma Solíamos crear Transparencia de certificados para que también se pueda aplicar a otras clases de problemas. Dado que esta infraestructura se ha utilizado durante años como parte de este ecosistema, se comprende bien y se puede implementar con confianza en los sistemas de producción.
Es por eso que hemos visto soluciones en áreas de atención médica, servicios financieros y cadena de suministro que aprovechan esta plataforma. Más allá de eso, también hemos aplicado estos patrones para llevar estas propiedades de transparencia y responsabilidad a otros problemas dentro de nuestros propios productos y servicios.

Con este fin, en 2019, utilizamos esta plataforma para llevar la integridad de la cadena de suministro al ecosistema del lenguaje Go a través del Ir a la foundation de datos de suma de comprobación. Este sistema permite a los desarrolladores tener la confianza de que los sistemas de administración de paquetes que respaldan el ecosistema Go no pueden comenzar a entregar el código incorrecto de manera intencional, arbitraria o accidental sin que los atrapen. La reproducibilidad de las compilaciones de Go hace que esto sea particularmente poderoso, ya que permite al desarrollador asegurarse de que lo que está en el repositorio de origen coincide con lo que está en el sistema de administración de paquetes. Esta solución ofrece una cadena verificable desde los repositorios de origen hasta los artefactos compilados finales.

Otro ejemplo del uso de estos patrones es nuestro reciente Anunciado asociación con la Fundación Linux en Sigstore. Este proyecto es una respuesta a la afluencia cada vez mayor de ataques a la cadena de suministro en el ecosistema de código abierto.

Los ataques a la cadena de suministro han sido posibles porque existen debilidades en cada eslabón de la cadena. Los componentes como los sistemas de compilación, las herramientas de administración de código fuente y los repositorios de artefactos deben tratarse como entornos de producción críticos, porque lo son. Para abordar esto, primero debemos hacer posible la verificación de la procedencia a lo largo de toda la cadena y el objetivo del esfuerzo de Sigstore es permitir precisamente eso.

Ahora estamos trabajando en el uso de estos patrones y herramientas para habilitar la integridad de la cadena de suministro reforzada por components para el firmware del dispositivo, que esperamos desaliente los ataques de la cadena de suministro a los dispositivos, como los teléfonos inteligentes, en los que confiamos todos los días al brindar transparencia y responsabilidad a su cadena de suministro de firmware.

En todos los ejemplos anteriores, utilizamos estas estructuras de datos verificables para garantizar la integridad de los artefactos en la cadena de suministro. Esto permite a los clientes, auditores y equipos de seguridad interna estar seguros de que cada actor de la cadena de suministro ha cumplido con sus responsabilidades. Esto ayuda a ganarse la confianza de aquellos que dependen de la cadena de suministro, desalienta a las personas con información privilegiada de usar su posición, ya que aumenta las posibilidades de que los atrapen, introduce la responsabilidad y permite demostrar que los sistemas asociados cumplen continuamente con sus obligaciones de cumplimiento.

Al utilizar estos patrones, la tarea más importante es definir qué datos deben registrarse. Es por eso que armamos un marco de taxonomía y modelado que hemos encontrado útil para diseñar la verificabilidad en los sistemas que discutimos anteriormente, y que esperamos que también le resulte útil.
Por favor, eche un vistazo a transparencia.dev sitio internet para conocer estas estructuras de datos verificables y las herramientas y la guía que hemos reunido para ayudarlo a usarlas en sus propias aplicaciones.



Enlace a la noticia primary