Tus tres puntos son bastante válidos.
En resumen: los certificados de cliente no son complicados para el promedio de usuarios de Internet.
tl;dr
El problema de raíz proviene del hecho de que la autenticación mutua (TLS) no funciona de la misma manera para ambas partes. La explicación a continuación supone una autenticación TLS mutua.
El cliente se conecta al servidor y espera algunas confirmaciones de identidad del servidor en forma de certificado de servidor emitido por una autoridad confiable. Si el certificado del servidor pasó la autenticación TLS, obtuvimos el servidor correcto.
Cuando el servidor está escuchando en el puerto y el cliente se conecta al servidor, el servidor debe autenticar y autorizar al cliente. El servidor debe asignar el cliente remoto a una base de datos de usuarios local para validar los permisos y proporcionar contenido personalizado. Aquí está la diferencia: el cliente solo autentica el servidor, pero el servidor autentica y autoriza al cliente.
Como puede ver, el cliente solo consume recursos y no necesita autorizar el servidor remoto. El servidor es productor de recursos y debe verificar si el cliente puede recibir los datos solicitados, por lo que la autorización debe estar habilitada en el lado del servidor. En un esquema de autenticación de correo electrónico / contraseña, el servidor asigna el correo electrónico / contraseña a una cuenta particular en la base de datos local. El servidor recibe esta información cuando el usuario se registra en el servidor. Inscripción con certificado:
- es difícil. Requiere herramientas sofisticadas con sintaxis críptica y conocimiento especial;
- requiere gestión de certificados.
Aquí es donde los usuarios sin educación fallarán. Puede recordar una combinación de correo electrónico / contraseña, por lo que cambiar de cuentas y dispositivos no es un problema. El cambio de dispositivo en la autenticación de cliente basada en certificados no irá a ninguna parte. ¿Qué tan fácil sería para un usuario promedio (que no es un experto en TI) mover el certificado de su computadora portátil con Windows a un teléfono / tableta iOS, por ejemplo? ¿Mover el certificado entre el teléfono / mesa Android y la computadora portátil Mac?
Como el cliente no autoriza el servidor (no mantiene una base de datos local de servidores válidos), el servidor puede rotar sus claves todos los días y nadie lo notará. El servidor funcionará como de costumbre.
No estoy de acuerdo con la declaración de @ SyntaxxxErr0r de que los usuarios finales son perezosos. No están listos para realizar la gestión de certificados por su cuenta. Y los intentos de enseñarles darán como resultado un alimento para posibles hackers. Una vez más, el usuario promedio de Internet no es un experto en TI y no es obligatorio que lo sea. Es un buen acuerdo que los usuarios finales entiendan la combinación de correo electrónico y contraseña y es imposible pedirles otra cosa.
¿Pero todavía por qué no ofrecerlos para sitios que requieren alta seguridad donde el usuario está listo para hacer un esfuerzo adicional para garantizarlo (por ejemplo, sitios de bancos) o sitios que desean brindar una impresión de alta seguridad (por ejemplo, sitios de bancos)? >
La misma historia. La banca por Internet se supone para todos, independientemente de su educación técnica. Es decir, mi abuela de 80 años debería poder usar los servicios bancarios de Internet para administrar su pensión y hacer pagos básicos. Sin embargo, algunos bancos emiten a los clientes un token de hardware personalizado, pero esta es una inversión adicional del lado del banco. Literalmente, ningún sitio en Internet salvaje invertirá en tokens de hardware para cada usuario.
Otra cosa a tener en cuenta: los sitios web ofrecen restablecimiento de contraseñas por correo electrónico. ¿Cómo se verá esto en el caso de los certificados? Intente responder a estas preguntas y descubrirá por qué la autenticación de cliente basada en certificados no está extendida en Internet salvaje y no lo estará por mucho tiempo.