annotate doc/Sysmocom-SIM-notes @ 93:6041c601304d

fcsim1-mkprov: revert OTA key addition It appears that GrcardSIM2 cards (which is what we got for FCSIM1) do not support OTA after all, contrary to what we were previously led to believe by some tech support emails from Grcard - apparently those support emails and OTA descriptions referred to some other card model(s).
author Mychaela Falconia <falcon@freecalypso.org>
date Wed, 21 Apr 2021 05:38:39 +0000
parents 6ccc4d952830
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
56
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
1 The current programmable SIM card model sold by Sysmocom in their webshop
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
2 (sysmoISIM-SJA2) is probably good for people who run their own cellular networks
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
3 of the LTE/5G kind, but it is NOT a good choice for those of us who are only
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
4 interested in GSM/2G, to the exclusion of all later G's:
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
5
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
6 * The triple-cut physical form factor is inferior (compared to solid-piece 2FF
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
7 without 3FF or 4FF cuts) for use in classic GSM/2G phones with 2FF SIM
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
8 sockets.
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
9
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
10 * The presence of unwanted USIM and ISIM applications with their associated
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
11 ADF.USIM and ADF.ISIM file systems is very unpleasant: it forces us to either
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
12 study up on completely unwanted-to-us USIM and ISIM specs and program all
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
13 those files to something sensible (and just what would be sensible programming
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
14 of USIM and ISIM files for a 2G-only network that exists solely to provide
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
15 service to classic GSM/2G phones?), plus expend oodles of time and effort to
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
16 develop the necessary programming tools that can write all those files under
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
17 ADF.USIM and ADF.ISIM, or leave all those files unprogrammed, and take a
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
18 gamble if someone sticks the partially-programmed card (classic SIM
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
19 programmed, USIM and ISIM left unprogrammed) into a phone that knows about
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
20 USIM and/or ISIM.
18
da6e9d0b2ee6 data, doc, scripts: import from previous fc-pcsc-tools repo
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
21
56
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
22 * Some of the advertising which Sysmocom prints on their current webshop cards,
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
23 plus the very name sysmoISIM (emphasizing and glorifying ISIM rather than
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
24 plain SIM) is offensive at least to me (Mother Mychaela), and should be
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
25 offensive to any truly devoted lover of classic GSM/2G technology.
18
da6e9d0b2ee6 data, doc, scripts: import from previous fc-pcsc-tools repo
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
26
56
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
27 Because of the above considerations, we (FreeCalypso) are currently in the
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
28 process of getting our own community SIMs made, to serve as an alternative to
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
29 Sysmocom webshop product. Our FreeCalypso community SIMs are currently as of
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
30 this writing (2021-03) being made for us by Grcard in China, they are a GSM-only
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
31 SIM card model (GrcardSIM2) without USIM/ISIM (they don't speak UICC protocol
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
32 at all, yay!), and we are having them made in a 2FF-only cut, meaning that the
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
33 2FF piece is fully solid.
18
da6e9d0b2ee6 data, doc, scripts: import from previous fc-pcsc-tools repo
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
34
56
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
35 However, despite our general dislike of Sysmocom's current USIM/ISIM-centric
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
36 product and our ongoing effort to produce a GSM/2G-centric alternative, we do
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
37 have some support in FC SIM tools for Sysmocom's current sysmoISIM-SJA2 card
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
38 and for their previous sysmoUSIM-SJS1 model. This limited support exists
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
39 because these webshop cards are very readily and inexpensively available, and
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
40 because of natural human curiosity - we've been playing with these readily
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
41 available Sysmocom webshop cards while enduring the long delays involved in our
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
42 Grcard-based quest for a better alternative.
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
43
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
44 Sysmocom webshop card database
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
45 ==============================
18
da6e9d0b2ee6 data, doc, scripts: import from previous fc-pcsc-tools repo
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
46
56
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
47 Whenever you buy a 10-pack of sysmoUSIM-SJS1 or sysmoISIM-SJA2 cards from
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
48 Sysmocom webshop, they send you an email with per-card identities and keys.
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
49 The information in that email is essential for doing any kind of admin writes
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
50 to the cards (the necessary ADM1 key is randomly assigned per card), and also
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
51 for any CHV2 operations: the randomly assigned PIN1 and PUK1 are printed on the
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
52 plastic, but not PIN2 or PUK2, which are also randomly assigned.
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
53
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
54 To reduce the need for manual lookups in email data, we have implemented a tool
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
55 that converts Sysmocom webshop emails into our own database format, and we have
62
6ccc4d952830 doc/Sysmocom-SIM-notes: sws-* command updates
Mychaela Falconia <falcon@freecalypso.org>
parents: 56
diff changeset
56 integrated support for this database into fc-simtool and fc-uicc-tool.
56
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
57
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
58 Sysmocom webshop emails with USIM/ISIM card key material feature a MIME
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
59 multipart/alternative structure with text/plain and text/html parts, with each
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
60 part further encoded in base64. To extract the bits of interest and convert
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
61 them into our sws-card-db format, follow these steps:
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
62
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
63 1) Extract the text/plain portion from the MIME structure and decode it from
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
64 base64.
18
da6e9d0b2ee6 data, doc, scripts: import from previous fc-pcsc-tools repo
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
65
56
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
66 2) Open the extracted and decoded text/plain email portion in your favourite
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
67 text editor and find the heading block of 19 lines, beginning with a line
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
68 that reads "IMSI" and ending with a line that reads "KIK3". (If you bought
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
69 the cheaper option without ADM and OTA keys, there will only be 9 lines here,
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
70 starting with IMSI and ending with OPC.) Then there should be a blank line,
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
71 followed by 19 lines of data per card (or 9 lines for sans-ADM/OTA variant),
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
72 with blank lines separating each card data block from the next. Extract the
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
73 portion beginning with the heading block and ending with the last card data
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
74 block in the batch.
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
75
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
76 3) Feed the data extract from the previous step to our sws-email2db utility.
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
77
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
78 sms-email2db sends its output to stdout, thus you should run it like this
18
da6e9d0b2ee6 data, doc, scripts: import from previous fc-pcsc-tools repo
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
79
56
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
80 sws-email2db email_extract.txt >> /opt/freecalypso/sim-data/sws-card-db
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
81
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
82 If you have bought multiple card batches from Sysmocom over the years, you will
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
83 need to collect those old emails and repeat the extraction procedure for each of
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
84 them, using the '>>' form of output redirection to gather all data in one
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
85 sws-card-db file. Edit the finished database file with vi if necessary.
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
86
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
87 Using fc-simtool to program Sysmocom webshop cards
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
88 ==================================================
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
89
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
90 Even though it is a UICC-native card that clearly prefers being admin-programmed
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
91 via the UICC protocol, sysmoISIM-SJA2 allows its ADM1 PIN to be entered in a
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
92 GSM 11.11 SIM protocol session with a VERIFY CHV command with P2=0x0A.
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
93 Therefore, the command to enter sysmoISIM-SJA2 ADM1 manually in fc-simtool is:
18
da6e9d0b2ee6 data, doc, scripts: import from previous fc-pcsc-tools repo
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
94
56
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
95 verify-ext 10 xxxxxxxx
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
96
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
97 Unlike the situation with sysmoUSIM-SJS1 (see below), there are no restrictions
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
98 as to when this command may be given in an fc-simtool session.
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
99
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
100 The above is the manual command, requiring the operator to manually look up the
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
101 correct ADM1 key for the card being programmed. However, if you have your
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
102 sws-card-db file initialized with data from email per above instructions, you
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
103 can authenticate with ADM1 as simply as:
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
104
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
105 sws-auth-adm1
18
da6e9d0b2ee6 data, doc, scripts: import from previous fc-pcsc-tools repo
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
106
56
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
107 This command reads the ICCID record from the card (totally immutable on SJA2
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
108 cards, and always readable without depending on CHV1 status), looks up this
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
109 ICCID in sws-card-db, and sends a VERIFY CHV P2=0x0A command to the card with
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
110 ADM1 extracted from the card db record.
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
111
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
112 The following additional commands are available that work in a similar manner:
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
113
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
114 sws-auth-pin1 -- send VERIFY CHV1 with PIN1 from sws-card-db
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
115 sws-auth-pin2 -- send VERIFY CHV2 with PIN2 from sws-card-db
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
116 sws-pin1-disable -- send DISABLE CHV with PIN1 from sws-card-db
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
117 sws-pin1-enable -- send ENABLE CHV with PIN1 from sws-card-db
18
da6e9d0b2ee6 data, doc, scripts: import from previous fc-pcsc-tools repo
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
118
62
6ccc4d952830 doc/Sysmocom-SIM-notes: sws-* command updates
Mychaela Falconia <falcon@freecalypso.org>
parents: 56
diff changeset
119 There is also a generic sws-lookup command that looks up arbitrary sws-card-db
6ccc4d952830 doc/Sysmocom-SIM-notes: sws-* command updates
Mychaela Falconia <falcon@freecalypso.org>
parents: 56
diff changeset
120 fields for the current card - examples:
6ccc4d952830 doc/Sysmocom-SIM-notes: sws-* command updates
Mychaela Falconia <falcon@freecalypso.org>
parents: 56
diff changeset
121
6ccc4d952830 doc/Sysmocom-SIM-notes: sws-* command updates
Mychaela Falconia <falcon@freecalypso.org>
parents: 56
diff changeset
122 sws-lookup puk1 -- look up and display PUK1 for this card
6ccc4d952830 doc/Sysmocom-SIM-notes: sws-* command updates
Mychaela Falconia <falcon@freecalypso.org>
parents: 56
diff changeset
123 sws-lookup ki opc -- look up and display Ki and OPc for this card
6ccc4d952830 doc/Sysmocom-SIM-notes: sws-* command updates
Mychaela Falconia <falcon@freecalypso.org>
parents: 56
diff changeset
124
56
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
125 sysmoUSIM-SJS1 difference
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
126 =========================
18
da6e9d0b2ee6 data, doc, scripts: import from previous fc-pcsc-tools repo
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
127
56
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
128 Both sysmoUSIM-SJS1 and sysmoISIM-SJA2 are UICC-native cards, and both really
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
129 prefer to be admin-programmed via the UICC protocol, rather than GSM 11.11 SIM
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
130 protocol. Both cards do allow ADM1 authentication to be performed in a GSM
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
131 11.11 SIM protocol session, but sysmoUSIM-SJS1 is less "happy" about it, and
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
132 imposes a more burdensome restriction. sysmoISIM-SJA2 allows its ADM1 key to
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
133 be submitted via a VERIFY CHV (CLA=A0, P2=0A) APDU in a GSM 11.11 SIM session,
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
134 but sysmoUSIM-SJS1 does not allow the same. sysmoUSIM-SJS1 accepts its ADM1 key
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
135 only via UICC-style (CLA=00) VERIFY PIN APDUs, thus at first it appears that
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
136 these cards cannot be admin-programmed via the classic GSM 11.11 SIM protocol.
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
137 They do have one open loophole, however: if the UICC-style VERIFY PIN command
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
138 for ADM1 is sent as the very first command in a card session, it can be followed
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
139 by other UICC protocol commands (making a regular UICC session), or it can be
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
140 followed by GSM 11.11 SIM protocol commands with CLA=A0, thus allowing one
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
141 special exception to the general rule which prohibits mixing these two protocols
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
142 in the same card session.
18
da6e9d0b2ee6 data, doc, scripts: import from previous fc-pcsc-tools repo
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
143
56
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
144 Our fc-simtool command for sending SJS1 ADM1 keys in the manner this card model
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
145 requires is as follows:
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
146
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
147 verify-sjs1-adm1 xxxxxxxx
18
da6e9d0b2ee6 data, doc, scripts: import from previous fc-pcsc-tools repo
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
148
56
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
149 The really big restriction is that this command must be issued at the very
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
150 beginning of your fc-simtool session, before any other commands. If you issue
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
151 this command later, after some GSM 11.11 SIM APDUs have already been exchanged,
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
152 it won't work. For this reason, our sws-auth-adm1 "macro" command cannot be
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
153 used in fc-simtool with SJS1 cards: in order to use sws-card-db, one has to read
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
154 the ICCID record to identify the specific card out of the pool, and once some
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
155 APDUs have been exchanged to make that ICCID read, the special exception to the
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
156 protocol mixing prohibition is no longer available. One could develop a more
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
157 complicated system where you read the ICCID, then reset the card and have a new
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
158 card session beginning with ADM1 authentication - but because this
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
159 sysmoUSIM-SJS1 card model is no longer sold by Sysmocom, there is no
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
160 justification for expending the effort.
18
da6e9d0b2ee6 data, doc, scripts: import from previous fc-pcsc-tools repo
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
161
56
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
162 Using fc-uicc-tool with Sysmocom webshop cards
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
163 ==============================================
18
da6e9d0b2ee6 data, doc, scripts: import from previous fc-pcsc-tools repo
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
164
56
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
165 The UICC protocol is native to both sysmoUSIM-SJS1 and sysmoISIM-SJA2, thus
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
166 fc-uicc-tool works like a charm with both card models. The problem, however,
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
167 is that fc-uicc-tool is only a low-level debug and manual tinkering tool: it
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
168 can do "everything", but only 100% manually in raw hex. Most of the high-level
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
169 functions of fc-simtool are not replicated in fc-uicc-tool, and furthermore, an
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
170 approach of mindlessly translating fc-simtool high-level functions to use the
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
171 UICC protocol for card file access won't work either: the USIM spec definition
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
172 of many important files is quite different from the original DF_GSM and
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
173 DF_TELECOM definitions for classic SIM.
18
da6e9d0b2ee6 data, doc, scripts: import from previous fc-pcsc-tools repo
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
174
56
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
175 The issue is ultimately one of project purpose and direction: FreeCalypso
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
176 focuses on GSM/2G to the exclusion of later G's, our preferred SIM cards are
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
177 our own FCSIM1, our primary SIM card manipulation tool is fc-simtool, and
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
178 fc-uicc-tool exists only as a bounded-effort side utility. For people who
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
179 prefer to work with USIM/ISIM cards natively, programming all of their new
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
180 files for later-G functionality, other software tool projects like pysim-shell
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
181 would be more appropriate.
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
182
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
183 ADM1 and other PIN authentication in fc-uicc-tool
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
184 =================================================
18
da6e9d0b2ee6 data, doc, scripts: import from previous fc-pcsc-tools repo
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
185
56
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
186 If you are in an fc-uicc-tool session with either sysmoUSIM-SJS1 or
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
187 sysmoISIM-SJA2, the command to authenticate with ADM1 is as follows:
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
188
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
189 verify-pin 10 xxxxxxxx
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
190
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
191 where xxxxxxxx are the 8 digits of the ADM1 secret code. There are no
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
192 restrictions as to when this command may be given in an fc-uicc-tool session.
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
193
62
6ccc4d952830 doc/Sysmocom-SIM-notes: sws-* command updates
Mychaela Falconia <falcon@freecalypso.org>
parents: 56
diff changeset
194 sws-auth-* and sws-lookup commands work in fc-uicc-tool exactly the same way as
6ccc4d952830 doc/Sysmocom-SIM-notes: sws-* command updates
Mychaela Falconia <falcon@freecalypso.org>
parents: 56
diff changeset
195 in fc-simtool.
18
da6e9d0b2ee6 data, doc, scripts: import from previous fc-pcsc-tools repo
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
196
da6e9d0b2ee6 data, doc, scripts: import from previous fc-pcsc-tools repo
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
197 Changing the ADM1 PIN
da6e9d0b2ee6 data, doc, scripts: import from previous fc-pcsc-tools repo
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
198 =====================
da6e9d0b2ee6 data, doc, scripts: import from previous fc-pcsc-tools repo
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
199
da6e9d0b2ee6 data, doc, scripts: import from previous fc-pcsc-tools repo
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
200 Experiments show that when speaking the UICC protocol to the card, the standard
da6e9d0b2ee6 data, doc, scripts: import from previous fc-pcsc-tools repo
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
201 CHANGE PIN command does work on ADM1 on both sysmoUSIM-SJS1 and sysmoISIM-SJA2,
da6e9d0b2ee6 data, doc, scripts: import from previous fc-pcsc-tools repo
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
202 thus you can do the following in fc-uicc-tool:
da6e9d0b2ee6 data, doc, scripts: import from previous fc-pcsc-tools repo
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
203
da6e9d0b2ee6 data, doc, scripts: import from previous fc-pcsc-tools repo
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
204 change-pin 10 old-ADM1 new-ADM1
da6e9d0b2ee6 data, doc, scripts: import from previous fc-pcsc-tools repo
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
205
da6e9d0b2ee6 data, doc, scripts: import from previous fc-pcsc-tools repo
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
206 However, given that Sysmocom already assigns individual per-card random ADM1 and
da6e9d0b2ee6 data, doc, scripts: import from previous fc-pcsc-tools repo
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
207 communicates these secret codes securely to webshop customers, there does not
da6e9d0b2ee6 data, doc, scripts: import from previous fc-pcsc-tools repo
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
208 seem to be any practical need for changing ADM1 further downstream. Thus our
da6e9d0b2ee6 data, doc, scripts: import from previous fc-pcsc-tools repo
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
209 recommendation is that if you are going to change your ADM1 PIN just to prove
da6e9d0b2ee6 data, doc, scripts: import from previous fc-pcsc-tools repo
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
210 that you can do it, you should then change it back to the original.
da6e9d0b2ee6 data, doc, scripts: import from previous fc-pcsc-tools repo
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
211
da6e9d0b2ee6 data, doc, scripts: import from previous fc-pcsc-tools repo
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
212 We can only surmise that there probably exist some secret commands that can
da6e9d0b2ee6 data, doc, scripts: import from previous fc-pcsc-tools repo
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
213 reset PUK1 and PUK2 after you've authenticated with ADM1, but they will probably
da6e9d0b2ee6 data, doc, scripts: import from previous fc-pcsc-tools repo
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
214 remain forever proprietary to Sysmocom, especially given the lack of any
da6e9d0b2ee6 data, doc, scripts: import from previous fc-pcsc-tools repo
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
215 practical need for such downstream changing of PUK1/PUK2.
da6e9d0b2ee6 data, doc, scripts: import from previous fc-pcsc-tools repo
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
216
da6e9d0b2ee6 data, doc, scripts: import from previous fc-pcsc-tools repo
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
217 MSISDN misprogramming on early sysmoUSIM-SJS1 cards
da6e9d0b2ee6 data, doc, scripts: import from previous fc-pcsc-tools repo
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
218 ===================================================
da6e9d0b2ee6 data, doc, scripts: import from previous fc-pcsc-tools repo
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
219
56
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
220 Sysmocom webshop cards (both sysmoUSIM-SJS1 and sysmoISIM-SJA2) have their
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
221 EF_MSISDN file allocated as 6 records of 34 bytes each. Record length of 34
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
222 bytes translates into 20 bytes of alpha tag plus the required 14-byte structure
b9fc7022f9ac doc/Sysmocom-SIM-notes: update for current situation
Mychaela Falconia <falcon@freecalypso.org>
parents: 18
diff changeset
223 at the end of each record.
18
da6e9d0b2ee6 data, doc, scripts: import from previous fc-pcsc-tools repo
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
224
da6e9d0b2ee6 data, doc, scripts: import from previous fc-pcsc-tools repo
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
225 When Sysmocom made their early sysmoUSIM-SJS1 cards, they intended to program
da6e9d0b2ee6 data, doc, scripts: import from previous fc-pcsc-tools repo
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
226 the first record of EF_MSISDN as +882110xxxxx, where xxxxx are equal to the last
da6e9d0b2ee6 data, doc, scripts: import from previous fc-pcsc-tools repo
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
227 5 digits of their 901-70 IMSI and also to the last 5 content digits (before the
da6e9d0b2ee6 data, doc, scripts: import from previous fc-pcsc-tools repo
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
228 Luhn check digit) of their 8988211 ICCID. A correctly structured EF_MSISDN
da6e9d0b2ee6 data, doc, scripts: import from previous fc-pcsc-tools repo
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
229 phonebook record with a +882110xxxxx phone number would look like this, for the
da6e9d0b2ee6 data, doc, scripts: import from previous fc-pcsc-tools repo
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
230 record size of 34 bytes:
da6e9d0b2ee6 data, doc, scripts: import from previous fc-pcsc-tools repo
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
231
da6e9d0b2ee6 data, doc, scripts: import from previous fc-pcsc-tools repo
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
232 00: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
da6e9d0b2ee6 data, doc, scripts: import from previous fc-pcsc-tools repo
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
233 10: FF FF FF FF 07 91 88 12 01 xx xx Fx FF FF FF FF
da6e9d0b2ee6 data, doc, scripts: import from previous fc-pcsc-tools repo
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
234 20: FF FF
da6e9d0b2ee6 data, doc, scripts: import from previous fc-pcsc-tools repo
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
235
da6e9d0b2ee6 data, doc, scripts: import from previous fc-pcsc-tools repo
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
236 The first 20 bytes are all FF because that is the space reserved for the alpha
da6e9d0b2ee6 data, doc, scripts: import from previous fc-pcsc-tools repo
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
237 tag, then the phone number is encoded in 8 bytes as 07 91 88 12 01 xx xx Fx,
da6e9d0b2ee6 data, doc, scripts: import from previous fc-pcsc-tools repo
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
238 and the rest of the required 14-byte structure is filled with FF bytes.
da6e9d0b2ee6 data, doc, scripts: import from previous fc-pcsc-tools repo
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
239 However, the actual programming of this MSISDN record on early sysmoUSIM-SJS1
da6e9d0b2ee6 data, doc, scripts: import from previous fc-pcsc-tools repo
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
240 cards (at least on the 10-pack I bought in 2017) looks like this:
da6e9d0b2ee6 data, doc, scripts: import from previous fc-pcsc-tools repo
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
241
da6e9d0b2ee6 data, doc, scripts: import from previous fc-pcsc-tools repo
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
242 00: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
da6e9d0b2ee6 data, doc, scripts: import from previous fc-pcsc-tools repo
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
243 10: FF FF 07 91 88 12 01 xx xx Fx FF FF FF FF FF FF
da6e9d0b2ee6 data, doc, scripts: import from previous fc-pcsc-tools repo
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
244 20: FF FF
da6e9d0b2ee6 data, doc, scripts: import from previous fc-pcsc-tools repo
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
245
da6e9d0b2ee6 data, doc, scripts: import from previous fc-pcsc-tools repo
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
246 The not-all-FF field of 8 bytes is written into the wrong location, two bytes
da6e9d0b2ee6 data, doc, scripts: import from previous fc-pcsc-tools repo
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
247 earlier than where it should be. When I saw this misprogramming early in the
da6e9d0b2ee6 data, doc, scripts: import from previous fc-pcsc-tools repo
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
248 course of developing fc-simtool, I finally understood why the AT+CNUM command
da6e9d0b2ee6 data, doc, scripts: import from previous fc-pcsc-tools repo
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
249 on a FreeCalypso modem with this SIM inserted reported a 10xxxxx number instead
da6e9d0b2ee6 data, doc, scripts: import from previous fc-pcsc-tools repo
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
250 of the +882110xxxxx listed in the sysmoUSIM manual. :-)
da6e9d0b2ee6 data, doc, scripts: import from previous fc-pcsc-tools repo
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
251
da6e9d0b2ee6 data, doc, scripts: import from previous fc-pcsc-tools repo
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
252 When I saw this misprogramming, I also added a fix-sysmo-msisdn command to
da6e9d0b2ee6 data, doc, scripts: import from previous fc-pcsc-tools repo
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
253 fc-simtool: this command checks for this particular misprogramming, and if it
da6e9d0b2ee6 data, doc, scripts: import from previous fc-pcsc-tools repo
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
254 finds such, it rewrites the MSISDN record with the 8-byte phone number field
da6e9d0b2ee6 data, doc, scripts: import from previous fc-pcsc-tools repo
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
255 moved to its correct place. However, this fix-sysmo-msisdn command probably
da6e9d0b2ee6 data, doc, scripts: import from previous fc-pcsc-tools repo
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
256 won't get much use: the factory-programmed EF_MSISDN is now completely blank on
da6e9d0b2ee6 data, doc, scripts: import from previous fc-pcsc-tools repo
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
257 Sysmocom's current sysmoISIM-SJA2 cards, and also on the late sysmoUSIM-SJS1
da6e9d0b2ee6 data, doc, scripts: import from previous fc-pcsc-tools repo
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
258 cards - or at least it is blank on the last-stock cards I bought in 2020-11.
da6e9d0b2ee6 data, doc, scripts: import from previous fc-pcsc-tools repo
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
259 EF_MSISDN is writable without needing ADM1 - it only needs CHV1.