Retrocede y observa tu problema desde un punto de vista diferente. ¿Qué es lo peor que podría pasar si usas números secuenciales? Usted ha mencionado la enumeración: ¿cuál es la amenaza de la enumeración? ¿Alguien puede causar un problema si ve que usted emite los números # 00015 y # 00016, y predice que el ID # 00017 probablemente se generará a continuación? Tal vez alguien pueda secuestrar un correo electrónico o una cuenta de twitter que probablemente esté asociada con una próxima identificación.
¿Y cuál es el problema si alguien puede determinar que el ID # 00023 es anterior al ID # 42234? ¿Las ID más antiguas generalmente tienen más recursos disponibles que las ID más nuevas? Quizás sé que la ID # 00123 se emitió el 1 de mayo y la ID # 00256 se emitió el 1 de junio; Si me entero de que alguna celebridad popular anunció que se inscribieron en mayo, solo tengo 133 números para adivinar su identificación. ¿El hecho de adivinar el número de identificación de alguien puede causarle problemas a alguien, o de todos modos será información pública?
En este punto, debe comprender si los números de ID secuenciales deben mantenerse en secreto o si pueden ser públicos.
Luego, eche un vistazo a los vectores de amenazas, (si se trata de amenazas realistas), y determine los riesgos. La mayoría de estos parecen ser riesgos para sus clientes si sus identificaciones secretas se hacen públicas, y menos una amenaza para sus sistemas. Pero si no está protegiendo a sus clientes, su reputación será destruida y su empresa fracasará. Entonces, si estas son amenazas válidas, debes tomarlas en serio.
A continuación, agregue el entendimiento de que se creó un Generador de números pseudoaleatorios (PRNG) para un solo propósito específico: generar números estadísticamente bien distribuidos para modelar problemas en estadísticas. Nunca fueron creados para generar números "indescriptibles". La mayoría de los PRNG están a solo un problema matemático, además de ser un generador de números secuenciales. Puede intentar saltar a través de muchos aros de siembra para reducir la capacidad de generar números adivinables, pero ese es exactamente el problema para el que está diseñado resolver un PRNG criptográficamente seguro (CSPRNG). Los CSPRNG se diseñaron específicamente para generar números indiscutibles.
Ahora que comprende mejor algunos de los riesgos, debe comprender por qué necesita (o no necesita) proteger a sus clientes de estas amenazas; y con una mejor comprensión de las diferencias entre un PRNG y un CSPRNG, puede llegar a una decisión sólida.
Si tiene que mantener estos secretos, entonces debe usar un CSPRNG para proteger a sus clientes. Si no necesita mantenerlos en secreto, debe usar un número secuencial y reducir la complejidad de su sistema eliminando el generador de números aleatorios por completo.