When the application message payload is encrypted with any variant of DES, the length of the ciphertext has to be a multiple of 8 bytes - hence if the plaintext length is not a multiple of 8 bytes, the plaintext needs to be padded. If the ciphertext is already aligned, the current logic would append 8 redundant padding octets. The resulting encrypted message should be considered malformed per standard specs, but sysmoUSIM-SJS1 cards are liberal in what they accept in this instance thus the bug went unnoticed. The newer sysmoISIM-SJA2 cards do not accept such malformed messages with invalid padding. This bug was discovered and reported by the Mother Mychaela, see: https://lists.osmocom.org/pipermail/openbsc/2021-February/013414.html
Shadytel SIM Tools
This is a version of the Shadytel Shadysim tools modified and enhanced for the use with the sysmoUSIM-SJS1 sim cards
Contrary to the cards used by the original Shadtyel tools, the sysmoUSIM-SJS1 have OTA security enabled and require the use of KIC/KID to authenticate + encrypt the PDUs of the Remote Application Management (RAM).
You can clone from the Osmocom sim-tools.git repository using
git clone git://git.osmocom.org/sim/sim-tools.git
There is a cgit interface at http://git.osmocom.org/sim/sim-tools/
Discussions related to sim-tools are happening on the email@example.com mailing list, please see https://lists.osmocom.org/mailman/listinfo/openbsc for subscription options and the list archive.
Please observe the Osmocom Mailing List Rules when posting.
Creating JavaCard STK Applets
Use the hello-stk example to get started.
$ mkdir javacard
$ cd javacard
$ git clone https://git.osmocom.org/sim/sim-tools
$ git clone https://git.osmocom.org/sim/hello-stk
$ cd hello-stk
To install the applet onto a SIM card, first set the type of reader you are using.
# For PCSC readers:
$ export SHADYSIM_OPTIONS="--pcsc"
# For USB-serial readers:
$ export SHADYSIM_OPTIONS="--serialport /dev/ttyUSB0"
and follow instructions at https://osmocom.org/projects/cellular-infrastructure/wiki/Shadysimpy
The shadysim tool has lots of other options.
$ ./sim-tools/bin/shadysim --help