Estamos planeando usar un ssl de 2 vías en lugar del token de nombre de usuario / contraseña para la autenticación. ¿Alguien sabe cuál es la penalización de rendimiento por usar SSL de 2 vías?
Si por "2-Way" quiere decir "SSL con autenticación de cliente basada en certificado", entonces puede esperar la siguiente sobrecarga:
CertificateRequest
que contiene la lista de los nombres de la CA raíz que el servidor usará para validar el certificado del cliente. Dependiendo de la lista de dicha CA, este mensaje puede tener un tamaño no despreciable (por ejemplo, 10 kilobytes). Por supuesto, en cualquier configuración razonable, el servidor debe aceptar solo una o dos CA, dejando este tamaño de mensaje muy por debajo de 1 kilobyte (pero muchos Windows / IIS no son muy razonables). La autenticación del cliente con certificados no conlleva un viaje de ida y vuelta adicional, pero sí significa más datos durante el saludo inicial (como se explicó anteriormente, hasta unas pocas docenas de kilobytes) y un poco de CPU adicional (en cantidades similares a las que debe tener el servidor calcular de todos modos). Una vez que se han jugado estos juegos de certificados, el resto de la conexión es idéntica a lo que ocurriría sin un certificado de cliente. No hay más impacto.
Además:
La autenticación de inicio de sesión + contraseña tiene mayores gastos generales porque tendrá que enviar una redirección a una página de inicio de sesión y luego verificar la contraseña. El procesamiento de la página de inicio de sesión, el trabajo de la interfaz gráfica adicional en el cliente y el hashing lento en el servidor para la verificación de la contraseña, incurrirán en gastos de red y CPU que reducirán los costos de los certificados de cliente. Por lo tanto, el cambio de inicio de sesión + contraseña a certificados puede disminuir los costos de red y CPU en su servidor.
(Pero certificados significa gestión de certificados y PKI , y eso es nuevamente un costo mucho mayor.)
Los certificados de cliente se utilizan para la autenticación y la negociación de claves en SSL. Se sigue utilizando una clave de sesión, por lo que no debería haber ninguna diferencia después de que se establezca una conexión. No estoy seguro de cuánta penalización, si la hubiera, habría para la fase de autenticación, pero no esperaría que fuera significativa en comparación con tener que ejecutar un hash seguro con una contraseña. Bien puede ser más rápido.
Lea otras preguntas en las etiquetas tls