¿Cómo estar seguro de que el archivo descargado es correcto? [duplicar]

0

La semana pasada leí mucho sobre seguridad. Tengo una comprensión básica de cómo funcionan las claves públicas o privadas. Pero todavía tengo muchas preguntas que no puedo encontrar una respuesta. Ahora mismo estoy interesado en comprobar un archivo ejecutable que descargué. Asumamos que firmo un archivo, lo envío al usuario, pero un tipo malo en el medio cambia mi archivo a malware. Entonces, cuando el usuario hace doble clic en exe descargado, ¿cómo puede estar seguro de que realmente lanza un archivo correcto y no un virus?

Actual .: Suponga que el usuario de mi programa es un ama de casa y que no sabe nada sobre la línea de comandos y que no descargará programas GUI especiales para la comparación de la suma de comprobación. Y al mismo tiempo yo, como desarrollador, quiero estar seguro de que ella ejecuta mi programa pero no está corrompida. ¿Cómo?

    
pregunta nikitablack 10.11.2014 - 18:00
fuente

2 respuestas

3

Cualquier atacante que intercepte el archivo podría reemplazar o eliminar cualquier mecanismo de autoverificación incluido en el archivo ejecutable. Por lo tanto, debemos dejar la verificación de la firma en un sistema externo al ejecutable descargado, por ejemplo, el sistema operativo.

Hay tres resultados posibles que un sistema de verificación puede producir:

  1. La firma es definitivamente válida (la firma y los datos coinciden)
  2. La firma definitivamente es no válida (la firma y los datos no coinciden)
  3. No se proporciona ninguna firma (el ejecutable no está firmado)

En Windows, es posible que haya visto ventanas de confirmación emergentes como esta cuando intenta ejecutar un ejecutable:

VentanaemergentedeconfirmaciónejecutabledeWindows,conelcampo"Editor" del campo "WinZip Computing"

Aquí, el ejecutable se ha firmado y Windows tiene ambos

  1. verificó la firma en el ejecutable, y
  2. verificó la identidad del propietario de la clave de verificación pública, utilizando una cadena de confianza basada en una de las autoridades de certificación de confianza del sistema operativo.

Sabemos con certeza criptográfica que una entidad llamada WinZip Computing firmó este ejecutable, exactamente como existe ahora en nuestro disco duro. Ese es el caso # 1, arriba.

Así es como un usuario preocupado por la seguridad puede verificar que algo está definitivamente sin modificar desde su publicación original. De manera similar, el sistema operativo puede detectar el caso # 2 con mucha facilidad: intenta verificar la firma y encuentra una falta de coincidencia en lugar de una coincidencia. En ese caso, el sistema operativo puede decirle severamente al usuario que no ejecute el software porque es increíblemente poco confiable.

Sin embargo, desea saber cómo evitar que un usuario ejecute algo que haya sufrido modificaciones arbitrarias. Es fácil para un atacante generar un caso # 3 (sin firma): simplemente reemplace su ejecutable firmado por un ejecutable modificado sin firmar.

network