Card abbonamenti TPER "Mi Muovo"
Si tratta di una PICC a 13.56MHz, ma a differenza di quel che pensavo, non è la solita Mifare.
Vediamo un po' di capire di cosa si tratta...
Il mio lettore ACS ACR122U mi restituisce, come ATR "virtuale" della card, 3B 8C 80 01 50 xx xx xx xx xx xx xx xx xx 71 71 cc
che, tradotto, vuol dire che si tratta di una scheda che utilizza ISO14443-B.
Questo riduce leggermente il campo, lasciando molto probabilmente solo la possibilità che si tratti di una carta Calypso. Oltretutto mi spiazza un pochino: mi aspettavo che si trattasse della solita Mifare 1K... Sembra che chi ha studiato il sistema abbia svolto bene i compiti
Così, però, al momento dubito di riuscire ad analizzare oltre queste card... Ed è un peccato, perché mi sarebbe piaciuto riutilizzarle per altre applicazioni, ma tutte le specifiche per le Calypso sono costose e sotto NDA
[edit]: Ho trovato un bellissimo tool (cardpeek) che riconosce e decodifica anche le Calypso.
Ecco la parte interessante del log di una:
0020 INFO ATR is 17 bytes: 3B8C8001501068DD3700000000B371717C 0021 INFO send: 94A40000022010 [3S] 0022 INFO Recv: 9000 85170804041D061F1212120103030300(...) [Normal processing] 0023 INFO send: 94A40000020002 [3S] 0024 INFO Recv: 9000 85170204021D011F0012000101010100(...) [Normal processing] 0025 INFO send: 94B201041D [2S] 0026 INFO Recv: 9000 00000000000000040071B30200000000(...) [Normal processing] 0027 INFO send: 94B202041D [2S] 0028 INFO Recv: 6A83 [Wrong parameter(s) P1-P2 - Record not found] 0029 INFO send: 94A40000020003 [3S] 0030 INFO Recv: 9000 85170304021D01011200000102010100(...) [Normal processing] 0031 INFO send: 94B201041D [2S] 0032 INFO Recv: 6982 [Command not allowed - Security status not satisfied] 0033 INFO send: 94A40000022000 [3S] 0034 INFO Recv: 9000 85170002000000121200000103010100(...) [Normal processing] 0035 INFO send: 94B201041D [2S] 0036 INFO Recv: 6986 [Command not allowed - Command not allowed (no current EF)] 0037 INFO send: 94A40000022001 [3S] 0038 INFO Recv: 9000 85170704021D011F1200000101010100(...) [Normal processing] 0039 INFO send: 94B201041D [2S] 0040 INFO Recv: 9000 02FD8C16000000000000000000000000(...) [Normal processing] 0041 INFO send: 94B202041D [2S] 0042 INFO Recv: 6A83 [Wrong parameter(s) P1-P2 - Record not found] 0043 INFO send: 94A40000022002 [3S] 0044 INFO Recv: 6A82 [Wrong parameter(s) P1-P2 - File not found] 0045 INFO send: 94A40000022010 [3S] 0046 INFO Recv: 9000 85170804041D061F1212120103030300(...) [Normal processing] 0047 INFO send: 94B201041D [2S] 0048 INFO Recv: 9000 00000000000000000000000000000000(...) [Normal processing] 0049 INFO send: 94B202041D [2S] 0050 INFO Recv: 9000 00000000000000000000000000000000(...) [Normal processing] 0051 INFO send: 94B203041D [2S] 0052 INFO Recv: 9000 00000000000000000000000000000000(...) [Normal processing] 0053 INFO send: 94B204041D [2S] 0054 INFO Recv: 9000 00000000000000000000000000000000(...) [Normal processing] 0055 INFO send: 94B205041D [2S] 0056 INFO Recv: 9000 00000000000000000000000000000000(...) [Normal processing] 0057 INFO send: 94B206041D [2S] 0058 INFO Recv: 9000 00000000000000000000000000000000(...) [Normal processing] 0059 INFO send: 94B207041D [2S] 0060 INFO Recv: 6A83 [Wrong parameter(s) P1-P2 - Record not found] 0061 INFO send: 94A40000022020 [3S] 0062 INFO Recv: 9000 85170904021D041F1212000102030100(...) [Normal processing] 0063 INFO send: 94B201041D [2S] 0064 INFO Recv: 9000 00000000000000000000000000000000(...) [Normal processing] 0065 INFO send: 94B202041D [2S] 0066 INFO Recv: 9000 00000000000000000000000000000000(...) [Normal processing] 0067 INFO send: 94B203041D [2S] 0068 INFO Recv: 9000 00000000000000000000000000000000(...) [Normal processing] 0069 INFO send: 94B204041D [2S] 0070 INFO Recv: 9000 00000000000000000000000000000000(...) [Normal processing] 0071 INFO send: 94B205041D [2S] 0072 INFO Recv: 6A83 [Wrong parameter(s) P1-P2 - Record not found] 0073 INFO send: 94A4000002202A [3S] 0074 INFO Recv: 9000 85170A04081D011F1212120102030200(...) [Normal processing] 0075 INFO send: 94B201041D [2S] 0076 INFO Recv: 9000 00000000000000000000000000000000(...) [Normal processing] 0077 INFO send: 94B202041D [2S] 0078 INFO Recv: 6A83 [Wrong parameter(s) P1-P2 - Record not found] 0079 INFO send: 94A4000002202B [3S] 0080 INFO Recv: 9000 85170B04081D011F1212120102030200(...) [Normal processing] 0081 INFO send: 94B201041D [2S] 0082 INFO Recv: 9000 00000000000000000000000000000000(...) [Normal processing] 0083 INFO send: 94B202041D [2S] 0084 INFO Recv: 6A83 [Wrong parameter(s) P1-P2 - Record not found] 0085 INFO send: 94A4000002202C [3S] 0086 INFO Recv: 9000 85170C04081D011F1212120102030200(...) [Normal processing] 0087 INFO send: 94B201041D [2S] 0088 INFO Recv: 9000 00000000000000000000000000000000(...) [Normal processing] 0089 INFO send: 94B202041D [2S] 0090 INFO Recv: 6A83 [Wrong parameter(s) P1-P2 - Record not found] 0091 INFO send: 94A4000002202D [3S] 0092 INFO Recv: 9000 85170D04081D011F1212120102030200(...) [Normal processing] 0093 INFO send: 94B201041D [2S] 0094 INFO Recv: 9000 00000000000000000000000000000000(...) [Normal processing] 0095 INFO send: 94B202041D [2S] 0096 INFO Recv: 6A83 [Wrong parameter(s) P1-P2 - Record not found] 0097 INFO send: 94A4000002202E [3S] 0098 INFO Recv: 6A82 [Wrong parameter(s) P1-P2 - File not found] 0099 INFO send: 94A4000002202F [3S] 0100 INFO Recv: 6A82 [Wrong parameter(s) P1-P2 - File not found] 0101 INFO send: 94A40000022060 [3S] 0102 INFO Recv: 6A82 [Wrong parameter(s) P1-P2 - File not found] 0103 INFO send: 94A40000022061 [3S] 0104 INFO Recv: 6A82 [Wrong parameter(s) P1-P2 - File not found] 0105 INFO send: 94A40000022062 [3S] 0106 INFO Recv: 6A82 [Wrong parameter(s) P1-P2 - File not found] 0107 INFO send: 94A40000022040 [3S] 0108 INFO Recv: 9000 85171D04021D031F1200000103010100(...) [Normal processing] 0109 INFO send: 94B201041D [2S] 0110 INFO Recv: 9000 00000000000000000000000000000000(...) [Normal processing] 0111 INFO send: 94B202041D [2S] 0112 INFO Recv: 9000 00000000000000000000000000000000(...) [Normal processing] 0113 INFO send: 94B203041D [2S] 0114 INFO Recv: 9000 00000000000000000000000000000000(...) [Normal processing] 0115 INFO send: 94B204041D [2S] 0116 INFO Recv: 6A83 [Wrong parameter(s) P1-P2 - Record not found] 0117 INFO send: 94A40000022050 [3S] 0118 INFO Recv: 9000 85171E04021D011F1200000103010100(...) [Normal processing] 0119 INFO send: 94B201041D [2S] 0120 INFO Recv: 9000 00000000000000000000000000000000(...) [Normal processing] 0121 INFO send: 94B202041D [2S] 0122 INFO Recv: 6A83 [Wrong parameter(s) P1-P2 - Record not found] 0123 INFO send: 94A40000022069 [3S] 0124 INFO Recv: 6A82 [Wrong parameter(s) P1-P2 - File not found] 0125 INFO send: 94A40000023F1C [3S] 0126 INFO Recv: 6A82 [Wrong parameter(s) P1-P2 - File not found] 0127 ERROR (DEBUG) [string "calypso.lua"]:168: attempt to concatenate local 'country' (a nil value) 0128 ERROR Called from calypso_process 0129 ERROR Runtime error in calypso.lua
Che, decodificato, risulta:
Probabilmente, l'errore finale è dovuto al fatto che non è una carta inizializzata (o per lo meno non completamente, basta vedere quanti "file not found")... Proverò anche con una inizializzata (appena mi capita) per vedere quali dati vengono memorizzati. Una cosa su cui praticamente tutti sono d'accordo è che le carte Calypso violano la privacy, ma vorrei capire fino a che punto...
Commenti
Any news? :)
Hey man!
I was looking on google for the Calypso ATR and I have found your test.
Did you make any further tests? I am quite interested to study Calypso cards, since Mifare became a bit boring
Cheers,
Luca
P.S.: In case, I would like to stay in touch, where I could find your email?
Nearly nothing
I've had nearly no time for more experiments, except reading an initialized card (but I can't publish that data, since the card is not mine).
At a first lookm it seems the 'TPER' implementation doesn't give out 'private' informations like french ones, but I'd need more cards to check.
Anyway, since I'm not willing to pay 1K€ for the specs, I doubt I'll be able to squeeze anything more out of those cards. ATM I'm focusing on JavaCards -- a whole new world for me! That's real crypto.
To contact me, you can use the site contact form and send me your address. Thanks to really stupid spammers (they still didn't notice that comments are moderated!), I won't publish it on the site.
Link interessante
Pirates Mag' (EN) raccoglie un po' di analisi di varie card usate in giro per il mondo, con sorgenti in BASIC. Vale la pena di leggerlo.
Numero logico su MiMuovo
Secondo il capitolato tecnico l'unica informazione che si puo' leggere in chiaro su una MiMuovo e' il numero logico, che e' quello laserato sulla tessera. Dovrebbe essere nei primi 32 bit dell'environment. Mi confermi che il numero logico della tua tessera e' il:
50170902?
(il prefisso 50 significa Bologna, credo)
grazie,
Francesco
Azzeccato!
Esatto. Direi che ci hai preso su entrambi i fronti.
Sai per caso dove reperire ulteriori informazioni?
In altre Calypso sono indicati e leggibili in chiaro anche i codici delle "stazioni" oltre le date di inizio e fine validità.
Come dicevo più sopra, dubito che sulle mie tessere ci siano altri dati (essendo un abbonamento integrato, ogni anno me ne danno una nuova), ma sarebbe interessante poterle anche solo cancellare e riutilizzare per altro (odio gli sprechi)... Magari, non inizializzandole hanno pure lasciato le transport keys di default