¿La verificación de la firma PKI requiere una distribución segura de las claves públicas?

0

Estoy viendo un proyecto de software donde se encuentran las claves públicas GPG de los mantenedores en un sitio web mediante HTTP . Según el Manual de privacidad de GNU , "la firma se verifica utilizando la clave pública correspondiente". Entonces, lo que me pregunto es si un atacante puede cifrar una carga útil malintencionada, usar un ataque MITM en el sitio web del proyecto y entregar sus propias claves públicas.

¿Las claves públicas utilizadas para la verificación no deben transmitirse de forma segura también?

    
pregunta nc. 19.03.2016 - 22:30
fuente

2 respuestas

1

No. No es necesario que las claves se transmitan de forma segura, pero, por supuesto, debe transmitirlas de tal manera que no puedan ser reemplazadas o manipuladas, si desea protegerse contra alguien que distribuye datos maliciosos.

Digamos que está alojando un repositorio de software. Incluso si firma un software con su clave, si un pirata informático obtiene acceso al repositorio, podría cargar software malicioso Y también reemplazar las claves de firma "correctas" por sus propias claves públicas, por lo que si un usuario final valida el software, salido como válido. Eso es lo que pide el OP.

De la misma manera, un atacante podría reemplazar las claves durante la transmisión (ataque MITM), por lo que si un usuario hace enlace El MITM puede reemplazar la respuesta con su propia clave pública.

Así que la simple firma de software y la publicación de la clave en el sitio del proveedor del software, está más orientada a proteger contra los espejos que son pirateados y comienzan a distribuir datos maliciosos. Es por eso que algunos proveedores simplemente publican el hash SHA / MD5 del software, por lo que el proveedor no necesita confiar completamente en la seguridad de las réplicas de terceros.

Por eso es una buena idea transmitir las claves utilizando SSL, o tener la clave firmada por un origen acreditado (luego se convierte en un certificado, podría ser un x509 o un PGP) si también desea protegerse contra Reemplazo de clave pública maliciosa.

Otra forma de protegerse contra esto, es que el usuario final descarga y guarda la clave durante la primera interacción. Por lo tanto, si el repositorio se compromete más tarde, el usuario final tendrá una "clave correcta" guardada, por lo que no importa si la clave se reemplaza posteriormente, ya sea durante un MITM o un ataque de hackeo.

    
respondido por el sebastian nielsen 20.03.2016 - 06:12
fuente
1

Sebastian dio una gran respuesta, pero también quería señalar que su problema describe exactamente por qué quiere crear una Web de confianza ( enlace ) firmando las claves PGP de otros y haciendo que firmen las suyas.

    
respondido por el Ztyx 19.04.2016 - 08:11
fuente

Lea otras preguntas en las etiquetas