Digamos que tengo un cliente, no un navegador, que quiere conectarse con https a un servidor. Podría ser un programa de Python, una aplicación de Android o una biblioteca, etc. Supongamos que el cliente tiene una lista de CA confiables y sus claves públicas.
¿Qué comprobaciones debe realizar el cliente para verificar que el certificado es válido y evitar ataques de intermediarios y qué ataques son posibles si el cliente no realiza estas comprobaciones?
Sé que muchas bibliotecas hacen esto por ti, pero muchas cosas pueden salir incorrecto . La pregunta es principalmente teórica.
Por lo que he entendido, debes verificar:
- Si el emisor (CA) del certificado está en su lista de confianza y la clave pública del emisor es la correcta.
- Marque CN para que coincida con el dominio / IP que está conectando
- Si el certificado ha caducado
- Algo sobre la extensión X509v3 y restricciones básicas que no he entendido correctamente.