
El Proyecto Wycheproof prueba bibliotecas criptográficas contra ataques conocidos.
Project Wycheproof es un repositorio gestionado por la comunidad de vectores de prueba que pueden ser utilizados por desarrolladores de bibliotecas criptográficas para probar contra ataques conocidos, inconsistencias de especificación y otros diversos errores de implementación.
Los vectores de prueba se mantienen como datos de vectores de prueba JSON, con archivos esquema JSON adjuntos que documentan la estructura de los datos de los vectores de prueba.
Puede resultarte útil examinar cómo otros proyectos como pyca/cryptography han integrado los vectores de prueba de Wycheproof.
Project Wycheproof tiene vectores de prueba para los algoritmos criptográficos más populares, incluyendo
Los vectores de prueba detectan si una biblioteca es vulnerable a muchos ataques, incluyendo
Agradecemos la contribución de nuevos datos de vectores de prueba y algoritmos.
Si quieres contribuir, por favor lee CONTRIBUTING y envíanos pull requests. También puedes reportar errores o solicitar nuevas pruebas como GitHub issues.
Estamos en el proceso de revitalizar el desarrollo y mantenimiento de Project Wycheproof como un proyecto de C2SP con un enfoque renovado en los datos de los vectores de prueba.
Nuestra prioridad inmediata es agregar cobertura adicional de algoritmos y casos de prueba a los datos de los vectores de prueba.
Project Wycheproof lleva el nombre del Monte Wycheproof, la montaña más pequeña del mundo. La motivación principal del proyecto en el momento de su creación era tener un objetivo que fuera alcanzable. Cuanto más pequeña es la montaña, más probable es poder escalarla.
Los vectores de prueba de Wycheproof son utilizados de alguna forma por varios proyectos y bibliotecas de criptografía importantes. Sin ningún orden en particular, estos incluyen:
Si tu proyecto utiliza vectores de prueba de Wycheproof, ¡no dudes en abrir un PR para agregarlo a la lista anterior!
Consulta doc/bugs.md para ver algunos errores históricos notables encontrados usando los arneses de prueba de Wycheproof, o los datos de los vectores de prueba.
testvectors/?Recientemente combinamos los directorios testvectors/ y testvectors_v1/ en
un único directorio unificado con un enfoque consistente para los esquemas.
Los usuarios que requieran los datos originales de vectores de prueba ("v0") pueden clonar este repositorio desde
la etiqueta wycheproof-v0-vectors, pero se les anima a considerar actualizar para
usar testvectors_v1/ y beneficiarse de futuras actualizaciones. Si hay características/cobertura de pruebas
de testvectors/ que faltan en testvectors_v1/, o hay otro
problema que bloquea tu actualización, por favor abre un issue describiendo tus necesidades.
Hay disponible algo de documentación heredada para archivos, formatos y tipos, pero no necesariamente está sincronizada con el estado actual de los vectores de prueba.
En general, se prefiere hacer referencia a los archivos de esquema ya que estos son probados en CI para asegurar que el contenido de los archivos de vectores coincida con el esquema que anuncian.
Históricamente Wycheproof también incluía arneses de prueba (por ejemplo, para implementaciones de criptografía
en Java y Javascript) que probaban una variedad de ataques
directamente contra las implementaciones. Desde la transición al soporte comunitario,
estos arneses [han sido eliminados][harness-rm] (pero aún existen en el historial de git
para las partes interesadas en [cd27d64]). Nuestro enfoque actual está en
los vectores de prueba agnósticos a la implementación.