¿Dónde están los esfuerzos para estandarizar los metadatos de integridad de descarga? (appcasting?)

0

Descargo software de código abierto todo el tiempo y estoy continuamente perplejo por el hecho de que, por un lado, hay tantos sitios ( apache , MySQL , Eclipse ) proporcione información sobre la integridad de la descarga a través de hashes MD5 y / o firmas digitales, especialmente porque los sitios espejo de descarga están involucrados y son potencialmente vulnerables a los ataques de piratas informáticos, pero el formato de esta información de integridad de la descarga es legible para los humanos y no para la máquina.

Me encantaría que hubiera un formato estándar para esta información, por lo que podría usar un software de complemento en mi navegador web para hacer todo el trabajo sucio por mí y generar un archivo de registro de los resultados, para no tener que seguir teniendo que hacerlo manualmente. ejecute md5 y haga todo este trabajo extra cada vez que descargue algo. Parece que en realidad hay algunos esfuerzos para diseñar formatos como este, p. Ej. "appcasting" (ver también aquí y aquí y aquí , y lo que parece el blog original aquí ) ...

... ¿por qué algo como esto no es más frecuente en la comunidad de código abierto? ¿Qué se necesitaría para que algo como esto estuviera funcionando?

Jason S
fuente

Respuestas:

2

La respuesta corta es que hay un método estándar, se llama firma de solicitud . La respuesta más larga es un poco más complicada.

Con respecto a la idea de hash MD5 de usted, hay al menos un complemento experimental de Firefox que calcula los hashes de los archivos descargados. A continuación, puede compararlos manualmente. Alternativamente, muchos sitios ofrecen descargas de archivos de texto con los hash precomputados para su software. A continuación, puede forzar un cheque usando md5sum -c < hash filename >. El problema con todos estos métodos es que si un atacante pudo reemplazar el archivo que descargó, probablemente podría cambiar los hashes que figuran en el sitio web.

La firma de la aplicación es la solución oficial a este problema. Utiliza la criptografía de clave pública y las autoridades de certificación de una manera similar a la que se usa en el estándar de seguridad SSL para sitios web. Funciona obteniendo un certificado digital de una autoridad de certificación. Este certificado puede ser verificado por cualquier persona y garantizar que el titular es quien dice ser. También se puede utilizar para "firmar" un paquete, lo que garantiza que el paquete fue producido por el titular y no alterado de ninguna manera por nadie más que el titular.

Entonces, ¿por qué no vemos una mejor adopción de estos métodos? Bueno, ya están bastante bien adoptados, y en su mayoría son invisibles cuando funcionan. Los principales sistemas operativos y navegadores utilizan las firmas si están disponibles de forma predeterminada. Además, las principales distribuciones de Linux firman los paquetes de software y las actualizaciones que proporcionan utilizando estos métodos. Sin embargo, cuando se trata de los jugadores más pequeños, es muy poco probable que veamos una gran adopción.

El problema aquí es una mezcla de pobreza de hackers y orgullo de hackers. Para obtener uno de estos certificados, debe pagar una gran suma de dinero a una de las autoridades de certificación. Si no lo hacen, un programador aún puede firmar sus propios paquetes sin la aprobación de CA. Al hacer esto, el usuario que descarga el archivo puede estar seguro de que solo el titular del certificado tocó un paquete en particular, lo que cumple con el requisito de integridad de su pregunta.

Desafortunadamente, usando un certificado 'autofirmado' como este disminuye La confianza del público en su software, en lugar de aumentarla. Si se autofirma, el sistema operativo / navegador se queja ruidosamente cuando intentas abrir el paquete; más fuerte incluso que para un archivo totalmente sin firmar. Debido a que el navegador o sistema operativo no confía en el creador del software, piensa que usted tampoco debería confiar en ellos.

A partir de esto, la queja del pirata informático es ¿por qué alguien debería confiar en una autoridad de certificación multinacional sin rostro más que en otra persona? ¿Qué han hecho para demostrar que son más confiables que todos los demás?

Para muchas personas, la emisión del certificado se reduce a la extorsión: "Páganos $ $ $ para certificarlo, o sus descargas serán ciudadanos de segunda categoría". Es por eso que la firma de la aplicación no ha sido adoptada por nadie, excepto los jugadores más grandes.

frnknstn
fuente
No estoy en desacuerdo con lo que está diciendo, pero (a) las descargas a veces son archivos que no son aplicaciones (archivos .dll o bibliotecas compiladas o archivos .xml o lo que sea), por lo que no se pueden firmar. Y (b), muchos sitios utilizan hashes MD5 para verificar la integridad de los sitios de descarga espejo. Solo deseo que el hash MD5 se haya formateado de forma que pueda leerse en la máquina.
Jason S
Bueno, cualquier archivo puede ser firmado, no solo ejecutables. Por ejemplo, en el sitio de apache, cualquier descarga está acompañada por un archivo .asc que contiene la firma, por ejemplo mysql.tar.gz.asc. Supongo que lo que está pidiendo es un complemento de Firefox que: -puede reconocer y ofrecer importar claves públicas PGP con las que se encuentre. complete, o cuando descargue manualmente un archivo de firma, verifique automáticamente los archivos que firma
frnknstn