y descifró su tráfico SSL al comprometer un enrutador de red troncal
No, eso está mal (pero no afecta el resto de la pregunta). De acuerdo con esa afirmación, la NSA comprometió un enrutador que pertenecía al objetivo (no es que realmente importe). Más importante aún, comprometer el enrutador no ayudó a la NSA a descifrar el tráfico SSL: todo lo que hizo fue permitir que la NSA realizara un ataque de hombre en el medio en el flujo cifrado y firmado. Si se hubieran mantenido todos los aspectos de SSL, ese ataque se habría detectado y la NSA no habría podido descifrar el tráfico legítimo.
La parte decisiva del ataque fue que la NSA podría elaborar un certificado falso para Google. Un certificado SSL contiene aproximadamente las siguientes partes:
- Una descripción de a quién pertenece el certificado (Google)
- La clave pública de esa entidad
- Una descripción de quién confirma el certificado (la CA)
- Alguna magia matemática que garantiza que solo el titular de la clave privada de la CA podría crear ese certificado
Parece que la NSA conocía la clave privada de la CA, por lo tanto, podrían crear un certificado que contenga una clave pública diferente, que correspondía a una clave privada creada por la NSA en lugar de la clave privada de Google.
Dado que el certificado falso es diferente del original, tiene una huella digital diferente. (Tenga en cuenta que este puede no ser el caso de las huellas dactilares de MD5: La resistencia a la colisión del MD5 está lo suficientemente rota para permitir la creación de dos certificados con la misma huella digital, pero no para elaborar un certificado con la misma huella digital que un certificado existente. Pero SHA-1 no conoce dicha vulnerabilidad. Por lo tanto, si detecta que la huella digital SHA-1 del certificado es incorrecta, ya sabe. estás siendo activamente un hombre en el medio.
Esto tiene una importancia práctica limitada, ya que tiene que poder recuperar ese valor SHA-1 de manera confiable. ¿Dónde vas a encontrar una conexión confiable para recuperar estas huellas digitales?
Distribución de la verificación entre varias partes
es una forma de resistir el compromiso de una pequeña cantidad de CA mientras se permite navegar por sitios desconocidos hasta ahora.