motif de chaîne / algorithme de code PIN et PUK générés à partir MAIN
-
29-09-2019 - |
Question
Je me demande comment les entreprises de téléphonie mobile génèrent à la fois PIN et PUK pour leurs cartes SIM?
J'ai une grande base de données de codes déjà générés, cette base de données contient 3 colonnes: * MSIN: Mobile Subscriber Identification Number (10 chiffres) * PIN: numéro d'identification personnel (4 chiffres) * PUK: code personnel Unblocking (8 chiffres)
Jusqu'à présent, peut-être les deux codes PIN et PUK sont générés à partir MSIN car la colonne MSIN incrémente, tandis que d'autres, sont générés avec une logique, quelque chose comme:
MSIN PIN PUK 1000000000 3234 20005627 1000000001 5993 92870018 1000000002 3465 30327846 ...
est-il possible de savoir comment ces publications en série sont générés? En utilisant la base de données existante est-il possible de deviner l'algo utilisé?
Je demande cela pour l'amour de la connaissance que de ne pas utiliser les informations fournies dans toute activité illégale;)
Thanx.
UPDATE
Je recherchais combien de fois certains codes PIN sont répétés et trouvé ce
0000 –> 261 times 1111 –> 429982 times 2222 –> 275 3333 –> 233 4444 –> 279 5555 –> 277 6666 –> 242 7777 –> 263 8888 –> 249 9999 –> 242
la broche 1111 est utilisé plus que d'autres! alors peut-être l'algo passe de temps en temps .. ou ther pas logique du tout à l'intérieur: (
UPDATE 2
J'ai vérifié les MSIN et a constaté qu'ils font des sauts dans le système incrémentées, donc par exemple;
1011000000 1011000001 … here they followed incrementing until 1011499999 1011499999 and they jumped to 1031000000 1031000000 … the same thing here 1031299999 1131000000 …
ce qui conduit à une idée que chaque fois qu'ils veulent émettre de nouvelles cartes, permet de dire que 500 000 cartes, ils commencent par une nouvelle MSIN qui ne suit pas la règle incrémenter dans la base de données et peut changer l'algo derrière la génération de code (c'est pourquoi nous trouvons dans certains cas, ils émis toutes les cartes suivantes avec la broche 1111)
La solution
La réponse peut aller de vraiment facile assez complexe .
Si je devais concevoir le système, la fonction f
(Pin,Puk) = f(MSIN)
ne serait pas facile à deviner, et, en outre, pas réversible (ce qui signifie si vous connaissez (pin, PUK) vous ne pouvez pas deviner MSIN).
Parce que le sujet est autour de la sécurité et le paiement, vous pouvez vous attendre probablement une fonction complexe.
A moins qu'il ne soit documenté quelque part sur le net (ce dont je doute), il est très peu probable que vous trouverez la fonction f
.
Autres conseils
Si nous faisons l'hypothèse que PUK / PIN sont générés à partir du MSIN, il y a un nombre pratiquement infini de façons dont ils pourraient faire cela. Pour prendre un (raisonnable) par exemple, ils pourraient utiliser un HMAC. Même en supposant que vous saviez ce que l'algorithme de hachage qu'ils utilisent, vous auriez encore à déterminer la clé secrète, et l'espace de recherche qui est de l'ordre de 2 ^ 160 (pour HMAC-SHA1) - tout à fait impossible de rechercher de manière exhaustive.
La seule chance que vous avez est de savoir s'ils font quelque chose de stupide, comme l'utilisation d'un algorithme facilement deviné ou déterminé pour générer le code PIN / PUK - et il n'y a aucune procédure mécanique pratique pour travail, juste procès, l'erreur et l'intuition .
En général, ce ne est pas l'opérateur de réseau mobile qui génère le code PIN et PUK. Le fabricant de la carte SIM le fait, sauf ordre contraire par l'opérateur.
Qu'est-ce qui vous fait croire que l'on peut calculer SIM et / ou PUK de la MSIN? Ni l'opérateur du réseau, ni le fabricant SIM aurait un avantage de cette situation. Je suppose que PIN et PUK sont aussi aléatoires que possible sur le plan économique afin de mettre en œuvre la sécurité prévu.
Cependant, je trouve l'anomalie 1111 intéressante. Est-ce votre échantillon droit de la fabrication? Ou avez-vous une décharge HLR? Ce dernier on pourrait fournir une explication pour le 1111 cumulation. Les gens changent leur code confidentiel à quelque chose de facile à retenir et à taper, 1111 serait le candidat le plus commun pour cette