Sto cercando di ottenere la chiave di invio MS-MPPE e la chiave MS-MPPE-Recv dal materiale di sfida MS-CHAPv2. Sono in grado di seguire gli RFC 2548 3078 e 3079 al passaggio di ottenere GetNewKeyFromSHA()
è 16 byte.
Posso utilizzare la chiave per crittografare i dati come nell'esempio in 3079 . Il problema è che non sono sicuro di cosa dovrei fare per ottenere le chiavi di sessione utilizzate nell'RFC 2548 per ottenere Campi MS-MPPE-Send-key e MS-MPPE-Recv-key da lì.
Ho un esempio di freeradius e la chiave di sessione viene convertita da 16 byte lunghi a 32 byte molto prima della costruzione della stringa dichiarata in RFC 2548 .
Ho provato a cifrare con RC4 le chiavi di sessione dopo GetNewKeyFromSHA()
ma non funziona per me. Se qualcuno potesse spiegare un po 'in dettaglio questo passaggio intermedio sarebbe bello!
Modifica 1
Ho anche provato a fare la crittografia in 2548 due volte, ma ancora nessun risultato, sto ora scavando il codice sorgente freeRADIUS ma non è facile da seguire dopo aver ottenuto la chiave master dal materiale MS-CHAPv2. Qualche idea?
Modifica 2
Guardando al freeradius sembra essere che per prima cosa ricava le chiavi dal materiale MS-CHAv2 ma poi invece di criptarle e inviarle, usa il master secret ei numeri casuali dall'handshake TLS per produrre i 32 byte Invia e ricevi le chiavi. Questo è come dice RFC 2716 , quindi li crittografa come RFC 2548 e infine li invia.
Quindi è possibile utilizzare la chiave master derivata dal materiale MS-CHAPv2 come nella RFC 3079 ? o l'unico modo per farlo è come fa il freeradius?