Supongamos que creo un micrositio para un cliente que contiene información comercial confidencial. Necesitamos colocar esto en una ubicación a la que pueda acceder el cliente para que aprueben su lanzamiento.
Si colocamos este micrositio detrás de un inicio de sesión, tenemos una garantía de que nadie puede tropezar con el contenido y comprometerlo. Pero, ¿qué pasa si lo publicamos en un directorio no revelado, no indexado con un nombre de la misma "fortaleza" que la contraseña mencionada anteriormente? Por el bien del argumento, "no revelado y no indexado" significa que no se vinculará de forma manual o automática a ningún sitio, ni será indexado por ninguna búsqueda de sitios web en el mismo dominio. Tampoco se colocará en su propio subdominio, por lo que el rastreo de DNS no es una preocupación.
Mi instinto inicial dice que esto es simplemente seguridad por oscuridad, y es mucho menos seguro debido a la posibilidad de que alguien se tropiece con eso. Pero, después de pensarlo, no estoy tan seguro. Aquí está mi entendimiento:
- Incluso usando una cadena de dos palabras, débil para el diccionario, tanto para la contraseña como para la URL, todavía hay miles de millones de opciones que se pueden adivinar. Colocarlo en la URL no reduce mágicamente esa lista.
- Las páginas de inicio de sesión pueden tener protección contra fuerza bruta, por lo que un atacante obtendría 20 intentos optimistas de adivinar. Las adivinanzas de URL tendrían que ser detectadas por el DoS del servidor o la protección contra correo no deseado, y pueden permitir 200 suposiciones que generan 404 si está anticipando un ataque, aún no es estadísticamente significativo para miles de millones de opciones.
- La página de inicio de sesión está vinculada desde un sitio web: es un muro visible para que un atacante pueda atacar. Es evidencia de que existe algo por lo que vale la pena atacar. Adivinar la URL, sin embargo, es ciego. Requiere estar en el dominio correcto (y el subdominio), y operar con fe en que, incluso después de decenas de miles de conjeturas incorrectas, todavía vas a subir algo.
- La URL tiene una susceptibilidad adicional de ser indexada / arañada externamente. Sin embargo, la mayoría de las arañas respetables no "adivinan" en los sitios, simplemente siguen los enlaces. Una araña malintencionada que "adivina" sería atrapada por la misma protección DoS / spam que el punto 2.
Por lo que puedo decir, la única diferencia significativa entre los dos es la paz mental imaginada. La posibilidad de que se tropiece con la URL hace que la gente se ponga nerviosa y el inicio de sesión hace que las cosas se sientan seguras, a pesar de que parecen comparables según los puntos anteriores. Sin embargo, la opción de URL sigue siendo feels , por lo que debería ser mucho menos segura. ¿Qué es lo que no estoy considerando?
EDITAR: Aparecen muchos problemas de errores humanos válidos. Esta pregunta fue inspirada por un cliente que implementa un grado de seguridad a prueba de personas: inicio de sesión de vpn a través de un llavero, reguladores de pantalla, tiempos de espera de inactividad de 5 minutos, apagón de redes sociales, etc. como mirar los hombros o "¡Ups! ¡Publiqué el enlace a twitter!". Estoy buscando una respuesta más sistemática, o al menos una más satisfactoria que "el error de los humanos".
EDIT 2: Gracias por señalar el posible duplicado . En mi humilde opinión, creo que cada uno tiene un valor como una pregunta individual. Esa pregunta aborda específicamente la seguridad de la imagen y se adentra en métodos alternativos para proteger y codificar esos datos (por ejemplo, la codificación base64). Esta pregunta aborda más específicamente el concepto de secreto frente a oscuridad, y lo aplica a por qué un inicio de sesión es mejor que un URI independiente del tipo de datos en cuestión. Además, no creo que la respuesta aceptada allí explique mi pregunta en particular tan profunda o exhaustivamente como la excelente respuesta de @ SteveDL a continuación.