HTTPS con autenticación
Si bien HTTPS se basa en la infraestructura PKI, lo que la hace potencialmente vulnerable a las AC no autorizadas, es perfectamente adecuada para el material "confidencial pero no altamente sensible". El uso de la autenticación HTTP básica envía la contraseña al servidor y, cuando se usa TLS, también se cifra. Esto le proporcionará algunas garantías que necesitará cuando maneje información confidencial:
- ¿La entidad que solicita el acceso tiene permiso para acceder a este material?
- ¿Puede una entidad autorizada asegurarse de que el material que se está enviando no ha sido manipulado en el cable?
- ¿Puede un espía activa / pasiva ver el material mientras se envía a una entidad autorizada?
Cualquier buena forma de autenticación resuelve la primera pregunta, y TLS resuelve las dos segundas. No es necesario usar la autenticación básica específicamente (ya que tiene sus limitaciones, es bastante simple y no es ideal para almacenar contraseñas confidenciales creadas por el usuario y potencialmente reutilizadas), siempre que exista un sistema de autenticación simple para garantizar que solo los que deben descargar pueden hacerlo.
Certificados de cliente
Dependiendo de la importancia de la confidencialidad de este material y, en parte, de la poca información sobre "cero conocimientos de TI", también puede utilizar certificados de cliente cifrados. Estos son certificados generados por usted o por el cliente, y almacenados en el navegador del cliente. No es difícil para un usuario final configurarlos y usarlos, pero requiere un poco más de esfuerzo del que el usuario normal de Internet está acostumbrado. Requiere abrir la configuración de su navegador e importar el archivo de certificado del cliente, que abrirá un aviso para crear una nueva contraseña para cifrarlo. Cuando luego accedan a su sitio a través de HTTPS, su navegador le pedirá la contraseña del certificado y, si es correcta, utilizará el certificado para autenticarlos en su sitio web. Este es, con mucho, el método de autenticación basado en navegador más seguro, ya que el cliente se autentica ante el servidor y el servidor se autentica ante el cliente.
Asegurar una conexión TLS
Si terminas usando HTTPS, deberías seguir mejores prácticas de seguridad para la implementación de TLS:
- Use una clave privada segura (2048 bits o RSA más grande), firmada por una CA acreditada (por ejemplo, LetsEncrypt).
- Deshabilite las suites de cifrado inseguras (como las de los modos SSLv2-3 y no PFS).
- Evite utilizar módulos pequeños o predeterminados si usa DHE, o simplemente use ECDHE.
- Fije el estado HTTPS mediante el uso de HSTS, idealmente con la precarga de HSTS.
- Use HPKP para fijar la clave pública precisa que usa. Esto es seguro siempre que utilice una clave de respaldo.
- Use el grapado OSCP para verificar los certificados revocados.
- Haga una política de CSP estricta y otras medidas anti-XSS para reducir el riesgo de ataques XSS.
- Si es práctico y factible, exija que los usuarios del sitio utilicen un navegador actualizado.
- Pruebe su sitio regularmente con Test SSL de Qualys . Seriamente. Es un servicio increíble.
Si bien esto no es todo un deber absoluto, mejora significativamente la seguridad de toda la situación más cercana a la de SSH, al tiempo que conserva la accesibilidad para los discapacitados tecnológicamente. En un mínimo absoluto , se deben seguir los primeros cuatro puntos y el último.