HTTPS hace que su transmisión de datos sea segura al cifrar el tráfico entre el cliente y el servidor.
El cifrado es solo una parte de la seguridad cuando se transfieren datos. La segunda parte importante y similar es la autenticación, es decir, asegurarse de hablar con el servidor correcto. Y TLS también detecta la modificación de los datos en la parte superior del cifrado. Esto es necesario ya que muchos métodos de encriptación no se darán cuenta si los datos encriptados se cambiaron, sino que simplemente descifran estos datos a algo diferente. Además, TLS le permite generar de manera segura una clave de cifrado única para la conexión, por lo que no necesita intercambiar una clave secreta común a todas las partes por adelantado.
¿Sigue siendo necesario HTTPS si el nombre de usuario / contraseña está cifrado en el nivel de la aplicación?
Si todo lo que necesita proteger es un nombre de usuario y una contraseña y su protección es tan sólida como la de TLS (es decir, cifrado fuerte con clave única y no compartida previamente, autenticación sólida, detección de modificaciones), entonces no necesita utilizar TLS también. Pero en muchos casos, no solo el nombre de usuario y la contraseña son confidenciales y deben estar protegidos, sino que también vale la pena proteger los contenidos del sitio web (como extractos bancarios, informes de salud o similares) o incluso la URL que visita. Y también se necesita protección contra modificaciones, por ejemplo, en la banca en línea. Además, a menudo no tiene infraestructura para intercambiar de forma segura la clave de cifrado y confiar en una clave codificada dentro de la aplicación puede ser demasiado inseguro.
¿Cómo HTTPS hace que mis datos sean más seguros incluso si tengo el cifrado implementado a nivel de software?
Si todo ya está cifrado con la misma solidez que las ofertas de TLS (consulte el último punto), TLS no agrega más seguridad.
¿En qué se diferencian ambos conceptos? ¿Y cómo puede quedar la laguna de seguridad si uno de ellos no se implementa en un entorno muy crítico?
TLS proporciona cifrado de extremo a extremo entre la aplicación del cliente y el servidor. Con el cifrado de nivel de aplicación, puede agregar seguridad adicional si es necesario, por ejemplo, cifrando información confidencial no solo durante la transferencia sino también en reposo (archivo, base de datos ...).
Un ejemplo típico para ver estas diferencias es la entrega de correo. Se puede usar TLS cuando se entrega el correo entre cada uno de los agentes de transferencia de correo (MTA). Pero en cada MTA, el correo es visible ya que la conexión TLS solo protege la transferencia entre el MTA. Si desea agregar más seguridad, puede usar S / MIME de PGP que agrega cifrado a nivel de aplicación. De esta manera, el MTA solo puede ver el correo cifrado y solo puede ser descifrado por el destinatario final que tiene la clave de cifrado (o puede calcularlo).