Construcciones reproducibles en Debian (Debian Reproducible Builds): Un camino verificable desde el…

00:41:49
https://www.youtube.com/watch?v=DOiubNQzcSQ

Summary

TLDREn esta charla, Jonathan Osorio presenta la importancia de las construcciones reproducibles en el mundo del software libre y cómo éstas pueden ayudar a mitigar problemas de seguridad en los binarios. Se discuten casos históricos de exploits y errores en software debido a la falta de requisitos claros para la reproducibilidad. Se enfatizan las características de un sistema de construcción determinista y se ofrecen ejemplos de cómo iniciar en este ámbito por parte de los desarrolladores. Finalmente, se hace un llamado a la comunidad para involucrarse en el proyecto y mejorar la seguridad y la confianza en el software libre.

Takeaways

  • 👨‍💻 La reproducibilidad es clave para la confianza en el software libre.
  • 🔒 Los binarios deben ser verificables desde su código fuente.
  • 🛠️ Se necesitan sistemas de construcción determinista para garantizar reproducibilidad.
  • 📅 Evitar timestamps y datos aleatorios es crucial en construcciones.
  • 🔗 Guitián permite la distribución segura de binarios verificados.
  • 🌐 Comunidades pueden colaborar reportando errores y desarrollando parches.
  • 🤝 Se insta a involucrarse y contribuir en proyectos de software libre como Debian.

Timeline

  • 00:00:00 - 00:05:00

    El presentador da la bienvenida y se presenta, compartiendo su experiencia con Debian desde 2008 y su participación en diversos equipos y eventos relacionados con el software libre.

  • 00:05:00 - 00:10:00

    Se menciona un problema en el software libre relacionado con la verificación de la correspondencia entre el código fuente y los paquetes binarios, planteando la necesidad de confiar en que los binarios provienen realmente del código declarado.

  • 00:10:00 - 00:15:00

    Se discute la importancia de la reproducibilidad en la construcción de software, citando ejemplos relevantes sobre exploits y vulnerabilidades en binarios y mostrando la necesidad de garantizar la seguridad y la legitimidad de los productos de software.

  • 00:15:00 - 00:20:00

    Se introduce la idea de 'construcciones reproducibles' como una solución clave, mencionando ejemplos de proyectos como Bitcoin y Debian que han avanzado en esta dirección desde 2011.

  • 00:20:00 - 00:25:00

    Se detallan las características de un sistema de construcción determinista, abordando aspectos como entradas estables, la importancia de evitar la aleatoriedad, y cómo los timestamps pueden influir en la reproducibilidad de los paquetes.

  • 00:25:00 - 00:30:00

    El presentador explica métodos concretos para iniciar un proceso de construcción reproducible y la importancia de registrar versiones y evitar la inclusión de información del entorno que pueda alterar el resultado.

  • 00:30:00 - 00:35:00

    Se presentan herramientas y técnicas para normalizar y comparar archivos, destacando la relevancia de mantener registros precisos y cómo esto puede contribuir a la seguridad y la confianza en el software.

  • 00:35:00 - 00:41:49

    Finalmente, se hace un llamado a la participación de la comunidad en el proyecto, resaltando las oportunidades para colaborar en la mejora de la reproducibilidad en Debian y la necesidad de contar con más voluntarios y desarrolladores involucrados.

Show more

Mind Map

Video Q&A

  • ¿Qué es una construcción reproducible?

    Es un proceso que permite a cualquier persona reproducir paquetes binarios idénticos a partir del mismo código fuente.

  • ¿Por qué es importante la reproducibilidad en software libre?

    La reproducibilidad garantiza que los binarios provengan de un código fuente verificable, aumentando la seguridad y la confianza del usuario.

  • ¿Qué problemas se pueden presentar en un sistema de construcción?

    Problemas como la aleatoriedad, la correcta gestión de versiones y el orden de construcción pueden afectar la reproducibilidad.

  • ¿Qué herramientas se mencionan para ayudar en el proceso de reproducción de paquetes?

    Se mencionan herramientas como guitián, docker y scripts para normalizar archivos.

  • ¿Qué pasos seguir para asegurar que un paquete sea reproducible?

    Construir el paquete varias veces y verificar que cumple con ciertos requisitos de reproducibilidad.

  • ¿Cómo se puede colaborar en el proyecto de reproducibilidad de Debian?

    Reportando errores, ayudando en el desarrollo de parches y manteniendo la reproducibilidad de los paquetes.

  • ¿Desde cuándo se trabaja en la reproducibilidad en Debian?

    El trabajo se inició en 2014 y se ha hecho un progreso significativo desde entonces.

  • ¿Cuáles son los beneficios de construir un entorno de desarrollo controlado?

    Un entorno controlado permite eliminar variables no reproducibles y proporciona un marco más seguro para las construcciones.

View more video summaries

Get instant access to free YouTube video summaries powered by AI!
Subtitles
es
Auto Scroll:
  • 00:00:05
    hola a todos bienvenidos a la plática
  • 00:00:07
    con surgida de los posibles en debian
  • 00:00:09
    liverpool bills un camino brisca desde
  • 00:00:13
    el origen extraordinario mi nombre es yo
  • 00:00:15
    tambos y osorio y estoy muy feliz estar
  • 00:00:17
    el día de hoy con ustedes en la hdad es
  • 00:00:18
    con 20 en línea
  • 00:00:21
    bueno voy a compartir un poco de
  • 00:00:23
    información sobre mí
  • 00:00:26
    yo he utilizado debian desde 2008 tiene
  • 00:00:30
    la oportunidad de ayudar
  • 00:00:33
    en algunas tareas equipos como el de
  • 00:00:36
    localización del espanyol
  • 00:00:39
    ser voluntario en el equipo de vídeo de
  • 00:00:41
    debian
  • 00:00:43
    y también con ser un entusiasta de deben
  • 00:00:48
    reproducir bills
  • 00:00:49
    también he participado en algunos
  • 00:00:52
    eventos de debian como el día de bien
  • 00:00:55
    fiesta de instalación y cef cons
  • 00:01:02
    bueno pues en el software libre tenemos
  • 00:01:04
    un problema
  • 00:01:07
    se da durante la construcción de los
  • 00:01:10
    paquetes binarios a partir de el código
  • 00:01:13
    fuente en un origen y bueno pues
  • 00:01:18
    esto
  • 00:01:20
    nos plantea si durante el proceso puede
  • 00:01:23
    ser verificado
  • 00:01:25
    que el origen pueda
  • 00:01:28
    ser idéntico al
  • 00:01:32
    al contenido del paquete binario y ante
  • 00:01:36
    esto podríamos tener una prueba
  • 00:01:42
    el problema es que tenemos que creer
  • 00:01:45
    y el software libre es grandioso podemos
  • 00:01:47
    estudiarlo modificarlo compartirlo y
  • 00:01:50
    usarlo
  • 00:01:52
    estudiamos modificamos y convertimos el
  • 00:01:54
    código fuente pero utilizamos binarios
  • 00:01:58
    y ante esto necesitamos creer que
  • 00:01:59
    nuestros binarios provienen del código
  • 00:02:01
    fuente del que se dice que provienen
  • 00:02:05
    no queremos creer
  • 00:02:08
    el problema mayor detalle se puede
  • 00:02:10
    apreciar en una plática muy interesante
  • 00:02:13
    muy buena que quedan
  • 00:02:16
    mike perfil del proyecto tor y de la
  • 00:02:19
    electronic frontier fundation llamada
  • 00:02:22
    represión wills moody millón single por
  • 00:02:25
    eso facebook juegos software
  • 00:02:26
    distribution y bueno eso es un gran
  • 00:02:30
    punto de inicio la puede encontrar
  • 00:02:34
    en el repositorio de las presentaciones
  • 00:02:40
    el caos compita con gris y bueno esta
  • 00:02:43
    fue presentada en la edición trigésimo
  • 00:02:45
    primero
  • 00:02:48
    hay algunos ejemplos muy muy relevantes
  • 00:02:51
    de esta plática en los cuales
  • 00:02:56
    los compañeros exponen como
  • 00:03:01
    existe un exploit de excavación de
  • 00:03:03
    rutten en el s h por una diferencia de
  • 00:03:06
    sólo un bit en el binario
  • 00:03:09
    también
  • 00:03:10
    dar una demostración en vivo con un
  • 00:03:13
    módulo del kernel modificando el código
  • 00:03:14
    fuente del programa
  • 00:03:17
    y bueno nos plantean que como podemos
  • 00:03:20
    estar seguros que se está ejecutando en
  • 00:03:22
    nuestras máquinas o en un paquete común
  • 00:03:26
    de modo de red conectado otras
  • 00:03:27
    computadoras si alguna vez dejamos
  • 00:03:30
    nuestras computadoras físicamente solas
  • 00:03:31
    o por ejemplo también si ante desafíos
  • 00:03:34
    legales pues nos podemos ver obligados a
  • 00:03:37
    desarrollar back 2 en algunos de los
  • 00:03:40
    programas y somos desarrolladores para
  • 00:03:42
    alguno de los clientes por por pedido de
  • 00:03:44
    la empresa para la que estemos
  • 00:03:46
    trabajando otro ejemplo que se comparte
  • 00:03:50
    durante esta charla es
  • 00:03:52
    en la conferencia de la cia del 2012
  • 00:03:56
    ellos exponen sobre
  • 00:04:00
    software malicioso que crearon
  • 00:04:05
    entrar en el compilador
  • 00:04:09
    [Música]
  • 00:04:11
    scholes d
  • 00:04:14
    the mccoys y bueno este es un
  • 00:04:18
    es un programa que ellos llaman
  • 00:04:20
    stronghold el cual consiste en
  • 00:04:24
    hacer modificaciones arbitrarias en el
  • 00:04:27
    compilador que es el software
  • 00:04:30
    development kit de xcode y bueno pues de
  • 00:04:32
    esta manera el gobierno de eeuu
  • 00:04:36
    estuvo
  • 00:04:38
    espiando y teniendo acceso a la cuanta
  • 00:04:42
    información que hiciera de usuarios del
  • 00:04:43
    sistema operativo
  • 00:04:46
    bueno una de las soluciones es que se
  • 00:04:49
    pueda permitir a cualquier persona
  • 00:04:51
    reproducir paquetes binarios idénticos
  • 00:04:53
    de un origen dado
  • 00:04:56
    y nosotros llamamos a esto
  • 00:04:58
    construcciones reproducibles reclús y
  • 00:05:00
    móviles en inglés
  • 00:05:02
    y bueno no es moda ni capricho ya que en
  • 00:05:06
    otros proyectos como bitcoin ya se ha
  • 00:05:08
    realizado en el 2011 en kórbut también
  • 00:05:12
    en 2016 en debian se ha incluido ya en
  • 00:05:16
    la de en policy y bueno el trabajo fue
  • 00:05:18
    iniciado en el 2014 en frío y es dine
  • 00:05:22
    vía sí y obtendría si se inició en el
  • 00:05:26
    2016 y continúa en progreso asimismo
  • 00:05:29
    interés desde el 2017 y va en el
  • 00:05:32
    proyecto tor ya ha sido realizado en el
  • 00:05:35
    2013 y bueno nosotros consideramos que
  • 00:05:38
    esto debería convertirse en la norma
  • 00:05:40
    queremos cambiar el significado es
  • 00:05:42
    software libre sólo el software libre si
  • 00:05:44
    es reproducible
  • 00:05:46
    y tenemos múltiples múltiples aspectos
  • 00:05:49
    como sistemas de construcción
  • 00:05:52
    determinista
  • 00:05:54
    a aquellas personas que escriben código
  • 00:05:56
    fuente entorno de construcción
  • 00:05:58
    reproducible para aquellos que crean
  • 00:06:01
    binarios para otros
  • 00:06:04
    distribuir entre una deconstrucción para
  • 00:06:05
    aquellos que distribuyen binarios para
  • 00:06:07
    el mundo
  • 00:06:09
    y realizar una reconstrucción de
  • 00:06:11
    verificar los resultados que está cuando
  • 00:06:13
    ya sería para cada uno de nosotros con
  • 00:06:15
    usuarios
  • 00:06:17
    bueno les voy a ir compartiendo lo más
  • 00:06:20
    claro posible
  • 00:06:22
    las principales características de cada
  • 00:06:24
    uno de esos puntos y ya más adelante
  • 00:06:27
    vamos a ver de qué manera podemos ir
  • 00:06:31
    acercándonos a
  • 00:06:34
    las conductas reproducibles en nervión
  • 00:06:38
    algunas formas de comenzar por uno mismo
  • 00:06:43
    bueno pues un sistema de construcción
  • 00:06:45
    determinista consiste en las entradas
  • 00:06:48
    estables en inglés es table inputs
  • 00:06:51
    salidas estables 'estable' outputs y
  • 00:06:55
    capturar de menos posibles del entorno
  • 00:06:59
    aquí se tienen algunos problemas comunes
  • 00:07:01
    como el tiempo actual de registro en
  • 00:07:04
    inglés timestamp el orden del archivo la
  • 00:07:08
    pseudo aleatoriedad
  • 00:07:10
    rutas temporales de archivos
  • 00:07:13
    los identificadores únicos universales
  • 00:07:19
    y universal y dioni identifier en inglés
  • 00:07:22
    y la protección contra ataques de
  • 00:07:25
    complejidad
  • 00:07:26
    también hay una relación a la cpu y
  • 00:07:28
    memoria con optimizaciones de código
  • 00:07:31
    para el aceptar el cpu y el registro de
  • 00:07:35
    las direcciones de memoria la ruta de
  • 00:07:37
    construcción
  • 00:07:39
    y bajo la cooperación regional y la zona
  • 00:07:42
    horaria
  • 00:07:44
    aquí
  • 00:07:46
    vamos a ver a continuación algo llamado
  • 00:07:50
    desaparición de entradas volátiles y
  • 00:07:53
    bueno aquí tenemos un ejemplo
  • 00:07:57
    la ejecución de una búsqueda de un
  • 00:08:01
    paquete de rovi
  • 00:08:03
    y vemos qué
  • 00:08:05
    al final la salida o sea que no se puede
  • 00:08:09
    encontrar el paquete explicó
  • 00:08:14
    entonces puede esto representan
  • 00:08:19
    un problema de desaparición de la
  • 00:08:22
    entrada y bueno
  • 00:08:25
    esencialmente
  • 00:08:28
    es importante no confiar en la red
  • 00:08:31
    si lo hacemos hay que verificar
  • 00:08:35
    qué contenidos está usando consumos de
  • 00:08:37
    verificación
  • 00:08:40
    y tener una copia de seguridad por si
  • 00:08:41
    pues este contenido se aparece de la red
  • 00:08:45
    de manera imprevista
  • 00:08:48
    y bueno pues el distribuidor del binario
  • 00:08:51
    de verdad proporciona una alternativa
  • 00:08:53
    por ejemplo en freestyle and lo han
  • 00:08:56
    hecho bien
  • 00:08:57
    a través de
  • 00:09:00
    pues teniendo
  • 00:09:02
    réplicas
  • 00:09:04
    para que esto se mantenga
  • 00:09:10
    bueno ahora vamos a ver el orden estable
  • 00:09:13
    para las entradas aquí podemos ver que
  • 00:09:15
    del lado izquierdo y del lado derecho
  • 00:09:17
    están ordenados de manera diferente
  • 00:09:25
    bueno aquí es importante que siempre
  • 00:09:29
    procesamos múltiples entradas en el
  • 00:09:31
    mismo orden
  • 00:09:33
    ya que las listas de directorios no son
  • 00:09:35
    estables y algunas soluciones pueden ser
  • 00:09:38
    lista de entradas explícitamente usar
  • 00:09:42
    clasificación
  • 00:09:44
    y tener en cuenta la diferencia entre la
  • 00:09:47
    localización del idioma para esto aquí
  • 00:09:51
    se comparte un ejemplo de como
  • 00:09:55
    evitarlo con la opción el cual sí
  • 00:10:03
    bueno también tenemos lo que es la
  • 00:10:06
    inicialización de un valor controlado
  • 00:10:09
    y bueno pues lo podemos ver
  • 00:10:11
    en
  • 00:10:12
    [Música]
  • 00:10:13
    en ambos lados en el izquierdo y en el
  • 00:10:16
    derecho se ven los diferentes caracteres
  • 00:10:21
    en lo que está resaltado de color
  • 00:10:22
    amarillo
  • 00:10:24
    ante esto es importante que nos
  • 00:10:27
    registremos mejoría por accidente
  • 00:10:30
    y inicializar un valor conocido
  • 00:10:38
    ahora vamos a ver que también es muy
  • 00:10:41
    importante utilizar información de una
  • 00:10:43
    versión determinista
  • 00:10:45
    y bueno como pueden ver ahí
  • 00:10:48
    hay diferencias no
  • 00:10:53
    bueno esto consiste en que no generemos
  • 00:10:55
    un número de versión en cada
  • 00:10:57
    construcción
  • 00:10:58
    y que en su lugar pues extraigamos la
  • 00:11:00
    información del origen del código fuente
  • 00:11:03
    revisando el sistema de control de
  • 00:11:05
    versiones como la it hot' donde se
  • 00:11:09
    encuentra el código fuente
  • 00:11:13
    revisar su jas
  • 00:11:16
    así mismo también la entrada de registro
  • 00:11:19
    de los cambios
  • 00:11:21
    y bueno lo podemos ver en el ejemplo
  • 00:11:27
    otra ocasión importante es no registrar
  • 00:11:29
    la fecha y la hora actual
  • 00:11:32
    ya que esto también contribuye a que un
  • 00:11:35
    paquete no será posible y aquí es donde
  • 00:11:38
    entran
  • 00:11:39
    la parte de evitar los sellos de tiempo
  • 00:11:44
    timestamp y bueno si se necesita uno se
  • 00:11:49
    recomienda utilizar la fecha del último
  • 00:11:51
    comité en el sistema de control de
  • 00:11:53
    versiones
  • 00:11:55
    y extraerlo del registro de cambios que
  • 00:11:59
    no olvidemos la zona horaria
  • 00:12:01
    y que también existe la posibilidad de
  • 00:12:04
    utilizar fake time aunque es una opción
  • 00:12:07
    que tienes de los inconvenientes con
  • 00:12:11
    base a algunos bugs que se encuentran en
  • 00:12:15
    el proyecto tor
  • 00:12:17
    y bueno
  • 00:12:19
    también implementar
  • 00:12:21
    la variable sus de época y bueno esa
  • 00:12:25
    variable
  • 00:12:26
    consiste en ser una variable de entorno
  • 00:12:29
    con tiempo de referencia en la cual se
  • 00:12:32
    marca un número de segundos desde la
  • 00:12:34
    época
  • 00:12:37
    1970
  • 00:12:40
    en enero el primer día
  • 00:12:42
    de la medianoche
  • 00:12:45
    en horario utc
  • 00:12:47
    si está configurada va a reemplazar la
  • 00:12:50
    hora actual del día
  • 00:12:52
    también
  • 00:12:54
    así implementado por proyectos como
  • 00:12:57
    health human beatbox y en los scripts en
  • 00:13:01
    debian
  • 00:13:02
    y bueno ha sido adoptado por otras
  • 00:13:04
    distribuciones como opensuse de enviarte
  • 00:13:07
    liddy de días de frío y jardines con
  • 00:13:11
    tips y muchos streams como hoy y si si
  • 00:13:16
    lippi que si bien en que ya hay soft
  • 00:13:20
    script
  • 00:13:22
    excelso sphinx
  • 00:13:26
    y tecla y así mismo también ha ayudado a
  • 00:13:30
    tener parches listos para this is it
  • 00:13:33
    takes two man live
  • 00:13:37
    text
  • 00:13:39
    y bueno
  • 00:13:42
    para poder usar la variable basta con
  • 00:13:45
    configurar su orden en nuestro sistema
  • 00:13:48
    de construcción
  • 00:13:51
    para agregar soporte en cualquier
  • 00:13:53
    herramienta que escriba sellos de tiempo
  • 00:13:57
    y bueno si se enfatiza mucho que no se
  • 00:13:59
    registre
  • 00:14:00
    la hora actual y aquí lo podemos ver
  • 00:14:03
    como carretera
  • 00:14:06
    integridad de un paquete
  • 00:14:09
    y está bueno sé
  • 00:14:12
    se sugiere
  • 00:14:15
    ya que los archivos mantienen los
  • 00:14:17
    tiempos de modificación en los metadatos
  • 00:14:19
    y almacenar un archivo puede registrar
  • 00:14:21
    el tiempo de construcción
  • 00:14:24
    y bueno otras soluciones que se que se
  • 00:14:28
    sugieren es almacenar un valor
  • 00:14:30
    arbitrario
  • 00:14:33
    usar tiempo de medicación del archivo de
  • 00:14:35
    pre produce eso
  • 00:14:38
    y asimismo en el post proceso y bueno
  • 00:14:41
    aquí vemos un ejemplo
  • 00:14:43
    con otra herramienta que vamos a ver el
  • 00:14:47
    tema de dónde termina
  • 00:14:52
    y bueno
  • 00:14:54
    también es importante tener en cuenta el
  • 00:14:58
    orden estable para salidas
  • 00:15:01
    tenerlas siempre listas en el mismo
  • 00:15:04
    orden ya que por ejemplo problema típico
  • 00:15:08
    es el orden de las teclas con tablas
  • 00:15:10
    hash que lo podemos revisar más
  • 00:15:14
    detalladamente
  • 00:15:16
    este enlace de documentación de perro y
  • 00:15:21
    ahí nos podemos fijar en el ejemplo como
  • 00:15:25
    cómo se relaciona
  • 00:15:30
    y bueno
  • 00:15:33
    la forma de darle orden es
  • 00:15:38
    utilizando algunas opciones como shorts
  • 00:15:44
    es importante también que evitemos la
  • 00:15:46
    aleatoriedad ya que no es determinista
  • 00:15:51
    para evitarla podemos sembrar
  • 00:15:55
    el generador de números aleatorios
  • 00:16:02
    en inglés se utiliza como un algoritmo
  • 00:16:07
    que produce una sucesión de números que
  • 00:16:11
    es una muy buena aproximación del
  • 00:16:13
    conjunto aleatorio de números
  • 00:16:19
    extraer el código fuente nombre en
  • 00:16:22
    archivo contenido hash
  • 00:16:25
    y bueno ahí lo podemos ver en un ejemplo
  • 00:16:31
    también definir una variable de entorno
  • 00:16:33
    que afecte a los resultados algunas
  • 00:16:36
    variables de entornos de arándanos y
  • 00:16:37
    that del software como por ejemplo el
  • 00:16:39
    system para las cadenas de tiempo el cis
  • 00:16:42
    y type para la codificación de texto y
  • 00:16:45
    tz para los tiempos
  • 00:16:50
    es importante establecer los en un valor
  • 00:16:53
    controlado sin forzar el lenguaje
  • 00:16:57
    y asimismo puedes dejar de registrar la
  • 00:16:59
    información del sistema de construcción
  • 00:17:03
    no registrará la información son un
  • 00:17:05
    sistema de construcción como por ejemplo
  • 00:17:07
    la fecha y hora de la construcción
  • 00:17:09
    nombre de equipo la ruta la comunión de
  • 00:17:12
    la red el cpu variables entorno
  • 00:17:16
    y bueno si realmente
  • 00:17:20
    quieres hacerlo pues se recomienda que
  • 00:17:22
    sea fuera de los binarios
  • 00:17:25
    y bueno ahora vamos a ver que hay en un
  • 00:17:27
    entorno de construcción
  • 00:17:32
    pues es esencialmente herramientas de
  • 00:17:34
    construcción y sus versiones específicas
  • 00:17:36
    dependiendo de cada uno del sistema de
  • 00:17:39
    construcción por ejemplo en la
  • 00:17:41
    arquitectura que se va a utilizar para
  • 00:17:43
    la construcción del sistema operativo la
  • 00:17:46
    ruta de la construcción y la fecha y
  • 00:17:48
    hora de la construcción
  • 00:17:50
    es importante
  • 00:17:53
    pues a construir es el origen
  • 00:17:56
    ya que las herramientas de construcción
  • 00:17:58
    afectan la salida del origen registro en
  • 00:18:01
    la versión con contax de git y a service
  • 00:18:05
    committee avanza un enfoque que ha sido
  • 00:18:08
    usado por kórbut open de archie y el
  • 00:18:11
    navegador thor
  • 00:18:13
    también es importante qué
  • 00:18:17
    utilizamos una distribución estable como
  • 00:18:19
    debian o centro es registrar a la
  • 00:18:23
    versión del paquete
  • 00:18:25
    y van a tener esperanza de que el
  • 00:18:26
    paquete antiguo continúa disponible o
  • 00:18:29
    registrado y cuando esto ha sido también
  • 00:18:32
    un enfoque utilizado por bitcoin y el
  • 00:18:35
    proyecto tor también tenemos la
  • 00:18:39
    posibilidad de utilizar una máquina
  • 00:18:40
    virtual
  • 00:18:42
    para ahorrar algunos problemas como el
  • 00:18:44
    mismo usuario mismo nombre de equipo es
  • 00:18:47
    la comparación de red y mismo cpu
  • 00:18:50
    y así pues presentar nuevas cosas que
  • 00:18:52
    necesitan ser confiables
  • 00:18:55
    ahora
  • 00:18:57
    tenemos también la distribución del
  • 00:18:59
    entorno de construcción y bueno esto
  • 00:19:02
    se relaciona tener un buen mail
  • 00:19:06
    para la descarga de archivos conocidos
  • 00:19:08
    de las cadenas de herramientas
  • 00:19:11
    comparar sumas de verificación de
  • 00:19:13
    referencia construir configurar y
  • 00:19:17
    por ejemplo en kórbut lo han hecho con
  • 00:19:20
    make close difícil también
  • 00:19:25
    es importante registrar todo el código
  • 00:19:27
    fuente de la cadena de herramientas en
  • 00:19:29
    el sistema de control de versiones
  • 00:19:30
    siendo un enfoque utilizado para el
  • 00:19:32
    sistema de base en vice y google
  • 00:19:35
    asegurarnos de que todo esté registrado
  • 00:19:38
    en el pulsando
  • 00:19:40
    sandbox en linux y bueno esto ha sido
  • 00:19:44
    liberado hace algunos años como software
  • 00:19:46
    libre
  • 00:19:48
    el llamado va a ser
  • 00:19:50
    y bueno
  • 00:19:52
    es una herramienta que nos ayuda
  • 00:19:58
    consumir paquetes y probarlos
  • 00:20:01
    ya que bueno puede ser difícil pedirles
  • 00:20:03
    a todos que descarguen todo todo el
  • 00:20:05
    tiempo también es importante enviar la
  • 00:20:09
    cadena de herramientas como un producto
  • 00:20:11
    de construcción hacer la cadena de
  • 00:20:13
    herramientas como un producto de
  • 00:20:14
    construcción o para enviar si lo podemos
  • 00:20:16
    ver documentado en ese wiki en este
  • 00:20:19
    enlace que les comparto
  • 00:20:22
    y bueno
  • 00:20:24
    podemos ver en el ejemplo a través de
  • 00:20:27
    una descarga de un paquete dar
  • 00:20:29
    resultados usando no obligue después
  • 00:20:35
    imitando su versión
  • 00:20:38
    y finalmente haciendo un mail
  • 00:20:43
    tenemos también guitián que es un método
  • 00:20:46
    de distribución de software orientado al
  • 00:20:48
    control de fuentes seguras
  • 00:20:51
    esto
  • 00:20:53
    haciendo referencia que pago descargar
  • 00:20:56
    binarios de confianza y que son
  • 00:20:58
    verificados por múltiples constructores
  • 00:20:59
    y bueno esto ha sido utilizado por
  • 00:21:02
    bitcoin el navegador
  • 00:21:07
    maneja el xc o cabe m
  • 00:21:12
    a sí mismo pues como descriptores que
  • 00:21:15
    describen la construcción utilizando
  • 00:21:17
    distribución base de paquetes controles
  • 00:21:20
    remotos de kits otros archivos de
  • 00:21:23
    entrada
  • 00:21:25
    scripts de construcción podemos
  • 00:21:30
    profundizar más sobre
  • 00:21:34
    en esos enlaces que les comparto también
  • 00:21:37
    tocar puede proporcionar alguna forma de
  • 00:21:39
    escribir imágenes especializadas de
  • 00:21:41
    contenedores de gnu linux construir un
  • 00:21:44
    entorno controlado las imágenes de doca
  • 00:21:48
    se pueden tratar con un hash de su
  • 00:21:50
    contenido y va a ser tiene de soporte
  • 00:21:52
    para construir imágenes locas
  • 00:21:55
    reproducibles barça y podemos ver un
  • 00:21:59
    ejemplo
  • 00:22:02
    doctor fayt
  • 00:22:04
    ahora también tenemos la opción de usar
  • 00:22:06
    bake grande ya que maneja virtual box
  • 00:22:08
    usando robbie y otros scripts construye
  • 00:22:12
    un ambiente controlado y si quieren
  • 00:22:14
    también funcionen en mac os y windows
  • 00:22:19
    tenemos también el archivo
  • 00:22:23
    punto bills info
  • 00:22:26
    para registrar orígenes binarios genera
  • 00:22:29
    dos paquetes utilizados para construir
  • 00:22:32
    con una versión específica
  • 00:22:34
    y puede ser procesado posiblemente para
  • 00:22:36
    relacionar el entorno
  • 00:22:38
    y todas las versiones tan disponibles
  • 00:22:40
    desde snapshot debian doctor para que
  • 00:22:45
    podemos ver un ejemplo de bill info
  • 00:22:49
    algunos los campos que
  • 00:22:52
    que contiene formato de arquitectura de
  • 00:22:56
    construcción origen binario
  • 00:23:00
    para que arquitecturas es versión ruta
  • 00:23:07
    sumas medicadas a 256 y algunos otros
  • 00:23:12
    campos
  • 00:23:15
    bueno algunos consejos que consisten en
  • 00:23:18
    probar variantes es decir que pues
  • 00:23:24
    construyamos una primera vez un
  • 00:23:26
    paquetito guardar el resultado o
  • 00:23:29
    realizar cambios en nuestro entorno con
  • 00:23:31
    el cual lo construimos
  • 00:23:34
    y después construir nuevamente
  • 00:23:38
    y finalmente comparan los resultados
  • 00:23:39
    para ver si hay diferencias
  • 00:23:43
    también tenemos un sistema de prueba
  • 00:23:49
    utilizado con james 15 a 20 segundos
  • 00:23:52
    debiendo net
  • 00:23:55
    el hardware ha sido patrocinado por una
  • 00:23:59
    empresa alemana de profibrix
  • 00:24:02
    y el valor
  • 00:24:04
    algunas características es que realiza
  • 00:24:06
    pruebas sobre aproximadamente mientras
  • 00:24:08
    unos paquetes fuente de debian por día
  • 00:24:12
    y buenos resultados podemos visualizar
  • 00:24:15
    en un sitio web
  • 00:24:17
    así como otros proyectos como kórbut
  • 00:24:19
    open martín o inclusive el nuestro poder
  • 00:24:22
    estar aquí
  • 00:24:24
    y bueno aquí podemos ver
  • 00:24:27
    una pantalla de
  • 00:24:30
    una
  • 00:24:32
    funcionalidad d
  • 00:24:35
    repuso el débil net y van a hacerla
  • 00:24:40
    ese es el lugar en el que los va a
  • 00:24:42
    redireccionar si lo buscan por el nombre
  • 00:24:46
    de recluso muy bien donde está
  • 00:24:49
    y va de aquí podemos ver un ejemplo de
  • 00:24:53
    variantes
  • 00:24:55
    por ejemplo el hosting el nombre de
  • 00:24:58
    dominio variables
  • 00:25:01
    zona horaria el lenguaje de localización
  • 00:25:04
    usuario llevado si pueden
  • 00:25:08
    fijarse de la izquierda y de la derecha
  • 00:25:10
    pues son diferentes datos
  • 00:25:12
    así es como pues podemos
  • 00:25:16
    analizar cuando un banquete no es
  • 00:25:19
    posible
  • 00:25:22
    aquí por ejemplo utilizando represión de
  • 00:25:27
    viernes
  • 00:25:29
    podemos observar el estado actual de las
  • 00:25:33
    construcciones reproducibles para los
  • 00:25:35
    paquetes en la actual rama inestable o
  • 00:25:38
    sit en la arquitectura m 34
  • 00:25:44
    viendo qué
  • 00:25:46
    ya lo que está en color verde
  • 00:25:48
    son los paquetes que se construyen
  • 00:25:54
    exitosamente de manera reproducible
  • 00:25:56
    siendo el 82%
  • 00:26:00
    lo que está en color naranja es lo que
  • 00:26:02
    falla hacer lo producido
  • 00:26:07
    en la construcción y el resto de color
  • 00:26:11
    rojo
  • 00:26:12
    son paquetes que fallan
  • 00:26:16
    a ser construidos de manera posible
  • 00:26:18
    desde el código fuente
  • 00:26:20
    en esta gráfica también podemos ver por
  • 00:26:23
    cada etiqueta de usuario
  • 00:26:27
    pues los bucks que
  • 00:26:30
    se encuentran en
  • 00:26:32
    en la rama inestable
  • 00:26:36
    ahí lo podemos observar
  • 00:26:42
    con cada uno de los valores
  • 00:26:48
    y así mismo tenemos también
  • 00:26:51
    una gráfica en la que podemos ver los
  • 00:26:54
    packs que se encuentran abiertos y
  • 00:26:57
    cerrados siendo el color verde los que
  • 00:26:58
    ya han sido cerrados y el color naranja
  • 00:27:02
    los que aún faltan por resolverse
  • 00:27:05
    y ahora les voy a compartir
  • 00:27:09
    sobre qué es dijo scott que es una gran
  • 00:27:12
    herramienta que nos ayuda para examinar
  • 00:27:14
    las diferencias en profundidad
  • 00:27:17
    nos ofrece salidas tanto por html o de
  • 00:27:20
    texto que muestran estas diferencias de
  • 00:27:24
    maquetas recursiva mente en los archivos
  • 00:27:26
    busca la legibilidad humana
  • 00:27:30
    para que lo podamos entender nosotros
  • 00:27:32
    descomprimir el pdf desarrollo binarios
  • 00:27:35
    y decretar chivo diet y el texto y
  • 00:27:39
    asimismo esta selección eran nuevos
  • 00:27:41
    formatos de archivos
  • 00:27:43
    y también tiene como característica que
  • 00:27:45
    retrocede a la comparación binaria y
  • 00:27:48
    bueno si gustan
  • 00:27:51
    visitar el sitio oficial del proyecto lo
  • 00:27:54
    encuentran en disco doctor
  • 00:27:57
    y bueno aquí vemos un ejemplo de cómo se
  • 00:27:59
    muestra en la salida del virus com con
  • 00:28:02
    html podemos ver las diferencias que nos
  • 00:28:06
    comparten en las líneas resaltar ese
  • 00:28:09
    color amarillo y aquí tenemos la salida
  • 00:28:12
    en texto plano
  • 00:28:15
    ahora vamos a ver otra herramienta que
  • 00:28:19
    se llama script de terminación y bueno
  • 00:28:22
    esencialmente nos ayuda a normalizar
  • 00:28:24
    varios formatos de archivos actualmente
  • 00:28:27
    maneja algunos como archivos art
  • 00:28:31
    the shape java llamado en html may be
  • 00:28:36
    found for artist png archivo zip y ese
  • 00:28:41
    es extensible a nuevos formatos está
  • 00:28:44
    escrito en ver como típica del iva
  • 00:28:47
    pueden
  • 00:28:50
    visitar su repositorio bits
  • 00:28:53
    en el enlace que les comparto
  • 00:28:56
    también tenemos recursos
  • 00:29:00
    para acercarnos a
  • 00:29:04
    a cómo se hacen algunas tareas en el
  • 00:29:06
    equipo deben repuso y muy bills
  • 00:29:10
    en la wiki de debian tenemos un how to
  • 00:29:14
    también
  • 00:29:17
    nos ayuda mucho el visitar el sitio de
  • 00:29:24
    representando nets que es la url que les
  • 00:29:28
    he dicho de test
  • 00:29:31
    de este miércoles
  • 00:29:39
    y bueno también
  • 00:29:41
    pueden revisar
  • 00:29:44
    el concepto de construcción doble
  • 00:29:46
    universal
  • 00:29:48
    en el url que les comparto de
  • 00:29:54
    the wild at home crossing trust
  • 00:29:58
    bueno ahora vamos a ver cuál es el
  • 00:30:00
    estado actual en la rama
  • 00:30:03
    en testing que será la futura estable
  • 00:30:06
    bullseye
  • 00:30:09
    y bueno
  • 00:30:11
    en resumen de actualmente de bien es
  • 00:30:15
    94.9 por ciento producible para las
  • 00:30:17
    inversiones estables
  • 00:30:20
    20 42 de los paquetes en bolsa y pueden
  • 00:30:24
    construir ya paquetes reproducibles
  • 00:30:27
    el 3.3 que son 991 aún fallando hace
  • 00:30:31
    reproducibles y el 1.3 por ciento que
  • 00:30:34
    son 386 falla de construir de manera
  • 00:30:37
    posible desde el código fuente
  • 00:30:40
    y bueno porque de bien no todavía
  • 00:30:44
    completas antes de liberar una versión
  • 00:30:47
    así las cuerdas continuarían en el
  • 00:30:51
    archivo que no reproducible a menos que
  • 00:30:53
    sea reconstruido
  • 00:30:55
    y bueno la respuesta a esto es porque a
  • 00:30:58
    pesar de que el trabajo se comienza en
  • 00:31:00
    el 2014 pues se necesita mucha ayuda
  • 00:31:04
    entonces
  • 00:31:06
    sería grandioso que lograra voy a hacer
  • 00:31:08
    100%
  • 00:31:11
    y bueno de esa manera
  • 00:31:14
    otros por ejemplo como cali tarot tails
  • 00:31:19
    pueden tomar nuestro trabajo ahora y
  • 00:31:22
    hacer su diversión parcialmente
  • 00:31:24
    reproducible aunque lo más deseable es
  • 00:31:26
    que sea completamente reproducible
  • 00:31:29
    y de esta manera debían once bolsa y
  • 00:31:33
    continuar haciendo por ciento y el
  • 00:31:34
    reclusivo en el 2021
  • 00:31:38
    desde agosto de 2007 ya deben policy
  • 00:31:43
    establece que los paquetes deben ser
  • 00:31:44
    reproducibles
  • 00:31:47
    aunque esperamos que
  • 00:31:49
    ella la deben policy establezca qué
  • 00:31:53
    el cien por cien de las construcciones
  • 00:31:55
    reproducibles deben de serlo ya de una
  • 00:31:58
    manera
  • 00:32:01
    necesaria para debian 11 bolsa y 2021 y
  • 00:32:06
    las futuras versiones que vengan y hablo
  • 00:32:10
    así hay pues difícil las secciones y
  • 00:32:13
    bueno de verdad necesitamos mucha ayuda
  • 00:32:17
    si buscan comenzar les recomiendo que
  • 00:32:20
    visiten el sitio web de los próximos
  • 00:32:23
    bills doctor ahí van a encontrar
  • 00:32:28
    como contribuir los conceptos más
  • 00:32:32
    básicos herramientas y mucha información
  • 00:32:35
    útil que les va a ayudar a comenzar a
  • 00:32:38
    entender más sobre la importancia del
  • 00:32:40
    recurso wheels y de qué manera se puede
  • 00:32:44
    ayudar en el proyecto
  • 00:32:47
    bueno
  • 00:32:49
    quieren ayudar si ustedes están
  • 00:32:53
    manteniendo algún paquete
  • 00:32:57
    les gustaría entrar al desarrollo de
  • 00:32:59
    debian o si ya lo son
  • 00:33:03
    es importante que dejen de usar las
  • 00:33:06
    fichas de construcción y utilicen la
  • 00:33:09
    variable surf
  • 00:33:11
    en su lugar y bueno puedes tener en
  • 00:33:15
    cuenta las especificaciones que se
  • 00:33:17
    encuentran en el en el sitio oficial de
  • 00:33:19
    recursos móviles también algo muy útil
  • 00:33:22
    es que se puede aprender haciendo y de
  • 00:33:26
    esta manera probar por nosotros mismos
  • 00:33:29
    construyendo algunas veces ejecutando de
  • 00:33:32
    foxconn en los resultados para así
  • 00:33:35
    obtener mejores resultados usar
  • 00:33:38
    nuestro repositorio es posible wílder y
  • 00:33:42
    una compresión personalizada
  • 00:33:44
    y también recurrir a los documentos
  • 00:33:47
    oficiales de próximo vivir que nos va a
  • 00:33:51
    encontrar
  • 00:33:52
    en los enlaces que les he compartido
  • 00:33:56
    y bueno también pedir ayuda en nuestros
  • 00:33:58
    canales como deben reproducir y de
  • 00:34:00
    revolverse ambos en la red etc
  • 00:34:05
    de irc hoy les avisó hace correo que
  • 00:34:08
    pueden también consultar
  • 00:34:13
    algo también muy útil y que ayudaría
  • 00:34:15
    mucho sería
  • 00:34:17
    crear tutoriales y cursos sobre
  • 00:34:20
    reproducir vídeos en inglés o nuestro
  • 00:34:23
    idioma local por ejemplo grabar un vídeo
  • 00:34:25
    explicando cómo iniciar de lo más básico
  • 00:34:28
    mencionar que conocimientos necesitan
  • 00:34:32
    entender previamente para crear
  • 00:34:33
    construcciones reproducibles subir pues
  • 00:34:37
    el vídeo ha abierto que es un recto al
  • 00:34:41
    sabor libre para compartir contenidos
  • 00:34:43
    audiovisuales y bueno lo pueden hacer a
  • 00:34:46
    través de este url que les comparto y
  • 00:34:49
    bueno asimismo difundir sus contenidos
  • 00:34:52
    audiovisuales suscritos en redes
  • 00:34:54
    sociales libres como maston fonst
  • 00:34:57
    y claro más libre trucks
  • 00:35:00
    y bueno uno hace el equipo porque vale
  • 00:35:04
    vale realmente la pena ya que van a
  • 00:35:06
    ayudar directamente a que mi vida sea
  • 00:35:08
    más seguro y no tenga backdoors aprender
  • 00:35:11
    algo nuevo cada día se aprende mucho
  • 00:35:13
    sobre
  • 00:35:14
    empaquetamiento en debian seguridad
  • 00:35:19
    pues herramientas propias de debian como
  • 00:35:23
    limpia gel para transformar el mundo del
  • 00:35:28
    software y más allá si lo vemos en una
  • 00:35:30
    perspectiva política igual que hacemos
  • 00:35:33
    la luz de las tareas en repsol bills
  • 00:35:36
    consiste en revisar paquetes identificar
  • 00:35:39
    problemas y documentar soluciones
  • 00:35:44
    contribuir
  • 00:35:46
    las herramientas como
  • 00:35:48
    el robo civil de dialnet dijo
  • 00:35:54
    también proponer cambios para las caídas
  • 00:35:56
    de herramientas enviar parches para
  • 00:35:59
    paquetes individuales así como
  • 00:36:03
    notificarles a los desarrolladores que
  • 00:36:06
    paquete aún no es posible y proponer un
  • 00:36:08
    parche escribir más documentación
  • 00:36:11
    general y pues correr la voz por el
  • 00:36:13
    mundo para qué
  • 00:36:15
    nos fortalezcamos y acá estamos más y
  • 00:36:18
    les comparto también
  • 00:36:21
    estos enlaces directos a cómo contribuir
  • 00:36:25
    en un reposo
  • 00:36:29
    en el cual pues van a encontrar
  • 00:36:31
    sugerencias de tareas como reportar box
  • 00:36:35
    en debian
  • 00:36:38
    también pues la
  • 00:36:40
    la página d
  • 00:36:42
    las definiciones no que
  • 00:36:45
    y realmente ayudan a entender desde lo
  • 00:36:49
    más básico
  • 00:36:50
    conceptos muy importantes en
  • 00:36:52
    reproducción muy bien
  • 00:36:54
    y bueno también otros recursos que son
  • 00:36:57
    muy buenos para iniciar
  • 00:37:00
    es
  • 00:37:02
    pero esta plática de mike y sets de
  • 00:37:07
    el caos combinar colores
  • 00:37:11
    de la visión 31 que es el vídeo que del
  • 00:37:16
    que les hable casi al principio
  • 00:37:18
    también en verdad plática del lunes
  • 00:37:20
    sobre la solución de problemas
  • 00:37:22
    reproducibles en el chaos computer club
  • 00:37:24
    cause convencer a camps
  • 00:37:27
    15 que lo pueden encontrar en la url que
  • 00:37:33
    les comparto así como experimentar y
  • 00:37:36
    aprender haciendo
  • 00:37:40
    y bueno pues sería muy agradable
  • 00:37:41
    escuchar sus preguntas comentarios o
  • 00:37:43
    ideas y bueno recuerden que pueden
  • 00:37:47
    encontrarlos también en nuestros canales
  • 00:37:50
    de ayer como the crucible bills
  • 00:37:59
    y bueno pues muchas gracias
  • 00:38:02
    espero que les haya gustado
  • 00:38:08
    bueno muchas gracias jonathan por esta
  • 00:38:10
    explicación muy clara sobre de qué se
  • 00:38:13
    trata el proyecto de reproducción
  • 00:38:15
    incluyendo también cómo podemos
  • 00:38:17
    participar en este momento en el path
  • 00:38:21
    tenemos una pregunta
  • 00:38:23
    en la pregunta dice eso como
  • 00:38:25
    empaquetador cuando uso
  • 00:38:29
    la lista
  • 00:38:33
    tienes eco en el 5
  • 00:38:36
    claro no aún no es posible no es no es
  • 00:38:41
    posible ver en limpian si el paquete es
  • 00:38:44
    reproducible por lo que se tienen que
  • 00:38:47
    tener en cuenta
  • 00:38:50
    los requisitos que necesita el paquete
  • 00:38:53
    como por ejemplo no tener la hora de
  • 00:38:55
    registro
  • 00:38:57
    en el orden de las salidas y bueno pues
  • 00:39:01
    volverlo a construir es decir repetir el
  • 00:39:04
    proceso para asegurarnos de que
  • 00:39:06
    efectivamente ya sea reproducible
  • 00:39:10
    o sea que como serían los pasos para una
  • 00:39:13
    persona que mantiene un paquete qué
  • 00:39:15
    pasos tendría que hacer para verificar
  • 00:39:16
    que sea reproducible construirlo dos
  • 00:39:18
    veces y después
  • 00:39:23
    y bueno ya
  • 00:39:27
    construirlo
  • 00:39:29
    de nuevo
  • 00:39:32
    pues verificar qué
  • 00:39:35
    que cumpla con
  • 00:39:37
    con los requisitos que se tienen en
  • 00:39:40
    recursos pero realmente no tenemos una
  • 00:39:44
    forma automatizada para para que se
  • 00:39:46
    muestre por lo que es bueno no no
  • 00:39:48
    tendría así como una una receta no el
  • 00:39:50
    segunto para para sugerir
  • 00:39:58
    bueno no tenemos más preguntas pero yo
  • 00:40:01
    te quería preguntar
  • 00:40:05
    vos nos contaste un poco el estado
  • 00:40:06
    actual y mi duda sería que sería lo más
  • 00:40:11
    importante si alguien quiere colaborar
  • 00:40:12
    vos dijiste todas las cosas para
  • 00:40:14
    colaborar pero que sería lo más
  • 00:40:15
    importante que le hace falta al proyecto
  • 00:40:17
    ahora
  • 00:40:22
    pues
  • 00:40:25
    además de la
  • 00:40:29
    en tanto los mantener es de paquetes
  • 00:40:35
    y se aseguren de que sus
  • 00:40:39
    sus paquetes son son reproducibles
  • 00:40:41
    porque bueno es muy importante que cada
  • 00:40:45
    uno no se paga sepa cómo hacerlo y
  • 00:40:48
    subirlo ya con los que quieras para
  • 00:40:50
    ahorrar trabajo con las características
  • 00:40:52
    de que sean reproducibles yo pienso que
  • 00:40:54
    hace falta también
  • 00:40:57
    acercamiento acercamiento de gente que
  • 00:41:00
    ayude por ejemplo en la parte de jenkins
  • 00:41:04
    o a reportar
  • 00:41:08
    el estado de los paquetes que no son
  • 00:41:10
    reproducibles contribuir con parches
  • 00:41:13
    reportando los a los a los
  • 00:41:16
    desarrolladores a los que empaquetar
  • 00:41:19
    para para debian y pues sí
  • 00:41:23
    tener más más colaboradores en el equipo
  • 00:41:26
    directamente
  • 00:41:30
    bárbaro muchísimas gracias muchas
  • 00:41:32
    gracias por la presentación y les
  • 00:41:35
    decimos hasta luego a los que nos están
  • 00:41:37
    escuchando en español
  • 00:41:38
    volvemos mañana
  • 00:41:40
    chau muchas gracias
Tags
  • Debian
  • software libre
  • construcciones reproducibles
  • seguridad
  • código fuente
  • binarios
  • proyecto Tor
  • vulnerabilidades
  • sistemas de construcción determinista
  • comunidad