Uso de blockchain para publicar códigos de verificación de software descargables

¿Cuál es el punto de comparar sha256 del archivo descargado con el código publicado en el mismo sitio web?

¿Por qué los desarrolladores de monedas no pueden publicar la versión del archivo y el hash sha256 en blockchain como alias o mensaje ?

¿Por qué otros proveedores de software no usan blockchain como una forma confiable de distribuir códigos de verificación?

Los proveedores de software podrían enviar el código sha256 publicado en su sitio web por una pequeña tarifa como transacción de respuesta a cada cuenta interesada.

Esta es una forma real de generar un amplio interés práctico en las criptomonedas y la cadena de bloques, ¿no es así?

¿Qué tal escanear todo el software en línea descargable y poner todo tipo de códigos hash en blockchain, haciéndolo útil no solo para transferencias de monedas?

¿Qué tal configurar una cuenta de respuesta automática como función de moneda donde el proveedor de software podría poner un código hash y obtener algunas monedas por él?

¿Qué impide que un atacante malicioso distribuya un hash falso exactamente de la misma manera?
Registro de sitio web con alias NXT y hash de publicación utilizando la cuenta que posee ese alias.
También publicación firmada por ese mensaje de cuenta en el sitio web.
Si tiene todo eso, ¿qué agrega la cadena de bloques?
Re: "¿Qué agrega la cadena de bloques?" - Da el equivalente permanente gratuito del certificado SSL. Permite publicar cualquier cosa de forma permanente sin la supervisión de la ICANN y otras autoridades. La parte difícil es establecer confianza en la cuenta de NXT. La confianza se puede construir sobre la confianza de un sitio web popular existente como sugerí anteriormente (mediante la publicación de un mensaje firmado).
Los certificados de código de Nate Elderege son escandalosamente caros para lo que son básicamente. Hay colusión entre Microsoft y los proveedores de certificados. para mantener las cosas de esta manera. Además, los aros que debemos atravesar para instalar y usar esos certificados aumentan cada año, lo que agrega tiempo productivo, dinero y energía perdidos.

Respuestas (1)

Está bien, voy a morder.

No, no creo que sea útil publicar hashes de software en la cadena de bloques.

Como reconoce, un hash de un paquete de software es inútil a menos que esté autenticado de alguna manera. Actualmente, la forma más popular de hacer esto es hacer que el hash esté disponible en un sitio web "conocido" que use HTTPS y proporcione un certificado X.509 firmado por una autoridad reconocida. Esto proporciona cierto nivel de confianza de que el hash es reclamado como auténtico por los propietarios del sitio web, que con suerte son las mismas personas que los autores del software.

Si desea distribuir el hash desde cualquier sitio que no se pueda autenticar, el hash deberá autenticarse automáticamente; debe llevar una firma que el usuario pueda tener cierta confianza fue hecha por las personas adecuadas. Una forma de hacerlo sería con certificados X.509 nuevamente, pero empaquetados explícitamente con el hash en lugar de ser proporcionados implícitamente por un servidor HTTPS.

Su propuesta de usar un alias de NXT tendría un efecto similar, aunque creo que, tal como están las cosas, proporcionaría bastante menos confianza. A pesar de lo problemático que es el sistema de autoridad de certificación actual, creo que la mayoría de la gente hoy en día confiaría más en un certificado para "Initech Corporation" firmado por Verisign que en el propietario de "nxt:initech".

De cualquier manera, el punto es que si no va a distribuir el hash desde una ubicación "bien conocida", debe tener una firma independiente, y en ese momento puede distribuirlo de la forma que desee. Ciertamente podrías ponerlo en la cadena de bloques, pero ¿cuál es el punto? No sirve de nada sin el paquete de software que se supone que debe autenticar. (Y no puede poner el software en sí mismo en la cadena de bloques, es demasiado grande). ¿Por qué no eliminar al intermediario y simplemente distribuir el hash firmado junto con el software? De hecho, ¿por qué no distribuir simplemente un único archivo firmado?

De hecho, en muchos sentidos, distribuir el hash en la cadena de bloques es menos seguro que simplemente ponerlo en un sitio web. Incluso si lo pego en el antiguo servidor HTTP para initech.com, un atacante aún tiene que comprometer ese servidor o interceptar el tráfico de un usuario de alguna manera, lo cual no es trivial de lograr. Si lo coloco en la cadena de bloques, cualquier persona con BTC 0.0001 de sobra puede publicar otro hash que se vea similar (quizás firmado por "inittech"), por lo que es bastante probable que algún usuario confundido elija el incorrecto por error.

Si TOTALCMD.EXE en mi disco duro tiene el emisor de la firma Verisign y tiene el nombre de firmante "Ghisler GmbH", ¿cómo puedo saber si debe estar firmado por "Ghisler Software GmbH" en su lugar?