
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.
Storicamente Wycheproof includeva anche harness di test (ad esempio per implementazioni crittografiche Java e Javascript) che testavano una varietà di attacchi direttamente contro le implementazioni. Dalla transizione al supporto della community, questi harness sono stati rimossi (ma esistono ancora nella storia di git per gli interessati a cd27d64). Il nostro focus attuale è sui vettori di test agnostici rispetto all'implementazione.
Testare direttamente librerie crittografiche di terze parti significa che i difetti vengono scoperti solo dopo essere stati committati e potenzialmente rilasciati dai progetti sotto test. Invece, incoraggiamo i progetti a valle a testare regolarmente il proprio codice usando i vettori di test di Wycheproof come parte del loro processo di sviluppo. Questo approccio aiuta a individuare i difetti prima che possano diventare CVE, significa che le nuove funzionalità vengono testate immediatamente e aiuta a distribuire il carico di manutenzione. Ciò consente ai manutentori di Wycheproof di concentrarsi sui vettori di test invece di seguire lo sviluppo a valle di molti progetti mentre allo stesso tempo mantengono un numero sempre crescente di harness di test specifici per linguaggio e progetto.
Le parti interessate agli harness di test potrebbero trovare interessante il lavoro continuo di Daniel Bleichenbacher in Rooterberg.
Copyright 2016-2026 The Wycheproof Authors, offerto sotto la Apache License 2.0.
Il Progetto Wycheproof è stato originariamente creato e mantenuto da: