Resumen

  • AES-XCBC-MAC-96 transmite los 96 bits iniciales de un resultado de 128 bits como autenticador IPsec. RFC 3664 usa los 128 bits completos como salida de la PRF de IKE.
  • RFC 4434 mantiene esa salida y el resultado para claves de 128 bits, pero elimina la exigencia de una única longitud de clave. En IKEv2, la generación de claves usa semántica de longitud fija; la autenticación con secreto compartido, de longitud variable.

Tres longitudes distintas

En esta historia, «128 bits» no designa una sola medida. RFC 3566 calcula un valor AES-XCBC de 128 bits y transmite solo sus 96 bits iniciales en el autenticador ESP o AH. El receptor calcula el valor completo y compara esos mismos 96 bits. Ese campo reducido autentica paquetes; no es todo lo que la construcción puede producir. RFC 3566

IKE necesitaba otra cosa. Su función pseudoaleatoria (PRF) contribuye a crear claves, así que RFC 3664 consideró demasiado corta una salida de 96 bits para un uso prolongado en IKEv1 o IKEv2. El cambio fue deliberadamente limitado: reutilizar AES-XCBC y omitir el paso final de truncamiento. Así, la salida de la PRF tiene 128 bits. Eso no significa que todas las claves derivadas por IKE midan 128 bits; la PRF alimenta la derivación definida por el protocolo. RFC 3664

RFC 3664 también heredó de AES-XCBC-MAC-96 una restricción: la clave debía tener exactamente 128 bits. La salida de la PRF era completa, pero su clave de entrada tenía tamaño fijo. Para secretos compartidos IKE de otras longitudes, el límite complicaba la especificación. El documento posterior no cambia el resultado con una clave de 128 bits; cambia la forma de normalizar la entrada antes de la operación AES. Ficha y erratas de RFC 3664 Erratas de RFC 3664

La corrección de 2006 fue sobre la entrada

RFC 4434 elimina el requisito de que la clave mida exactamente 128 bits. Una clave de 128 bits se usa sin cambios. A una clave más corta se le añaden ceros por la derecha hasta alcanzar 128 bits. Si mide 129 bits o más, la PRF se aplica otra vez con una clave de 128 bits compuesta por ceros y con la clave larga como mensaje; la salida se convierte en la clave normalizada. Ese procedimiento no es un truncamiento ordinario ni un hash de propósito general. RFC 4434

La revisión separa dos preguntas que «el mismo algoritmo» puede ocultar: qué resultado aparece en el protocolo y qué entradas aceptan las implementaciones. RFC 4434 conserva el resultado en el cable de RFC 3664 para claves de 128 bits. Para otras longitudes, sustituye el rechazo por una conversión a una clave AES de 128 bits. La salida sigue siendo el valor XCBC completo de 128 bits, no el autenticador ESP/AH de 96 bits. Ficha y erratas de RFC 4434 Erratas de RFC 4434

IKEv2 dio dos trabajos a la PRF

La sucesora distingue dos usos dentro de IKEv2. Para generar material de clave, AES-XCBC-PRF-128 se considera de longitud fija: el procedimiento IKEv2 divide las contribuciones entre los dos nonces. Para autenticar un secreto compartido, RFC 4434 la trata como de longitud variable, por lo que el secreto no tiene que medir 128 bits. El texto admite que la lógica es algo enrevesada y explica que busca permitir la interoperabilidad entre implementaciones que siguen la regla de clave fija de RFC 3664 y las que adoptan la regla flexible. RFC 4306 RFC 4434

Es una revisión de un contrato de interfaz, no evidencia de un fallo concreto ni de que la regla se extendiera a todos los despliegues. RFC 4434 conserva el resultado completo, mantiene el caso de clave de 128 bits y especifica cómo convertir entradas más cortas y más largas. Las recomendaciones posteriores de RFC 8221 se refieren a algoritmos de autenticación ESP/AH; no demuestran la negociación de una PRF de IKE ni el comportamiento de una implementación. RFC 8221

La historia está en pasos separados: truncar un MAC para el campo de un paquete; conservar el valor completo para la PRF de IKE; normalizar la clave según el uso que tendrá.

Fuentes