
Il progetto Wycheproof testa le librerie crittografiche contro attacchi noti.
Project Wycheproof è un repository gestito dalla community di test vector che possono essere utilizzati dagli sviluppatori di librerie crittografiche per testare contro attacchi noti, incoerenze nelle specifiche e altri vari bug di implementazione.
I test vector sono mantenuti come dati JSON, con file schema JSON di accompagnamento che documentano la struttura dei dati dei test vector.
Potresti trovare utile esaminare come altri progetti come pyca/cryptography hanno integrato i test vector di Wycheproof.
Project Wycheproof ha test vector per gli algoritmi crittografici più popolari, tra cui
I test vector rilevano se una libreria è vulnerabile a molti attacchi, tra cui
Accogliamo con favore il contributo di nuovi dati di test vector e algoritmi.
Se vuoi contribuire, leggi CONTRIBUTING e inviaci pull request. Puoi anche segnalare bug o richiedere nuovi test come issue su GitHub.
Siamo nel processo di rivitalizzazione dello sviluppo e della manutenzione di Project Wycheproof come progetto C2SP con un rinnovato focus sui dati dei test vector.
La nostra priorità immediata è aggiungere ulteriore copertura di algoritmi e casi di test ai dati dei test vector.
Project 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 test vector di Wycheproof sono utilizzati in qualche forma da numerosi importanti progetti e librerie di crittografia. In nessun ordine particolare, questi includono:
Se il tuo progetto utilizza i test vector di Wycheproof, sentiti libero di aprire una PR per aggiungerlo alla lista sopra!
Vedi doc/bugs.md per alcuni bug storici notevoli trovati utilizzando i test harness di Wycheproof, o i dati dei test vector.
testvectors/?Abbiamo recentemente 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 dei test vector ("v0") possono clonare questo repo dal
tag wycheproof-v0-vectors, ma sono incoraggiati a considerare l'aggiornamento per
utilizzare testvectors_v1/ per beneficiare degli aggiornamenti futuri. Se ci sono funzionalità/copertura di test
da testvectors/ mancanti in testvectors_v1/, o c'è un altro
problema che blocca il tuo aggiornamento, apri una issue descrivendo le tue esigenze.
Alcune documentazioni legacy per file, formati e tipi sono disponibili, ma non necessariamente sincronizzate con lo stato attuale dei test vector.
In generale, preferisci fare riferimento ai file di schema poiché questi sono testati in CI per assicurare che il contenuto dei file vector corrisponda allo schema dichiarato.
Storicamente Wycheproof includeva anche test harness (ad esempio per implementazioni
crittografiche Java e Javascript) che testavano una varietà di attacchi
direttamente contro le implementazioni. Dopo la transizione al supporto della community
questi harness sono [stati rimossi][harness-rm] (ma esistono ancora nella
cronologia git per gli interessati a [cd27d64]). Il nostro focus attuale è su
test vector indipendenti dall'implementazione.