PGP (Pretty Good Privacy) versión 5.0 puede generar claves de muy baja
calidad (es decir, predecibles por un atacante), dependiendo de las
circunstancias y el sistema operativo empleado.
PGP es un popular programa de cifrado y firma digital, que emplea
tecnología de clave pública. El usuario genera sus propias claves una
vez, empleando el propio programa. La clave pública puede ser
distribuida libremente, y la clave privada debe ser poseída
exclusivamente por su propietario.
Existe un fallo en la versión 5.0 de PGP, que se manifiesta cuando el
usuario genera una clave asimétrica en un entorno Unix que proporcione
un dispositivo «/dev/random» (por ejemplo, Linux o *BSD). La rutina de
lectura de dicho fichero contiene un fallo de programación que provoca
que no se recoja NINGUNA entropía a través suya. Ello hará que el
programa «piense» que cuenta con valores aleatorios de suficiente
calidad como para generar una clave segura, cuando en realidad esto no
es así. Las claves resultantes, por tanto, serán predecibles e
inseguras.
Las versiones 2.* y 6.5 de PGP no están afectadas por este problema.
Se recomienda a los usuarios que hayan generado su clave con la
versión 5.0 que generen una revocación de la misma y que creen una
clave nueva con una versión inmune.
Los usuarios que no quieran instalar una versión inmune en su sistema,
pueden continuar usando la versión 5.0, corrigiendo el bug ellos mismos.
Ello es tan fácil como editar el fichero «src/lib/ttyui/pgpUserIO.c» y
modificar la línea 1324. Esa línea pone
RandBuf = read(fd, &RandBuf, count);
cuando debería poner
read(fd, &RandBuf, count);
Luego sólo queda compilar y reinstalar.
Más información:
Security flaw in PGP 5.0
The International PGP Home Page
jcea@hispasec.com
Deja una respuesta