Estoy buscando una lista de los errores típicos que alguien puede cometer al implementar firmas digitales para un software. Y, por supuesto, por qué son errores y cómo un atacante podría aprovecharse de ellos.
Me refiero a no implementar el cripto en sí mismo, pero aplicar / usar una biblioteca (como GPG o algo parecido) en tu propio proyecto.
Lo que pensé hasta ahora:
- Uso de algoritmos débiles para cifrado y / o hash. - > El atacante podría falsificar una firma válida porque puede encontrar colisiones.
- Manejo incorrecto de claves públicas (por ejemplo, una aplicación simplemente descarga una clave pública que necesita para verificar una firma desconocida). - > Los atacantes de Man in the Middle podrían reemplazar la clave pública descargada con la suya y la aplicación verificará los archivos del atacante.
- Las firmas no se verifican correctamente (por ejemplo, el software solo prueba si hay una firma, no si es válida) - > El atacante podría usar firmas "falsas".
¿Esos posibles errores cometer? ¿Son correctas las implicaciones?
Por favor, dame tus ideas sobre el tema.
Gracias de antemano!
EDITAR: Esto es para una asignación en una clase de seguridad. Así que solo quiero recoger algunas ideas. No deben adaptarse a un sistema, protocolo o software específico. Solo algunos errores que uno podría cometer en la práctica.