Patrón de encordado / algoritmo para PIN y PUK generan a partir PRINCIPAL
-
29-09-2019 - |
Pregunta
Me pregunto cómo las compañías de telefonía móvil generan tanto PIN y PUK por sus tarjetas SIM?
Tengo una gran base de datos de códigos ya generados, esta base de datos contiene 3 columnas: * MSIN: Número de identificación del abonado móvil (10 dígitos) * PIN: Número de identificación personal (4 dígitos) * PUK: Personal Código de desbloqueo (8 dígitos)
Hasta ahora, tal vez ambas PIN y PUK se generan a partir de MSIN porque la columna MSIN está incrementando, mientras que otros, se generan con una lógica, algo así como;
MSIN PIN PUK 1000000000 3234 20005627 1000000001 5993 92870018 1000000002 3465 30327846 ...
¿es posible saber cómo se generan estos seriales? Utilizando la base de datos existente es posible adivinar el algo usado?
Lo pregunto por el bien del conocimiento sólo a no utilizar la información proporcionada en cualquier actividad ilegal;)
Gracias.
ACTUALIZACIÓN
busqué cuántas veces se repiten algunos códigos PIN y encontré este
0000 –> 261 times 1111 –> 429982 times 2222 –> 275 3333 –> 233 4444 –> 279 5555 –> 277 6666 –> 242 7777 –> 263 8888 –> 249 9999 –> 242
el pasador 1111 se utiliza más que otros! así que quizás el algo se cambia de vez en cuando .. o allí hay lógica en absoluto en el interior: (
ACTUALIZACIÓN 2
He comprobado el MSIN y encontró que hacen que salta en el sistema incrementando, así, por ejemplo;
1011000000 1011000001 … here they followed incrementing until 1011499999 1011499999 and they jumped to 1031000000 1031000000 … the same thing here 1031299999 1131000000 …
Esto lleva a una idea que cada vez que quieran emitir nuevas tarjetas, digamos 500 000 tarjetas, que comienzan con una nueva MSIN que no sigue la regla de incremento en la base de datos y la puede cambiar el algo detrás de la generación de código (Es por eso que encontramos en algunos casos se emitieron todos los próximos tarjetas con pin 1111)
Solución
La respuesta puede ir de muy fácil a bastante compleja .
Si tuviera que diseñar el sistema, la función f
(Pin,Puk) = f(MSIN)
no sería fácil de adivinar, y, por otra parte, no es reversible (es decir, si usted sabe (PIN, PUK) no se puede adivinar MSIN).
Debido a que el sujeto está en torno a la seguridad y el pago, es probable que pueda esperar una función compleja.
A menos que se documenta en algún lugar de la red (que lo dudo) que es muy poco probable que encuentre el f
función.
Otros consejos
Si hacemos la suposición de que PUK / PIN se genera a partir del MSIN, hay un número casi infinito de maneras que podrían estar haciendo esto. Para poner un ejemplo (razonable), podrían estar utilizando un HMAC. Aun suponiendo que sabía lo algoritmo de hash que están usando, todavía habría que determinar la clave secreta, y el espacio de búsqueda para la que está en el orden de 2 ^ 160 (por HMAC-SHA1) - totalmente impracticable para buscar exhaustivamente.
La única posibilidad que tiene es si están haciendo algo estúpido, como el uso de un algoritmo fácil de adivinar o determinado para generar el PIN / PUK - y no hay ningún procedimiento mecánico práctico para trabajar en eso, solo ensayo, el error, y la intuición .
Por lo general, no es el operador de red móvil que genera el PIN y PUK. El fabricante de la tarjeta SIM hace esto a menos que se ordene lo contrario por parte del operador.
¿Qué te hace creer que se puede calcular SIM y / o PUK de la MSIN? Ni el operador de red ni el fabricante SIM tendrían ninguna ventaja de esto. Yo asumiría que códigos PIN y PUK son tan al azar como económicamente factible con el fin de poner en práctica la protección que se pretende.
Sin embargo, creo que el 1111 interesante anomalía. Es el derecho de la muestra desde la fabricación? ¿O se obtiene un vertedero HLR? Este último podría proporcionar una explicación para la acumulación 1111:. La gente cambia su PIN a algo fácil de recordar y escribir, 1111 sería el candidato más común para este