Onomondo-uicc: open source SIM/UICC/USIM implementation

Hi all!

Behind the scenes, a team at sysmocom has been helping IoT MVNO onomondo implementing a pure software implementation of the GSM SIM / ETSI UICC / 3GPP USIM.

The resulting software has now finally been released in the onomondo-uicc git repository at GitHub - onomondo/onomondo-uicc

The implementation covers a rather feature-complete implementation of the file system (including access rules / permission model, PIN authentication), authentication (MILENAGE), and even OTA RFM (remote file management).

You can run the code either in software (and access it via the vpcd ifd_handler to make it appear via PC/SC) or you can run it behind a SIMtrace2 in cardem mode. Or you could cross-compile the library to run on a microcontroller (assuming it has a ISO 7816 card-side UART) or directly within a cellular modem/baseband.

Of course, beyond research this is only useful in situations where you are the operator (like in a private network) and hence know the K/OPc key material that allows you access to the cellular network.

There is some overlap to the parallel work of Tomasz Lisowski’s swsim - sadly we were not in a position to release the onomondo-uicc code back then, so the duplication of effort could not be avoided.