Estoy tratando de entender cómo funciona el cifrado de clave pública o, mejor aún, cómo funciona el proceso de autenticación.
Por lo que entiendo, la autoridad de certificación está aquí para fijar una determinada clave pública a cierta organización o persona para que, por un lado, una persona que firmó cualquier cosa con su clave privada no pueda decir "esta no es mi clave pública". (no repudio), y por otro lado, ningún atacante puede enviar su clave pública y decirla a otra persona (de lo contrario, cifraría su mensaje con la clave de los atacantes).
Pero ahora toda la seguridad depende de:
- desarrolladores de navegadores que agregan certificados al navegador
- CA que crea certificados
¿No es este un estándar muy bajo? He leído artículos sobre gobiernos que obligan a los CA a distribuir certificados falsos (por ejemplo, enlace ) o tal vez los CA's sean hackeados ellos mismos. Y pone a los CA en una posición muy poderosa, que nunca es algo bueno. Luego, los desarrolladores del navegador toman decisiones sobre qué certificados van al navegador.
Además de esto, parece que el problema se acaba de mover, ya que necesitamos obtener la clave pública de la CA para verificar el certificado, que a su vez también puede ser una clave pública de un atacante (como escribió Thomas Pomin aquí: cómo funciona el proceso de verificación de firma digital ) Dice que el problema también se concentra lo cual tiene sentido, pero aún así, realmente no puedo ver cómo esto debería ser confiable.
Por lo tanto, para tener la autenticación, debe tener un secreto compartido antes de que comience la comunicación real, lo cual no es posible cuando no conoce a la otra persona (Internet, etc.). Por lo tanto, la autenticación de clave pública "real" no existe, ¿verdad? O mejor formulado, no puedes protegerte de un atacante sofisticado.
También leí que muchos problemas con SSL se deben principalmente a los usuarios que no están bien informados sobre este tema (por ejemplo, podría usar certificados de cliente que el servidor también sabe con quién está hablando, pero sería demasiado). complicado para el usuario medio). Pero la distribución de claves también parece técnicamente sin solución, ¿qué piensas?