Soy un desarrollador de software con un interés y un nivel básico de conocimiento sobre seguridad. Me he encontrado con un sistema de autenticación que "me huele mal", pero me falta la experiencia para saber si algo está mal.
El sistema de software incluye servicios web para descargar y cargar datos de / a una base de datos a través de Internet pública. Toda la comunicación se produce a través de HTTPS y un número entero aleatorio de 32 bits identifica al usuario. Se eliminan las solicitudes de ID de usuarios desconocidos.
Algo sobre esto parece débil, pero no estoy seguro de cuán débil y si vale la pena defender el cambio. Supongo que esto es equivalente a una contraseña numérica alfa (mayúsculas / minúsculas) de 5 caracteres sin nombre de usuario asociado (log62 (4 billones) ~ 5) y si lo veo en esos términos parece completamente anémico.
Mi instinto instintivo sobre qué hacer para la autenticación habría sido exponer una operación de servicio web para "iniciar sesión" que toma un nombre de usuario / contraseña y devuelve un token de autenticación (por ejemplo, un hash criptográfico basado en las credenciales y el hora actual), que es válida durante un período de tiempo determinado o hasta que el usuario solicita un cierre de sesión.
Creo que mi enfoque es más seguro principalmente porque el espacio de credenciales es mucho más grande y porque el token de autenticación cambia con el tiempo, mientras que en el sistema actual el espacio de credenciales es pequeño y el token de autenticación nunca cambia. Pero no tengo un punto de referencia ... ¿contra qué tipo de adversario fallaría el sistema actual? ¿Contra qué tipo de adversario fracasaría mi idea?
El argumento en apoyo del sistema actual es que somos un jugador pequeño con clientes pequeños en un mundo grande, por lo que no esperamos ser atacados, y si somos atacados tenemos cierto nivel de seguridad. Mi idea es que las amenazas a la seguridad son cada vez más numerosas y sofisticadas con bastante rapidez, y nos encontramos en una industria en la que la seguridad es una preocupación. No quiero dar detalles aquí solo porque puedo estar señalando la existencia de un sistema en vivo mal protegido, pero ¿quizás alguien con conocimientos podría hablar sobre las tendencias actuales en amenazas de seguridad?
Agradecería cualquier comentario sobre este tema, y si por alguna razón mi pregunta es inadecuada, hágamelo saber para poder actualizarlo en consecuencia en lugar de marcarlo para que se cierre.