Tengo una pregunta sobre DSA y GPG. Suponga que está intentando verificar que un archivo descargado es 'legítimo' (es decir, no tiene código malicioso y es el archivo deseado). Solo usaré la imagen ISO de 16.04 LTS de Ubuntu como ejemplo. Siguiendo las instrucciones, recibo la idea general (corríjala si me equivoco):
- Descargue la ISO, el archivo SHA256 y la firma del archivo SHA256
- Obtenga la clave pública de Ubuntu desde el servidor de claves
- Verifique que el archivo SHA256 se firmó con la clave privada de Ubuntu con la clave pública con DSA.
- Calcule el hash de la ISO y compare el hash con el hash en el archivo SHA256.
Ahora, tal vez sea una pregunta estúpida, pero ¿no podría un atacante darle instrucciones de descargar su propia clave en lugar de Ubuntu, un ISO malicioso, el hash del ISO malicioso y una firma válida del hash del ISO malicioso? Supongo que una forma sencilla de defenderse es comparando la clave pública con varios sitios diferentes (ya que esta clave ha existido desde siempre), pero qué pasa si la clave pública no es tan conocida. Si el sitio está completamente comprometido, creo que el atacante podría engañarlo para que descargue la clave incorrecta.