Hi all,
behind the scenes, a team at sysmocom[1] has been helping IoT MVNO
onomondo[2] 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 (see
https://github.com/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[3]
- sadly we were not in a position to release the onomondo-uicc code back
then, so the duplication of effort could not be avoided.
Regards,
Harald
[1]
https://sysmocom.de/
[2]
https://onomondo.com/
[3]
https://github.com/tomasz-lisowski/swsim
--
- Harald Welte <laforge(a)gnumonks.org>
https://laforge.gnumonks.org/
============================================================================
"Privacy in residential applications is a desirable marketing option."
(ETSI EN 300 175-7 Ch. A6)