authenticationgsmsim-card

Reason for uniquness of Ki in GSM mobile networks


I've reading a wiki article about SIM cards. https://en.wikipedia.org/wiki/SIM_card It mentioned that Ki should be unique in mobile networks:

Each SIM holds a unique Ki assigned to it by the operator during the personalization process. The Ki is also stored in a database (termed authentication center or AuC) on the carrier's network.

I want to know what is the reason that the Ki should be unique? Since IMSI is unique per SIMs and it makes each SIM unique. So why the Ki should be unique and what would be the result or caused failures if there will be duplicate Kis in two different SIMs?


Solution

  • The IMSI and the Ki are used for different things.

    The IMSI uniquely identifies the SIM card in a way that is easily readable by other functions - this allows the IMSI to be used as an index for information like routing, location and as a tag in logs and issue analysis.

    The IMSI is not intended to be a secret, although in practice for most messaging between a device and the network a temporary id is assigned - the TIMSI.

    The Ki on the other hand is intended to be a secret id that only the 'owning' network and the SIM itself know. It is never transmitted directly itself - instead the network sends some data which the SIM uses its secret Ki to act on and the result is sent back to the network which can compare the result with its calculation using its copy of the secret key. If the results match, it concludes that the SIM is verified.

    A rough analogy might be a telephone banking account - your bank account number number, or account id, uniquely identifies the account and can be used when discussing your account with the bank etc. The secret PIN you have for your account, and which is not written anywhere on your statements etc (I hope!), can be used to validate that you are who you say you are when you phone up the bank, but is never normally shared directly on the call (or not fully anyway - it depends on how your bank do it).

    Back to your actual question about the Ki being unique - its obviously easiest if it is, but if it was not unique then the vulnerability would be some factor of how non-unique it was. If every SIM used the same Ki for example, it would be fairly easy to pretend to be another IMSI, but if only one in every 1 million Ki's were the same then it would be a much more laborious attack.