Testare la vulnerabilità di Poodle TLS con OpenSSL in C ++

2

Sto scrivendo uno strumento da riga di comando per test di vulnerabilità SSL / TLS e finora sono stato in grado di implementare test per tutte le vulnerabilità di cui ho bisogno, ad eccezione di Poodle TLS. C'è un modo per utilizzare la libreria OpenSSL per fare un test rapido e affidabile per Poodle TLS? Consiglio e / o codice è molto apprezzato, grazie!

    
posta Alexander Voloshyn 16.11.2015 - 22:18
fonte

1 risposta

1

Il modo in cui l'ho fatto è copiando l'implementazione SSL_write e modificando manualmente il padding dopo la crittografia. SSL_write usa altre funzioni non pubbliche (da un paio di file) e poche macro, anche quelle devono essere copiate. L'implementazione corretta del protocollo TLS deve controllare la dimensione del padding e tutti i byte devono essere impostati sullo stesso valore (per impostazione predefinita sono gli zero in OpenSSL). Le implementazioni vulnerabili di Poodle TLS non controllano il contenuto o le dimensioni del padding. Quindi ho appena aggiunto un ulteriore blocco con garbage to padding esistente nella funzione di crittografia. Se l'implementazione TLS non è vulnerabile, il server interrompe la connessione o procede se è vulnerabile.

// increase padding size
i += bs;
// fill padding with junk to test TLS protocol compliance
for(size_t j = 0; j < i; ++j) {
    rec->input[rec->length + j] = rand() % 256;
}
rec->length += i;
rec->input[l - 1] = (i - 1);
    
risposta data 21.11.2015 - 05:06
fonte

Leggi altre domande sui tag