
Il progetto Wycheproof testa le librerie crittografiche contro attacchi noti.
Il Progetto Wycheproof è un repository gestito dalla community di vettori di test che possono essere utilizzati dagli sviluppatori di librerie crittografiche per testare attacchi noti, incoerenze nelle specifiche e altri vari bug di implementazione.
I vettori di test sono mantenuti come dati JSON di vettori di test, con file JSON schema allegati che documentano la struttura dei dati dei vettori di test.
Potresti trovare utile esaminare come altri progetti come pyca/cryptography hanno integrato i vettori di test di Wycheproof.
Il Progetto Wycheproof ha vettori di test per gli algoritmi crittografici più popolari, inclusi
I vettori di test rilevano se una libreria è vulnerabile a molti attacchi, tra cui
Accogliamo con favore il contributo di nuovi dati di vettori di test e algoritmi.
Se vuoi contribuire, per favore leggi CONTRIBUTING e inviaci pull request. Puoi anche segnalare bug o richiedere nuovi test come GitHub issues.
Stiamo rivitalizzando lo sviluppo e la manutenzione del Progetto Wycheproof come progetto C2SP con un rinnovato focus sui dati dei vettori di test. Le nostre priorità immediate sono:
Il Progetto Wycheproof prende il nome dal Monte Wycheproof, la montagna più piccola del mondo. La motivazione principale del progetto al momento della sua creazione era avere un obiettivo raggiungibile. Più piccola è la montagna, più è probabile riuscire a scalarla.
I vettori di test di Wycheproof sono usati in qualche forma da numerosi progetti e librerie crittografiche importanti. In nessun ordine particolare, questi includono:
Se il tuo progetto usa i vettori di test di Wycheproof, sentiti libero di aprire una PR per aggiungerlo all'elenco sopra!
Vedi doc/bugs.md per alcuni notevoli bug storici trovati usando gli harness di test di Wycheproof o i dati dei vettori di test.
testvectors/?Recentemente abbiamo combinato le directory testvectors/ e testvectors_v1/ in un'unica directory unificata con un approccio coerente agli schemi.
Gli utenti che necessitano dei dati originali ("v0") dei vettori di test possono clonare questo repo dal tag wycheproof-v0-vectors, ma sono invitati a prendere in considerazione l'aggiornamento all'uso di testvectors_v1/ per beneficiare degli aggiornamenti futuri. Se ci sono funzionalità/copertura di test di testvectors/ mancanti in testvectors_v1/, o se c'è un altro problema che blocca il tuo aggiornamento, apri un'issue descrivendo le tue esigenze.
Al momento della scrittura, ai seguenti file testvectors_v1 mancano gli schemi:
testvectors_v1/aes_ff1_base*_test.jsontestvectors_v1/aes_ff1_radix*_test.jsontestvectors_v1/ecdsa_secp256k1_sha256_bitcoin_test.jsontestvectors_v1/pbes2_hmacsha*_aes_*_test.jsontestvectors_v1/pbkdf2_hmacsha*_test.jsontestvectors_v1/rsa_pss_*_sha*_mgf*_params_test.jsontestvectors_v1/rsa_pss_misc_params_test.jsonIl contributo di schemi per i vettori sopra sarebbe molto gradito.
Alcune documentazioni legacy per files, formats e types sono disponibili, ma non necessariamente allineate con lo stato attuale dei vettori di test.
In generale, preferisci fare riferimento ai file degli schemi poiché questi sono testati in CI per assicurare che i contenuti dei file di vettori corrispondano allo schema dichiarato.