¿Por qué firmaría mis confirmaciones de git con una clave GPG cuando ya utilizo una clave SSH para autenticarme cuando presiono?

28

En pocas palabras, me pregunto por qué uno tendría que firmar sus compromisos con una clave GPG cuando contribuya a GitHub cuando ya tiene que proporcionar una clave pública SSH.

    
pregunta Mahmoud Tantawy 17.04.2016 - 00:36
fuente

1 respuesta

30

Cuando se autentica en Github con su clave SSH, esa autenticación no se convierte en parte del repositorio de manera significativa o duradera. Hace que Github te dé acceso por el momento, pero no prueba nada a nadie que no sea Github.

Cuando GPG-firma una etiqueta git, esa etiqueta es parte del repositorio, y puede ser enviada a otras copias del repositorio. Por lo tanto, otras personas que clonan su repositorio pueden verificar la etiqueta firmada, suponiendo que tengan acceso a su clave pública y razones para confiar en ella.

Si bien no es necesario etiquetar y firmar con GPG cada confirmación individual, es aconsejable proporcionar etiquetas con firma GPG al menos en cada confirmación que corresponda a una versión publicada de su código. Es posible que desee hacer más que eso, pero eso es el mínimo de comportamiento responsable, ya que proporciona una seguridad razonable de que:

  • El compromiso en cuestión realmente corresponde al lanzamiento en cuestión.

  • El compromiso en cuestión (y en la medida en que confiamos en los hashes SHA1 utilizados en el historial de git commit, todos sus predecesores) provino del firmante (y, si corresponde, del equipo del firmante).

  • El compromiso en cuestión no se modificó después de que el firmante lo etiquetó.

Tenga en cuenta que dije "seguridad razonable", no "certeza perfecta" ... hay otras cosas que pueden ir mal con la integridad del software. Sin embargo, proporcionar etiquetas firmadas al menos para lanzamientos oficiales es un gran paso en la dirección correcta.

    
respondido por el HedgeMage 17.04.2016 - 08:02
fuente

Lea otras preguntas en las etiquetas