
Le projet Wycheproof teste les bibliothèques cryptographiques contre des attaques connues.
Project Wycheproof est un dépôt géré par la communauté de vecteurs de test qui peuvent être utilisés par les développeurs de bibliothèques cryptographiques pour tester face à des attaques connues, des incohérences de spécification et divers autres bugs d'implémentation.
Les vecteurs de test sont maintenus sous forme de données de vecteurs de test JSON, accompagnées de fichiers de schéma JSON qui documentent la structure des données des vecteurs de test.
Il peut être utile d'examiner comment d'autres projets comme pyca/cryptography ont intégré les vecteurs de test de Wycheproof.
Project Wycheproof dispose de vecteurs de test pour les algorithmes cryptographiques les plus populaires, notamment
Les vecteurs de test détectent si une bibliothèque est vulnérable à de nombreuses attaques, notamment
Nous accueillons favorablement les contributions de nouvelles données de vecteurs de test et d'algorithmes.
Si vous souhaitez contribuer, veuillez lire CONTRIBUTING et nous envoyer des pull requests. Vous pouvez également signaler des bugs ou demander de nouveaux tests via les issues GitHub.
Nous sommes en train de revitaliser le développement et la maintenance de Project Wycheproof en tant que projet C2SP avec un accent renouvelé sur les données de vecteurs de test.
Notre priorité immédiate est d'ajouter une couverture supplémentaire d'algorithmes et de cas de test aux données de vecteurs de test.
Project Wycheproof tire son nom du mont Wycheproof, la plus petite montagne du monde. La motivation principale du projet au moment de sa création était d'avoir un objectif atteignable. Plus la montagne est petite, plus il est probable de pouvoir la gravir.
Les vecteurs de test Wycheproof sont utilisés sous une forme ou une autre par un certain nombre de projets et bibliothèques cryptographiques importants. Sans ordre particulier, ceux-ci incluent :
Si votre projet utilise des vecteurs de test de Wycheproof, n'hésitez pas à ouvrir une PR pour l'ajouter à la liste ci-dessus !
Voir doc/bugs.md pour quelques bugs historiques notables trouvés à l'aide des harnais de test de Wycheproof, ou des données de vecteurs de test.
testvectors/ ?Nous avons récemment combiné les répertoires testvectors/ et testvectors_v1/ en un seul répertoire unifié avec une approche cohérente des schémas.
Les utilisateurs ayant besoin des données de vecteurs de test originales (« v0 ») peuvent cloner ce dépôt à partir du tag wycheproof-v0-vectors, mais sont encouragés à envisager de passer à testvectors_v1/ pour bénéficier des mises à jour futures. Si des fonctionnalités/couvertures de test de testvectors/ manquent dans testvectors_v1/, ou s'il y a un autre problème bloquant votre mise à jour, veuillez ouvrir une issue décrivant vos besoins.
Une certaine documentation héritée pour les fichiers, les formats et les types est disponible, mais pas nécessairement synchronisée avec l'état actuel des vecteurs de test.
En général, préférez vous référer aux fichiers de schéma car ceux-ci sont testés en CI pour garantir que le contenu des fichiers de vecteurs correspond à leur schéma annoncé.
Historiquement, Wycheproof incluait également des harnais de test (par exemple pour les implémentations cryptographiques Java et Javascript) qui testaient directement une variété d'attaques contre les implémentations. Depuis la transition vers le support communautaire, ces harnais ont [été supprimés][harness-rm] (mais existent toujours dans l'historique git pour les personnes intéressées à [cd27d64]). Notre objectif actuel est centré sur des vecteurs de test indépendants de l'implémentation.