Una combinación de ataques puede llegar a determinar la clave de
sesión de una conexión SSH-1, permitiendo acceder a su contenido y, si
sigue en curso, modificar el intercambio de información de manera
arbitraria.
El intercambio de claves públicas en el protocolo SSH-1 sigue el
estándar PKCS#1_1.5. Combinando un ataque desarrollado por David
Bleichenbacher con un ataque de análisis temporal, es posible
recuperar la clave de sesión empleada por una conexión determinada.
Si la sesión sigue en curso, poseer la clave supone poder leer su
contenido y modificar el intercambio de datos de manera arbitraria.
Si la sesión ya ha terminado, el atacante puede acceder a su contenido
si almacenó los datagramas intercambiados durante la conexión.
La vulnerabilidad afecta a todas las implementaciones SSH-1, en mayor
o menor medida.
El ataque es complejo y requiere unas 2^20 (un millón) de conexiones,
para una clave de 1024 bits. Dado que las claves que atacamos se
regeneran cada hora, típicamente, ello implica unas 400 conexiones por
segundo. Naturalmente, estas cifras son una media; entra dentro de lo
posible que se consigua obtener la clave de sesión al primer intento.
El número de conexiones necesarias hace que algunas implementaciones
sean inmunes, ya que imponen límites en el número de sesiones
concurrentes y en la tasa de recepción de nuevas conexiones. Es el
caso, por ejemplo, de OpenSSH.
El aviso original contenía un parche que, lamentablemente, era
inoperativo. La página web del aviso ya ha sido actualizada con un
parche correcto, para la implementación SSH.com.
jcea@hispasec.com
Más información:
SSH protocol 1.5 session key recovery vulnerability
http://www.core-sdi.com/advisories/ssh1_sessionkey_recovery.htm
Deja una respuesta