Lo que usted llama "SSL bidireccional" se suele llamar TLS/SSL con autenticación de certificado de cliente.
En una conexión TLS "normal" a example.com, solo el cliente verifica que efectivamente se está comunicando con el servidor para example.com. El servidor no sabe quién es el cliente. Si el servidor quiere autenticar al cliente, lo habitual es usar contraseñas, por lo que un cliente debe enviar un nombre de usuario y contraseña al servidor, pero esto sucede dentro de la conexión TLS como parte de un protocolo interno (por ejemplo, HTTP), no es parte del protocolo TLS en sí. La desventaja es que necesita una contraseña diferente para cada sitio porque envía la contraseña al servidor. Entonces, si usa la misma contraseña en, por ejemplo, PayPal y MyPonyForum, cada vez que inicie sesión en MyPonyForum, envíe esta contraseña al servidor de MyPonyForum para que el operador de este servidor pueda interceptarla y probarla en PayPal y pueda realizar pagos a su nombre .
La autenticación del certificado de cliente ofrece otra manera de autenticar al cliente en una conexión TLS. A diferencia del inicio de sesión con contraseña, la autenticación del certificado del cliente se especifica como parte del protocolo TLS. Funciona de forma análoga a la forma en que el cliente autentica el servidor: el cliente genera un par de claves privadas públicas y envía la clave pública a una CA confiable para firmar. La CA devuelve un certificado de cliente que se puede usar para autenticar al cliente. El cliente ahora puede usar el mismo certificado para autenticarse en diferentes servidores (es decir, puede usar el mismo certificado para PayPal y MyPonyForum sin correr el riesgo de que se abuse de él). La forma en que funciona es que una vez que el servidor ha enviado su certificado, también le pide al cliente que proporcione un certificado. Luego sucede algo de magia de clave pública (si desea conocer los detalles, lea RFC 5246) y ahora el cliente sabe que se comunica con el servidor correcto, el servidor sabe que se comunica con el cliente correcto y ambos tienen material clave común para encriptar y verificar el conexión.
+1 para una buena explicación y no dar por favor la respuesta de google;) – Dexters
debe reemplazar 'created' con 'signed by' para mantener esto relevante – CharlieS
@CharlieS "* Mantenga esto relevante *" ... ¿Quiere decir que es no relevante al usar "creado" (redacción en línea con la pregunta) ;-)? "Emitido" podría ser una palabra mejor en verdad. – Bruno