Estoy intentando obtener la clave de envío MS-MPPE y la clave de recuperación MS-MPPE del material de desafío MS-CHAPv2. Puedo seguir las RFC 2548 3078 y 3079 al paso de obtener el GetNewKeyFromSHA()
que es 16 bytes de largo.
Puedo usar la clave para cifrar datos como el ejemplo en 3079 . El problema es que no estoy seguro de qué debo hacer para obtener las claves de sesión utilizadas en el RFC 2548 para obtener MS-MPPE-Send-key y MS-MPPE-Recv-key desde allí.
Tengo un ejemplo de freeradius y la clave de sesión se convierte de 16 bytes a 32 bytes mucho antes de la construcción de la cadena indicada en RFC 2548 .
He intentado cifrar con RC4 las claves de sesión después de GetNewKeyFromSHA()
pero no me funciona. Si alguien pudiera explicar un poco en detalle este paso intermedio, ¡estaría bien!
Editar 1
También he intentado realizar el cifrado en 2548 pero aún no he obtenido resultados, ahora estoy investigando El código fuente de freeRADIUS, pero no es fácil de seguir después de obtener la clave maestra del material de MS-CHAPv2. ¿Alguna idea?
Editar 2
Mirando en freeradius parece ser que, en primer lugar, deriva las claves del material de MS-CHAv2, pero luego, en lugar de encriptarlas, las usa, utiliza el secreto maestro y los números aleatorios del protocolo de enlace TLS para producir el envío de 32 bytes. y recibir claves. Esto es como RFC 2716 , luego las cifra como RFC 2548 y finalmente los envía.
Por lo tanto, es posible usar la clave maestra derivada del material de MS-CHAPv2 como en el RFC 3079 ? o la única forma de hacerlo es como lo hace freeradius?