¿Cómo envía JDBC las contraseñas al servidor?

1

Tengo mucha curiosidad acerca de cómo JDBC envía las contraseñas al servidor. Si bien entiendo que es simplemente una API y depende de la implementación, ¿suelen ser hash y luego enviados al servidor?

Si pudiera ver la contraseña en texto sin formato utilizando una herramienta como wireshark, ¿significa que se debe a una implementación deficiente o simplemente a la forma en que funciona JDBC?

¿Puede alguien darme un ejemplo con cualquier proveedor de db? ¿Diga el controlador MySQL JDBC o el controlador Postgres JDBC?

    
pregunta NEO 18.05.2016 - 03:56
fuente

1 respuesta

2

JDBC es una API de Java. Utiliza los controladores de base de datos JDBC para comunicarse realmente con los servidores de base de datos. Estos controladores pueden o no ser compatibles con TLS.

El controlador PostgreSQL JDBC es compatible con TLS: enlace

Por lo tanto, se conectaría al servidor de base de datos mediante TLS, luego enviaría el nombre de usuario y la contraseña para autenticar. No podría ver la contraseña usando Wireshark.

PostgreSQL también admite "pasar el hash (md5)" estilo autenticación pero es no recomendado. Esto eliminaría la contraseña con md5 en el cliente y la enviaría al servidor.

    
respondido por el Neil McGuigan 18.05.2016 - 10:26
fuente

Lea otras preguntas en las etiquetas