Protección de la privacidad de GNU

Implementación completa de los estándares OpenPGP y S/MIME
Autor(es) original(es)Werner Koch
Desarrollador(es)Proyecto GNU
Lanzamiento inicial7 de septiembre de 1999 ; hace 25 años ( 07-09-1999 )
Versión(s) estable(s)
Estable2.4.6 [1] / 29 de octubre de 2024
LTS2.2.43 [2] / 16 de abril de 2024
Versión(s) de vista previa
2.5.1 [3]  / 12 de septiembre de 2024
Repositoriodev.gnupg.org/fuente/gnupg/
Escrito endo
Sistema operativoMicrosoft Windows , macOS , sistema operativo RISC , Android , Linux
TipoOpenPGP
Licencia2007: GPL-3.0 o posterior [a]
1997: GPL-2.0 o posterior [b]
Sitio webgnupg.org

GNU Privacy Guard ( GnuPG o GPG ) es un software libre que reemplaza al paquete de software criptográfico PGP de Symantec . El software cumple con RFC  4880, la especificación de la IETF de OpenPGP basada en estándares . Las versiones modernas de PGP son interoperables con GnuPG y otros sistemas compatibles con OpenPGP v4. [4]

En noviembre de 2023 se publicaron dos borradores cuyo objetivo era actualizar la especificación OpenPGP v4 de 2007 (RFC4880), que finalmente dieron como resultado el estándar propuesto RFC 9580 en julio de 2024. La propuesta de los desarrolladores de GnuPG se llama LibrePGP. [5]

GnuPG es parte del Proyecto GNU y recibió financiación importante del gobierno alemán en 1999. [6]

Descripción general

GnuPG es un programa de cifrado híbrido porque utiliza una combinación de criptografía de clave simétrica convencional para mayor velocidad y criptografía de clave pública para facilitar el intercambio seguro de claves, generalmente utilizando la clave pública del destinatario para cifrar una clave de sesión que se utiliza solo una vez. Este modo de funcionamiento es parte del estándar OpenPGP y ha sido parte de PGP desde su primera versión.

La serie GnuPG 1.x utiliza una biblioteca criptográfica integrada, mientras que la serie GnuPG 2.x la reemplaza con Libgcrypt .

GnuPG cifra los mensajes utilizando pares de claves asimétricas generados individualmente por los usuarios de GnuPG. Las claves públicas resultantes pueden intercambiarse con otros usuarios de diversas formas, como por ejemplo mediante servidores de claves de Internet . Siempre deben intercambiarse con cuidado para evitar la suplantación de identidad mediante la corrupción de las correspondencias clave pública ↔ identidad del "propietario". También es posible añadir una firma digital criptográfica a un mensaje, de modo que se pueda verificar la integridad del mensaje y el remitente, si una correspondencia particular en la que se ha confiado no ha sido corrompida.

GnuPG también admite algoritmos de cifrado simétrico . De forma predeterminada, GnuPG utiliza el algoritmo simétrico AES desde la versión 2.1, [7] CAST5 se utilizó en versiones anteriores. GnuPG no utiliza software o algoritmos patentados o restringidos de otro modo. En su lugar, GnuPG utiliza una variedad de otros algoritmos no patentados. [8]

Durante mucho tiempo, no fue compatible con el algoritmo de cifrado IDEA utilizado en PGP. De hecho, era posible utilizar IDEA en GnuPG descargando un complemento para ello; sin embargo, esto podría requerir una licencia para algunos usos en países en los que IDEA estaba patentado. A partir de las versiones 1.4.13 y 2.0.20, GnuPG es compatible con IDEA porque la última patente de IDEA expiró en 2012. El soporte de IDEA tiene como objetivo "eliminar todas las preguntas de las personas que intentan descifrar datos antiguos o migrar claves de PGP a GnuPG", [9] y, por lo tanto, no se recomienda para un uso regular.

Las versiones más recientes de GnuPG 2.x (la serie "moderna" y la ahora obsoleta "estable") exponen la mayoría de las funciones y algoritmos criptográficos que proporciona Libgcrypt (su biblioteca de criptografía), incluido el soporte para criptografía de curva elíptica (ECDH, ECDSA y EdDSA) [10] en la serie "moderna" (es decir, desde GnuPG 2.1).

Algoritmos

A partir de las versiones 2.3 o 2.2, GnuPG admite los siguientes algoritmos:

Clave pública
RSA , ElGamal , DSA , ECDH ( cv25519 , cv448 , [c] nistp256, nistp384, nistp521 , brainpoolP256r1, brainpoolP384r1, brainpoolP512r1 , secp256k1), ECDSA (nistp256, nistp384, nistp521, brainpoolP256r1, brainpoolP384r1, brainpoolP512r1, secp256k1), EdDSA (ed25519, ed448 [c] )
Cifrar
3DES , IDEA (para compatibilidad con versiones anteriores), CAST5 , Blowfish , Twofish , AES-128, AES-192, AES-256 , Camellia-128, -192 y -256
Picadillo
MD5 , SHA-1 , RIPEMD-160 , SHA-256, SHA-384, SHA-512, SHA-224
Compresión
Sin comprimir, ZIP , ZLIB , BZIP2

Historia

GnuPG fue desarrollado inicialmente por Werner Koch . [11] [12] La primera versión de producción, la versión 1.0.0, fue lanzada el 7 de septiembre de 1999, casi dos años después del primer lanzamiento de GnuPG (versión 0.0.0). [13] [11] El Ministerio Federal Alemán de Economía y Tecnología financió la documentación y el puerto a Microsoft Windows en 2000. [12]

GnuPG es un sistema compatible con el estándar OpenPGP, por lo que la historia de OpenPGP es importante; fue diseñado para interoperar con PGP , un programa de cifrado de correo electrónico inicialmente diseñado y desarrollado por Phil Zimmermann . [14] [15]

El 7 de febrero de 2014, se cerró una campaña de financiación colectiva de GnuPG , recaudando 36.732 para un nuevo sitio web y mejoras de infraestructura. [16]

Sucursales

Desde el lanzamiento de una versión estable de GnuPG 2.3, a partir de la versión 2.3.3 en octubre de 2021, se mantienen activamente tres ramas estables de GnuPG: [17]

  • Una " rama estable ", que actualmente es (a partir de 2021) la rama 2.3.
  • Una " rama LTS (soporte a largo plazo) ", que actualmente es (a partir de 2021) la rama 2.2 (que antes se llamaba "rama moderna", en comparación con la rama 2.0).
  • La antigua " rama heredada " (antes llamada "rama clásica"), que es y seguirá siendo la rama 1.4.

Antes de GnuPG 2.3, se mantenían activamente dos ramas estables de GnuPG:

  • "Moderno" (2.2), con numerosas características nuevas, como la criptografía de curva elíptica , en comparación con la antigua rama "estable" (2.0), que reemplazó con el lanzamiento de GnuPG 2.2.0 el 28 de agosto de 2017. [18] Se lanzó inicialmente el 6 de noviembre de 2014. [10]
  • "Classic" (1.4), la versión independiente más antigua, pero que aún se mantiene, más adecuada para plataformas obsoletas o integradas. Lanzada inicialmente el 16 de diciembre de 2004. [19]

No es posible instalar al mismo tiempo distintas versiones de GnuPG 2.x (por ejemplo, de las ramas 2.2 y 2.0). Sin embargo, es posible instalar una versión "clásica" de GnuPG (es decir, de la rama 1.4) junto con cualquier versión de GnuPG 2.x. [10]

Antes del lanzamiento de GnuPG 2.2 ("moderno"), se recomendaba para uso general la rama "estable" (2.0), ahora obsoleta, publicada inicialmente el 13 de noviembre de 2006. [20] Esta rama llegó al final de su vida útil el 31 de diciembre de 2017; [21] Su última versión es 2.0.31, publicada el 29 de diciembre de 2017. [22]

Antes del lanzamiento de GnuPG 2.0, todas las versiones estables se originaban a partir de una única rama; es decir, antes del 13 de noviembre de 2006, no se mantenían varias ramas de versiones en paralelo. Estas ramas de versiones anteriores, que se sucedieron secuencialmente (hasta la versión 1.4), eran:

  • Rama 1.2, publicada inicialmente el 22 de septiembre de 2002, [23] con 1.2.6 como la última versión, publicada el 26 de octubre de 2004. [24]
  • Rama 1.0, publicada inicialmente el 7 de septiembre de 1999, [13] con 1.0.7 como la última versión, publicada el 30 de abril de 2002. [25]

(Tenga en cuenta que antes del lanzamiento de GnuPG 2.3.0, las ramas con un número de versión menor impar (por ejemplo, 2.1, 1.9, 1.3) eran ramas de desarrollo que conducían a una rama de lanzamiento estable con un número de versión "+ 0.1" más alto (por ejemplo, 2.2, 2.0, 1.4); por lo tanto, las ramas 2.2 y 2.1 pertenecen a la serie "moderna", 2.0 y 1.9 a la serie "estable", mientras que las ramas 1.4 y 1.3 pertenecen a la serie "clásica".

Con el lanzamiento de GnuPG 2.3.0, esta nomenclatura se modificó para que estuviera compuesta por una rama "estable" y una "LTS" de la serie "moderna", más la 1.4 como la última rama "clásica" mantenida. Tenga en cuenta también que los números de versiones menores pares o impares ya no indican una rama de versión estable o de desarrollo.)

Plataformas

Ejemplo de uso de GnuPG: como clave de firma de repositorio de software para openSUSE (con ZYpp )

Aunque el programa básico GnuPG tiene una interfaz de línea de comandos , existen varios front-ends que le proporcionan una interfaz gráfica de usuario . Por ejemplo, el soporte de cifrado GnuPG se ha integrado en KMail y Evolution , los clientes de correo electrónico gráficos que se encuentran en KDE y GNOME , los escritorios Linux más populares . También hay front-ends gráficos GnuPG, por ejemplo Seahorse para GNOME y KGPG y Kleopatra para KDE.

GPGTools proporciona una serie de interfaces para la integración del sistema operativo de cifrado y administración de claves , así como instalaciones de GnuPG a través de paquetes de instalación [26] para macOS . GPG Suite [26] instala todas las aplicaciones OpenPGP relacionadas (GPG Keychain), complementos ( GPG Mail ) y dependencias (MacGPG), junto con GPG Services (integración en el menú de Servicios de macOS) para usar cifrado basado en GnuPG.

Las aplicaciones de mensajería instantánea como Psi y Fire pueden proteger automáticamente los mensajes cuando se instala y configura GnuPG. El software basado en la Web como Horde también lo utiliza. La extensión multiplataforma Enigmail proporciona compatibilidad con GnuPG para Mozilla Thunderbird y SeaMonkey . De manera similar, Enigform proporciona compatibilidad con GnuPG para Mozilla Firefox . FireGPG se suspendió el 7 de junio de 2010. [27]

En 2005, g10 Code GmbH e Intevation GmbH lanzaron Gpg4win , un paquete de software que incluye GnuPG para Windows, GNU Privacy Assistant y complementos GnuPG para Windows Explorer y Outlook . Estas herramientas están incluidas en un instalador estándar de Windows, lo que facilita la instalación y el uso de GnuPG en sistemas Windows. [28]

Vulnerabilidades

El estándar OpenPGP especifica varios métodos para firmar digitalmente mensajes. En 2003, debido a un error en un cambio a GnuPG que pretendía hacer más eficiente uno de esos métodos, se introdujo una vulnerabilidad de seguridad. [29] Afectaba sólo a un método de firma digital de mensajes, sólo para algunas versiones de GnuPG (1.0.2 a 1.2.3), y había menos de 1000 claves de ese tipo listadas en los servidores de claves. [30] La mayoría de la gente no utilizaba este método, y en cualquier caso se les desaconsejaba hacerlo, por lo que el daño causado (si lo hubo, ya que no se ha informado públicamente de ninguno) parece haber sido mínimo. El soporte para este método ha sido eliminado de las versiones de GnuPG publicadas después de este descubrimiento (1.2.4 y posteriores).

A principios de 2006 se descubrieron otras dos vulnerabilidades: la primera era que los usos de GnuPG con scripts para la verificación de firmas podían dar lugar a falsos positivos [31] y la segunda era que los mensajes no MIME eran vulnerables a la inyección de datos que, aunque no estuvieran cubiertos por la firma digital, se informarían como parte del mensaje firmado. [32] En ambos casos, se pusieron a disposición versiones actualizadas de GnuPG en el momento del anuncio.

En junio de 2017, Bernstein, Breitner y otros descubrieron una vulnerabilidad (CVE-2017-7526) en Libgcrypt : una biblioteca utilizada por GnuPG, que permitía una recuperación completa de claves para RSA-1024 y aproximadamente más de 1/8 de las claves RSA-2048. Este ataque de canal lateral explota el hecho de que Libgcrypt utilizaba un método de ventanas deslizantes para la exponenciación, lo que conduce a la fuga de bits de exponente y a la recuperación completa de la clave. [33] [34] Nuevamente, una versión actualizada de GnuPG estaba disponible en el momento del anuncio.

En octubre de 2017, se anunció la vulnerabilidad ROCA que afecta a las claves RSA generadas por tokens YubiKey 4, que suelen usarse con PGP/GPG. Se descubrió que muchas claves PGP publicadas eran susceptibles. [35]

Alrededor de junio de 2018, se anunciaron los ataques SigSpoof , que permitían a un atacante falsificar de forma convincente las firmas digitales. [36] [37]

En enero de 2021 se lanzó Libgcrypt 1.9.0, que contenía un error grave que era fácil de explotar. Se lanzó una solución 10 días después en Libgcrypt 1.9.1. [38]

Véase también

Notas

  1. ^ GPL-3.0 o posterior desde 2007-07-04 para 2.x y 2007-10-23 para 1.x.
  2. ^ GPL-2.0 o posterior desde el 18 de noviembre de 1997 hasta el 4 de julio de 2007 para 2.x y el 23 de octubre de 2007 para 1.x.
  3. ^ ab solo disponible en 2.3

Referencias

  1. ^ Werner Koch (29 de octubre de 2024). «[Anuncio] Lanzamiento de GnuPG 2.4.6» . Consultado el 30 de octubre de 2024 .
  2. ^ "Cambios destacables en la versión 2.2.43". 16 de abril de 2024. Consultado el 27 de mayo de 2024 .
  3. ^ Werner Koch (12 de septiembre de 2024). «GnuPG 2.5.1 publicado» . Consultado el 24 de septiembre de 2024 .
  4. ^ "Gnu Privacy Guard". GnuPG.org. Archivado desde el original el 29 de abril de 2015. Consultado el 26 de mayo de 2015 .
  5. ^ "Un cisma en el mundo OpenPGP". Linux Weekly News . Consultado el 9 de diciembre de 2023 .
  6. ^ "Bundesregierung fördert Código abierto" (en alemán). Heise en línea. 15 de noviembre de 1999. Archivado desde el original el 12 de octubre de 2013 . Consultado el 24 de julio de 2013 .
  7. ^ "[Anuncio] La versión beta posiblemente final de GnuPG 2.1". Archivado desde el original el 2019-05-02 . Consultado el 2019-03-28 .
  8. ^ "Características de GnuPG". Archivado desde el original el 4 de octubre de 2009. Consultado el 1 de octubre de 2009 .
  9. ^ Koch, Werner (21 de diciembre de 2012). «GnuPG 1.4.13 publicado» (Lista de correo). gnupg-users. Archivado desde el original el 12 de febrero de 2013. Consultado el 19 de mayo de 2013 .
  10. ^ abc Koch, Werner (6 de noviembre de 2014). «[Anuncio] Se ha publicado GnuPG 2.1.0 «moderno»». gnupg.org. Archivado desde el original el 6 de noviembre de 2014. Consultado el 6 de noviembre de 2014 .
  11. ^ ab Angwin, Julia (5 de febrero de 2015). "El software de cifrado de correo electrónico del mundo depende de un tipo que se está arruinando". ProPublica . Archivado desde el original el 6 de febrero de 2015. Consultado el 6 de febrero de 2015 .
  12. ^ ab Wayner, Peter (19 de noviembre de 1999). "Alemania otorga subvención para cifrado". The New York Times . Archivado desde el original el 25 de agosto de 2014. Consultado el 8 de agosto de 2014 .
  13. ^ ab "Notas de la versión". GnuPG. Archivado desde el original el 9 de febrero de 2014. Consultado el 30 de enero de 2014 .
  14. ^ "Gnu Privacy Guard". OpenPGP.org. Archivado desde el original el 27 de febrero de 2014. Consultado el 26 de febrero de 2014 .
  15. ^ "Dónde conseguir PGP". Philzimmermann.com. Archivado desde el original el 26 de febrero de 2014. Consultado el 26 de febrero de 2014 .
  16. ^ "GnuPG: Nuevo sitio web e infraestructura". goteo.org. Archivado desde el original el 2014-03-30 . Consultado el 2014-03-09 .
  17. ^ "GnuPG 2.3.3 lanzado".
  18. ^ Koch, Werner (28 de agosto de 2017). «[Anuncio] Lanzamiento de GnuPG 2.2.0». gnupg-announce (Lista de correo). Archivado desde el original el 29 de agosto de 2017. Consultado el 21 de septiembre de 2017 .
  19. ^ Koch, Werner (16 de diciembre de 2004). «[Anuncio] Lanzamiento de la versión estable 1.4 de GnuPG». gnupg.org. Archivado desde el original el 3 de enero de 2005. Consultado el 16 de diciembre de 2004 .
  20. ^ Koch, Werner (13 de noviembre de 2006). «[Anuncio] Lanzamiento de GnuPG 2.0». gnupg.org. Archivado desde el original el 14 de febrero de 2014. Consultado el 30 de enero de 2014 .
  21. ^ Koch, Werner (23 de enero de 2017). «[Anuncio] Lanzamiento de GnuPG 2.1.18». gnupg.org. Archivado desde el original el 11 de febrero de 2017. Consultado el 4 de febrero de 2017 .
  22. ^ "GnuPG 2.0.31". 2017-12-29 . Consultado el 2017-12-30 .
  23. ^ Koch, Werner (6 de septiembre de 2002). «[Anuncio] Se publica GnuPG 1.2». gnupg.org. Archivado desde el original el 17 de junio de 2014. Consultado el 6 de noviembre de 2014 .
  24. ^ Koch, Werner (26 de agosto de 2004). «[Anuncio] Lanzamiento de GnuPG 1.2.6». gnupg.org. Archivado desde el original el 17 de junio de 2014. Consultado el 6 de noviembre de 2014 .
  25. ^ Koch, Werner (30 de abril de 2002). «[Anuncio] Lanzamiento de GnuPG 1.0.7». gnupg.org. Archivado desde el original el 17 de junio de 2014. Consultado el 6 de noviembre de 2014 .
  26. ^ ab "GPG Suite". GPGTools . Consultado el 24 de diciembre de 2017 .
  27. ^ "Blog de desarrolladores de FireGPG". 7 de junio de 2010. Archivado desde el original el 27 de julio de 2013. Consultado el 24 de julio de 2013 .
  28. ^ "Gpg4win – Acerca de Gpg4win". gpg4win.org . Consultado el 23 de marzo de 2021 .
  29. ^ Nguyen, Phong Q. "¿Podemos confiar en el software criptográfico? Fallas criptográficas en GNU Privacy Guard v1.2.3". EUROCRYPT 2004: 555–570. Archivado desde el original el 4 de diciembre de 2017. Consultado el 23 de agosto de 2019 .
  30. ^ Koch, Werner (27 de noviembre de 2003). «Las claves de firma ElGamal de GnuPG se vieron comprometidas». Archivado desde el original el 18 de marzo de 2004. Consultado el 14 de mayo de 2004 .
  31. ^ Koch, Werner (15 de febrero de 2006). «Verificación de firmas falsas positivas en GnuPG». Archivado desde el original el 17 de junio de 2006. Consultado el 23 de mayo de 2006 .
  32. ^ Koch, Werner (9 de marzo de 2006). «GnuPG no detecta la inyección de datos sin firmar». Archivado desde el original el 5 de mayo de 2006. Consultado el 23 de mayo de 2006 .
  33. ^ Edge, Jake (5 de julio de 2017). «Breaking Libgcrypt RSA via a side channel» (Rompiendo el protocolo RSA de Libgcrypt mediante un canal lateral). LWN.net . Archivado desde el original el 28 de julio de 2017. Consultado el 28 de julio de 2017 .
  34. ^ "Deslizándose hacia el desastre: las ventanas corredizas de izquierda a derecha tienen fugas" (PDF) . Archivado (PDF) desde el original el 2017-06-30 . Consultado el 2017-06-30 .
  35. ^ El regreso del ataque del calderero: factorización práctica de módulos RSA ampliamente utilizados Archivado el 12 de noviembre de 2017 en Wayback Machine , Matus Nemec, Marek Sys, Petr Svenda, Dusan Klinec, Vashek Matyas, noviembre de 2017
  36. ^ "Un error de PGP que data de hace décadas permitía a los piratas informáticos falsificar la firma de casi cualquier persona". 14 de junio de 2018. Archivado desde el original el 7 de septiembre de 2018. Consultado el 7 de septiembre de 2018 .
  37. ^ "Pass obtiene un error: Simple Password Store sufre un error de suplantación de contraseñas GnuPG". The Register . Archivado desde el original el 2018-06-30 . Consultado el 2018-09-07 .
  38. ^ "Un grave error en Libgcrypt, utilizado por GPG y otros, es un gran problema y provoca una búsqueda de parches". Archivado desde el original el 21 de febrero de 2021.
  • Sitio web oficial
  • Una breve historia de GNU Privacy Guard, escrita por Werner Koch, publicada en el décimo aniversario de GnuPG
Obtenido de "https://es.wikipedia.org/w/index.php?title=GNU_Privacy_Guard&oldid=1239051193"