Wiki » History » Version 6
Anonymous, 02/19/2016 10:48 PM
1 | 1 | Dieter Spaar has modified the shadysim.py to support the configured OTA mode on the sysmoUSIM-SJS1 (and by extension the SIM Cards issued at 31C3, the following camp and 32C3). |
|
---|---|---|---|
2 | |||
3 | |||
4 | 6 | h2. What is it about |
|
5 | |||
6 | |||
7 | 1 | (U)SIM cards are Java capable and there is the Globalplatform that specifies standards API. SMS can |
|
8 | be addressed directly to the SIM card, the SIM card will get events for network selection and others, it |
||
9 | can modify call establishment attempts. |
||
10 | |||
11 | The following will show how to build the example applet and install it on your USIM. If you create plugins |
||
12 | please make them available as Free Software and point us to them. If you find interesting Globalplatform |
||
13 | APIs or hacks please talk about it. |
||
14 | |||
15 | |||
16 | 6 | h2. What you will need |
|
17 | |||
18 | |||
19 | 1 | * sysmoUSIM-SJS1 card |
|
20 | * KIC, KID private keys of the card |
||
21 | * PCSC, serial card reader or be able to send SMS to the SIM card |
||
22 | * JDK to create Java1.1 bytecode to create/customize SIM Toolkit applets. |
||
23 | |||
24 | |||
25 | 6 | h2. What you can read |
|
26 | |||
27 | |||
28 | * [[JavaCard]] API specification (http://www.andresteder.com/static/api/simtoolkitapi/sim/toolkit/package-summary.html) |
||
29 | 1 | * 3GPP sim.toolkit API (http://www.etsi.org/deliver/etsi_ts/101400_101499/101476/07.00.00_60/ts_101476v070000p.pdf). Specially setEvent is a good keyword to look at! |
|
30 | 5 | ||
31 | 1 | ||
32 | 6 | h2. Building an example applet |
|
33 | |||
34 | |||
35 | <pre> |
||
36 | 1 | git clone git://git.osmocom.org/sim/sim-tools/ |
|
37 | git clone git://git.osmocom.org/sim/hello-stk |
||
38 | cd hello-stk |
||
39 | make |
||
40 | ls -la ./build/javacard/org/toorcamp/HelloSTK/javacard/HelloSTK.cap |
||
41 | 6 | </pre> |
|
42 | 1 | ||
43 | If you have a javac in your system you have now built an example Helloworld applet. |
||
44 | |||
45 | |||
46 | 6 | h2. Working with a PC/SC reader |
|
47 | |||
48 | |||
49 | 1 | Make sure you have the KIC1, KIC2, KIC3 and KID1, KID2 and KID3 for your card. If you have a |
|
50 | CCC Event card from 31C3 or later you should be set and for the sysmoUSIM-SJS1 be sure to buy |
||
51 | the option that includes the ADM1 keys as otherwise no OTA keys will be provided to you (you will |
||
52 | have to buy a new batch of cards then). |
||
53 | |||
54 | 6 | <pre> |
|
55 | 4 | #Clone if you have not done the above |
|
56 | 1 | git clone git://git.osmocom.org/sim/sim-tools/ |
|
57 | cd sim-tools/shady-sim |
||
58 | 3 | ||
59 | 2 | # Load the applet |
|
60 | 6 | python shadysim.py --pcsc -l [[HelloSTK]].cap -i [[HelloSTK]].cap \ |
|
61 | 2 | --enable-sim-toolkit --module-aid d07002ca44900101 \ |
|
62 | 1 | --instance-aid d07002CA44900101 \ |
|
63 | 2 | --nonvolatile-memory-required 0100 \ |
|
64 | 1 | --volatile-memory-for-install 0100 \ |
|
65 | --max-menu-entry-text 15 \ |
||
66 | --max-menu-entries 05 --kic KIC1 \ |
||
67 | 2 | --kid KID1 |
|
68 | |||
69 | 1 | # Delete it (it takes time) |
|
70 | python shadysim.py --pcsc -d d07002CA449001 \ |
||
71 | --kic KIC1 \ |
||
72 | 3 | --kid KID1 |
|
73 | 6 | </pre> |
|
74 | 1 | ||
75 | |||
76 | 6 | ||
77 | h2. Working with a SMPP reader |
||
78 | |||
79 | 5 | ||
80 | Instead of directly interacting with the SIM through a PCSC reader the APDU is sent through SMPP. Replace |
||
81 | the --pcsc call with --smpp and lines starting with SMPP are printed. These then need to be sent. |