Lector de tarjetas chip Las nuevas tarjetas telefónicas en España El artículo publicado en el número 7 de la revista TODO ELECTRÓNICA sobre tárjelas inteligentes, trataba de forma monográfica las tarjetas telefónicas en España; pero mientras se preparaba la edición de la revista, apareció un nuevo modeio de tarjeta de prepago que es necesario estudiar para conocer todos los tipos existentes en el mercado. Como complemento, se presenta un lector de tarjetas empleando un ordenador personal que permite conocer el contenido de la información almacenada en cualquiera de los tipos de tarjetas telefónicas de prepago disponibles en !a actualidad en España. En principio cabe decir que lodo lo que se expone a continuación no se hace con ánimo de perjudicar a la Compañía Telefónica, sino solamente con fines educativos. Entrando en materia, se puede decir que las nuevas tarjetas se distinguen fácilmente del resto, ya í¡ue el chip tiene en este caso solamente 6 contactos frente a ios 8 que presentan los modelos anteriores. En la figura 1 se aprecia un ejemplo de una de las tarjetas del nuevo tipo. Rsr CLK R'/W I/O Figura 2. ("fonograma de las tárjelas G + D de 6 y 8 contactos. una menor cantidad de memoria que tas tarjetas.de 8 contactos. En el caso de las tarjetas de ó contactos, son fabricadas por G + D, al menos los modelos que hemos utilizado para hacer las pruebas que nos han llevado a conocer los datos que aquí exponemos, recordemos que G + D también fabricaba un tipo de tarjeta de 8 contactos. Contenido de las tarjetas Las tarjetas de 6 contactos disponen_de 16 bytes o. lo que es ¡b mismo, 12S bits de memoria, es oecir, la "mitad (Je memoria que las tarjetas de 8 contactos. De la información contenida en ia memoria de una tarjeta, y sobre todo del contador del crédito, veremos varios ejemplos. Debido a la reciente salida al mercado de esle tipo de tarjetas, no se ha podido realizar un estudio exhaustivo sobre su contenido, quedando aún algunas lagunas sobre el origen de la información leída en la memoria de la tarjeta, si bien el contenido y funcionamiento relativo al contador del crédito sí es totalmente conocido. A continuación se va a describir su comportamiento que difiere del que realizan las tarjetas de 8 contactos utilizando una zona de memoria como contadores rápido y lento. En el caso de las tarjetas de 6 contactos el descuento del crédito se realiza a través de 5 posiciones de memoria que forman un contador octal de 5 etapas, siendo ésle el encargado de guardar (a información correspondiente al crédito, además para diferenciarse un poco más. si cabe, en este caso el disponible depende de que los bits estén a «1». mientras que en las tarjetas de 8 contactos, en las zonas de memoria rápida y lenta, ei crédito disponible depende del número de ceros que reslan en cada zona, descontándose el crédito en la memoria de forma secuencia!, poniéndose bits a « I » . El decremento del importe correspondiente se va haciendo de abajo hacia arriba o de la zona menos a la más significativa, del byte 13 al 9. de forma que cuando se necesita un importe superior al disponible en el byle de menor peso, se recurre al byte inmediatamente superior, se le resta o «quita» un «I» y se convierte en 8 unos en ei byle inferior y así sucesivamente hasta agotar el contenido det crédito disponible en la memoria. Por la lógica utilizada en la construcción de las tarjetas, se impide que al realizar una operación de escritura en la zona del contador, el resultado obtenido sen mayor ai valor disponible con anterioridad, de tal forma queda justificado que mi es posi- -¿ Anverso de una tarjeta telefónica de prepago de 6 contados. La distribución de los terminales es !a siguiente (coincide en posición con los 6 terminales superiores de las tarjetas de 8 contactos que se describen en el artículo antes mencionado; aparece entre paréntesis la numeración correspondiente a los terminales para la tarjeta de 8 contactos): 1 Vcc 2 R7W 3 CLK (1) (2) (3) 4 GND 5 Vpp 6 I/O (5) (6) (7) (puesta a « I » ) Vcc: es la tensión de alimentación (5 V) R7W: realiza la selección de lectura/escritura de dalos CLK: es la entrada de reloj GND: es la tensión de referencia (O V) Vpp; es la tensión de programación (puesta a «1») I/O: es la línea de entrada/salida de dalos La gráfica siguiente representa el protocolo utilizado para la comunicación entre la tarjeta y la cabina y. si hacemos memoria, recordaremos que coincide con la utilizada por la tarjeta O + D de 8 contados. Pero las diferencias externas no son las únicas que aparecen a medida que vamos conociendo el funcionamiento de las tarjetas, en primer lugar se puede decir de ellas que disponen de 89 ble recargar este Upo de tárjelas, ya que en ningún '•aso se puede incrementar el valor de la zona del corlador, solamente se puede dccrerncnlar. Bylc(bit) 1(1 8) 2J9..16) 307..24) 4(25.32) 5(33..40) 6(41. .48) 7(49-56) 8(57..64) 9(65-72) 10(73..80) 11 (81 ..88} 12(89..%) 13(97-104) 14(105-112) 15(113 120) 16(121.,129) Binario He\. I1(X)000() CO 01111000 78 0110 IT01U 62 0011 0000 30 0010 0111 27 0101 0001 51 0100 1000 48 0111 0100 74 0000 0000 00 0001 111U 1E 00000000 00 0111 1110 7E 0001 1111 1F 1111 mi FF 1111 1111 FF 1111 1111 FF Comentario Información relativa al fabrieanic y al país, se repite en todas las tarjetas ulilizadas El resultado obtenido es l.i suma tkl producto corrcspiiiidiente y nos da el crcdilu disponible en l;i (arjcUi, a tílulo de ejemplo, vamos a comprobar el saldo disponible en la tarjeta cuyo contenido se expuso anteriormente: Byte Binario y oooo oooo 10 11 12 13 Posiblemente el número de señe Hexadecimal «1 útiles» Multiplicador Valor ai 0001 1110 1E OOOO OOOO (X) 0111 1110 7E 0001 1111 • 1F T O o T 4 II 6 4 A L 4096 512 fvt 8 1 o 2048 0 48 4 2100 Tabla 3: Distribución de la información en el contador octal correspondiente al saldo paia una tarjeta nueva de 2KX) pesetas. Contador octal de 5 etapas que almacena el crédito disponible 3 b y|es (24 blts * íundldos en fábrica como tesl Tabla 1: Contenido de la memoria de una tarjeta telefónica de 6 rontactos de 2.100 pesetas antes de ser usada. Comentando el contenido de la memoria de las tarjetas de 6 contactos, y en concreto los valores que aparecen en la tabla 1, se puede decir que los primeros 4 bytes, aparentemente, aportan información sobre el país de uso y del fabricante. La información que aparece en los bytes del 5 al 8 almacena datos cuyo origen no está toialmente comprobado, y pueden ser del tipo: número de serie de la tarjeta, valor facial o bien un control de paridad que la cabina utilice para verificar la autenticidad de la tarjeta. En las posiciones de memoria 65 a 104, bytes del 9 al 13, se sitúa un contador octal de 5 etapas, de forma que el valor de la tarjeta va a depender de la información almacenada en estas posiciones de memoria. En los bytes del 14 al 16 se almacenan «1» en todos los bits, sirviendo de control de calidad al proceso de grabación de la memoria de la tarjeta. Crédito disponible Parece necesario centrarnos en la zona que almacena la información correspondiente a la cantidad disponible en la tarjeta, en primer lugar hay que considerar e) número de «1» que tiene cada uno de los bytes implicados (del 9 al 13) en el contador sin que tenga ningún «0» a la derecha, esta consideración se debe a que el «0» se utiliza como marcador en el caso del descontaje.de! importe, y cuando deja algún o algunos «1» a su izquierda, los deja como no válidos a efectos del conteo del importe final. También hay que prescindir de) valor almacenado en el bit menos significativo (el de la derecha) de cada byte, ya que no se considera nunca, independientemente del valor que tenga. En función de la posición de memoria en la que tengamos el «1», va a tener un valor distinto, el valor total en pesetas se obtiene de multiplicar el número de «1» «útiles» de cada byte por el valor asignado y sumarlos finalmente según el contador octal utilizado, a continuación se detalla el valor del multiplicador en cada caso: Byte Multiplicador 9 10 11 12 13 4096 512 64 8 1 El crédito disponible en esta tarjeta es de 2.100 pesetas, y dicho valor se obtiene en este caso de los byles número 10, 12 y 13, de forma general en los bytes del 9 al 13. Se debe multiplicar el número de «1» «útiles» (aparecen en negrita) por el multiplicador correspondiente al byte en e! que estemos, según se indica en la tabla 3, finalmente se deben sumar todas las cantidades y el resultado es el importe del crédito disponible en la tarjeta. En esle caso, según aparece en la tabla, se obtiene como disponible la cantidad de 2.100 pesetas. Para que quede más claro, vamos a considerar otro ejemplo como es el caso de la misma tarjeta ya totalmente descargada, el contenido de la zona correspondiente al crédito es: Byte 9 10 11 12 13 Tabla 4: Distribución de la información en el contador octal para una tarjeta cun 0 pesetas de saldo disponible. En este caso tanto los bytes 9 y 10, como el 11 están vacíos de «1», por tanto, su valor es 0. En el caso de la posición 12, tiene un único «i», pero está a la derecha y, por tanto, no se considera, el valor del byte 12 es 0. Por lo que respecta al byte 13, tiene 6 «1», pero tiene- un 0 en la posición 7, por tanto todos los unos que hay a su izquierda no son válidos, y el «1» que resta está en el bit de la derecha, no teniendo validez tampoco, el resultado es 0, siendo el total de crédito disponible de la tarjeta de 0 pesetas. A diferencia de las tarjetas de 8 contactos, en las que el descuento mínimo es de 5, 10 ó 20 pesetas, dependiendo del caso y de las condiciones de uso, en las tarjetas de 6 contactos se pueden realizar decrcmentos con importe de 1 peseta, con lo cual podemos llegar a pensar que la Compañía Telefónica está realizando un fraude a los untarías de estas tárjelas, ya que técnicamente es posible descontar peseta a pésela el ini¡iorte; por tañía, no hay motivo a redondear, v además siempre por defecto, a múltiplos de 5 péselas. • -Finalmente, vamos a considerar otro ejemplo: en este caso la tarjeta no se encuentra ni llena, ni vacía, se encuentra con un valor intermedio, 1.515 pesetas. Veamos cómo se distribuye en este caso la información en el contador octal: Byte 9 10 U 12 13 Tañía 2' Valor del multiplicador en fundón de l:i posición üc memorta del contador tidal tic 5 etapas. Binario Hexadecimal «1 útiles» Multiplicador Valor OOOO OOOO 00 0 4096 0 OOOO 0000 00 0 512 0 OOOO OOOO 00 0 64 0 OOOO 0001 01 0 8 0 1011 1101 BD 0 1 0 T O T A L 0 Binario Hexadecimal «1 útiles» Multiplicador Valor 0000 OOOO 00 0 4096 0 OOOO 0110 06 2 "512 1024 1111 1110 FE 7 64 448 0011 1110 3E 5 8 40 1010 1111 AI7 3 1 3 T O T A L 1515 Tabla 5: Información almacenada en el cnmador nttiil para una tárjela con 1.515 poseí ¡is Jt s:ilild disponible. 90 . „. La información que aparece en la tabla 5 nos muestra el contador ocla! de cinco etapas de una tarjeta con 1,515 pesetas je saldo, dicho impone se obtiene del siguiente desglose: en la wsición 9 no existe ningún »1», por lanío, el valor corresponlienie es O pesetas, en el caso de la posición 10, hay 2 «1», que nultiplicados por 512, hacen un total de 1.024 pesetas, en la aosición 11 nos encontramos 7 «1», lo que da un total de 448 ;in más que hacer el producto 7 * 64, En la posición 12 hay 5 «1», multiplicados por 8, valor correspondiente a dicha posición, dan 40 péselas y, por último, en la posición 13 hay solamente 3 «1» «útiles», ya que se eliminan aquellos que tiene algún «O» a su derecha y además los «1» que hay en el bit de la derecha no se consideran, por tanto, de los 6 «1» que hay en este byte, solamente son «útiles» 3, que multiplicados por 1, dan 3 pesetas. La suma del resultado obtenido por los 5 bytes da un total de 1.515 pesetas que es el crédito disponible en la tarjeta. Programa lector Por lo que respecta al programa lector de tarjetas, lo único que se limita a hacer es generar un protocolo similar al que emplean las cabinas telefónicas para conocer la información almacenada, y si todo está correcto, identificar el crédito disponible y permitir la llamada. El protocolo generado es idéntico al que aparece en la figura 2. Para eUo se utiliza el puerto paralelo del ordenador personal, direccionándolo como entrada/salida y permitiendo obtener la respuesta de la tarjeta telefónica al «estímulo» generado, el resultado de dicho envío/recepción de la información se muestra en la pantalla en el formato que aparece en las figuras 3, 4 y 5: í fliinona =.?8 .1? miciioia = i2' ÍT, OtlIUOIl). = 3D. 33 O f l l C G I d l - Í5 U-00111000'T 38 *)• 11011001 ---m sí-11-100100 = t* <,', HOOODQOO - Df , ! 1-Ucc -D! ¡ 2 R/ll ! GND 4 •! ". •! «pp S « —V-— /:—.—'lio ; a cu' i ~ • -OIIT 6 •\^.:—--:..__,.--.—^— au - . .'. 1JQ10DOD in-ocín Miirrniifl 11110001 OD010100 IDOtlBIO = = = = = - ID Vi ci 11 14 Bn 01 oooitnn - K 89 97 ios 113 001D0010 11111111 nauíiinu ODUODOOO = }} FF co DO 1:1 OSBOOOOO - oo I DODtIBOO 01001101 101D1011 01010101 10101010 11 00 OS 00 11010101 01100GBD . \ ] 1 Bct \ 62 ¡ 2 S/ll _y—* • ~ M | 1 «« 60 na 011DD1D1 (S 31 ? n i SOIIIHD ID) 11101010 !17 10011111 tt JF DT BL ni 10111111 133 10111110 ![ ¡M 1D1Í10I8 . ---« Jpp 6 | OOT 7 i nc* DI ! <t FI.ST ai \ • 1 Cnrtlsun: nc Fabricaile: Obrrlhur tbnrro d. strit: B ? UB1.J9J7 Pa¡«: España Prrgio: 1000 fti Dilor atiual: tliTtíi - i - r p i l P ISC - ternir.j IC) 1)97 - P. titano» - B..flbaríj - Salva büí S - l/iiii Byt» J. Abril // eas l'antalla obtenida por e) programa lector pan una larjela de 8 contados tipil B. comentada anteriormente, como es el Checksum o byle de control, encargado de hacer una suma del número de «1» en una zona de memoria (ver artículos aparecidos en 100° ELECTRÓN!* CA 6 y 7); también el nombre de! fabricante y el número de serie (con interrogación en el caso de no tener la certeza de que sea el correcto). 1 10101011 9 13000011 1Í 11111111 ,JST1TI1t11 33 ooimnoo M 10110111 ',/ 010D1011 (5 DBOI0100 13 10001010 troooi.1110 8» DD1D0010 »/ 11t1lt11"' = IBt, IISUOCOO '= 113 10011100 = 1 3 1 11001101 - BD 1!! B3 137 FF 1« FF——1S3 OÍB11Í10 OD01in81 1DD11D01 tootHMg = = = - ií 1» 99 9B •Ji ' 4 1 101011D1 : RD 1'j ti 411 W 00001101 : DC 17} 01101000 - f,S 135 01100110 - ti u 193 Oiiomn z 6S 8B Jfll '01011110 1E -'I09.1DI011IO 22 !17 01011100 FF • !2S 11111111 I ¡i . 73] 01111DDO 9C. !*1 11111(11 ÍD. . 'ÍM BHIIOSa = = = ; • I 1 Dcc fpHD S t ------ \ BJ-I 2 R/ll *- --- 1 01 ! <• RS1 /- ...... -t Vft t O \- ..... — ..... .— ..... — = — SE BE' St FF • lionero ÍF sfrit: C 16J1179 X 78 Hdis: l\pañl F9 ' Prefi 9 ; 100! Plí - . . Í8 ' 3a EWTEB - repitf - . [SC - lemioj ' S -Salua-Gvlts (t)- 1ÍJ7'- PJ tasanosa -*a. Sbarca « J. ftbril II. cas. 89-00111110 = 3 E ' í-' ,13ií!t11.^ «Flili 1111111.1 =MF 113 11Í1H11 - FF 7 31 «1 »9 S7 Si TI 1Í9 111 •<.'. 153 iti 1» 177 1E5 ^ Ujlir. attmlí »-uHfliia, i f . •jt 11111116 = a 1ÍT1I111111 1 1J1D1100 = BC t IOOPOOII - «J u 11111111 - ri 25 11111111 - ri Pantalla obtenida por el programa Icflor para una larjeti de 8 contactos lipo C. (I- • '- . ' - . • - . . " . : ! : . ' -Balor ailual: ISIS.'. ' Aparece también el dato «España» indicando que coincide con el patrón eslablecido para las tárjelas en este país (el lector sirve para tarjetas de otros países en algunos casos). Se indica el valor facial de la tarjeta y finalmente el crédito disponible. Se dispone de las mismas opciones que en el caso de la tarjeta de 6 contados y por último aparece el nombre de los autores del programa. Este programa es capaz de extraer de la tarjeta loda la •nformación que se ha mencionado anlcriormtnle del contenido de la memoria, y además identificar si la tárjela es de 6 ó de 8 contactos, también el fabricante y en algunos casos (serie C de 8 contactos, del fabricante G +• D) el número de serie de la tarjeia que aparece impreso en el reverso de la misma. Este programa lector (ejecutable) se encuentra disponible en la dirección de Internet: http;//vo]t¡o.ujaen.es/pub/líirjcl¡i/ir\rjela.exe y el fuente en BASIC se encuentra en el mismo directorio con el nombre Iarjeta.zip. •' • . ENIIB! - repite -ESC --lerriioa • S - Salía Bylfí ' B'- Saina bit*. _• (C) 1W - t. Cátanoui -• B. flbjrca -' J.'RtriJ // caiinouaCtrfpis.ujato.es' Pantalla obtenida por el programa lector para una tárjela de 6 contactos. En este caso aparece en la pantalla en una columna loda la información disponible en el interior de la tarjeta (16 bytes), dicha información está expresada de la forma siguiente: en primer lugar está el número ordinal del primer byte del octeto que va a continuación, seguidamente van los 8 bits correspondientes a ese byte y el valor hexadecimal correspondiente. En la parte derecha de la pantalla aparece la distribución de los termínales de la tarjeta con su nombre correspondiente, así como el nombre del terminal al que se conecta en el puerto paralelo para poder realizar la lectura. Justo debajo se encuentra el nombre del fabricante, así como el número de serie, que al aparecer con una interrogación indica que no es seguro que ese sea el correcto, si bien corresponde a una zona que es probable que lo sea. Finalmente aparece el crédito disponible en la tarjeta. Además en la parle inferior aparece un menú de opciones como es: Repetir, acabar o bien salvar en un fichero en formato byics o bits la lectura realizada. En las figuras 4 y 5 aparece la lectura realizada en 2 tipos de tarjeta de 8 contactos. En ambos casos (figuras 4 y 5), aparece en la pantalla toda la información almacenada en el interior de la tárjela (32 byies) de la misma forma que se explicó para las tarjetas de 6 contactos. También aparece el gráfico que representa la distribución de terminales y debajo una información m;ís amplia que la Circuito lector El circuito que ¡mplemcnta el lector es sumamente sencillo y reduce la circuitcría al mínimo, ya que solamente necesita el conccior que une el circuito ni ordenador personal ;\ través del puerto paralelo y otro que es el que permite leer ln tárjela y la placa de circuito impreso que os la que permite la conexión y ensamblado del conjunUi. siendo su montaje muy sencillo. El conexionado que se realiza entre el puerto paralelo y la tarjeta es el siguiente: Por lo que respecta .il conexionado rc;ili/;ido en el circuito, se puede destacar por ejemplo, el hecho do que este sistema, debido al bajo consumo de hi tarjeta, no precisa alimentación externa, y ,, ti»n;i del propio puerto rumíelo, coricrclamcntc de los terminales 5, d y 7. que covrcsponucn ¡i 1)3, D-I y D5. res- 91 ejemplo), si bien su h;i rcalizüdo csln elección por nuifiwb, ti-:,, economía y simplicidad, En la figura 8 se observa la placa de circuito impreso mudianle la que se ha realizado el lector de tárjelas diip. CONECTAR T O R J E T A CONECTOR DB3S Placa de circuilu impreso del lector de larjtl:is chip. Esquema eléctrico del circuí!o. pecti va mente (líneas de datos). Se utilizan estas 3 líneas porque son capaces de proporcionar la corriente suficiente para que funcione el lector. El resto de las conexiones realizadas son: GND o tensión de referencia, que se toma del terminal 25 de! puerto paralelo; el termina! R'AV de la tarjeta va unido al ordenador a través de ia línea D2 del puerto paralelo (terminal 4 en la tarjeta) y la señal de reloj (CLK) a través de la línea DO (terminal 2 de la tarjeta), y para el caso de las tarjetas de 8 contactos, el terminal de reset (RST), terminal 4 de la tarjeta, se obtiene del pin número 3 del puerto paralelo. Del terminal 10 del puerto se obtiene la única línea que funciona como entrada, es la correspondiente a ACK'. y va unida al terminal 6 de la tarjeta (terminal OUT. realmente entrada/salida, I/O). Por cuestión de comodidad en el manejo y para facilitar la entrada/salida de !a larjeta telefónica a! cernedor, se recomienda e! uso de un prolongador o alargadera del puerto paralelo, de forma que se elimina ia continua necesidad de acceder a la parte posterior del ordenador personal. En la figura 7 se puede observar como queda el piototipo ya terminado: Fotografía del lector de tarjetas chip. En lo relativo al diseño del lector cabe hacer algunas consideraciones como es el uso de placa monocara, aún cuando es necesario utilizar terminales del puerto paralelo, lanío de la parle superior, como de la inferior del conector. esle problema se solventa mediante un cable que une el lerminal 25 que es el único utilizado en la parte inferior del conecto r y que corresponde o la línea de GND o tensión de referencia. Cabían otras allernativas a la hora de hacer el diseño (cutí otro lipo de concctor paralelo con terminales acodados, pin El coneclor de la tárjela es un elemento rclalivamcnlc caro y difícil de conseguir, por lanío en cada caso puede ser necesario hacer uso del ingenio para obtener Finalmente un sistema capaz de hacer la misma función mediante oíros métodos. Existen conectores similares que tienen Ifi contactos en lugar de los 8 aquí contemplados, este pequeño contratiempo se resuelve fácilmente, ya que al utilizar las liras de pinos, los terminales del coneclor no molestan. Además se ha realizado el monta je utilizando tiras do pincs para facilitar la extracción del coneclor do la tarjeta de la placa en el caso de que exisla algún lipo de anomalía en el funcionamiento del sistema, evitando así el tener que desoldarlo de la placa de circuilo impreso. Elementos necesarios: — 1 conector macho DB25 (puerio paralelo) — 2 tiras de 4 phies — 1 placa de circuilo impreso monocara de 35 * (Áí mm — 1 conector smart card c de tarjeta dct tipo CCM01-1NO3 o similar — Opcional: cable prolongador del puerto paralelo. Api ¡cocí ones El circuito expuesto se ha planteado únicamente como un lector de tárjelas inteligentes, aunque en realidad permite realizar una gran variedad de aplicaciones, abriendo las puertas al mundo de unos elementos tan actuales como son las tarjetas chip y que se pueden utilizar en equipos Ules CUIDO control de accesos o en cualquier sislcma que nccesilu un ckmcnto en el que se requiera una información almacenada que permita realizar funciones de identificación, ya que la información almacenada permanece inalterable, al menos un determinadas «mas de la memoria. Además de lodo lo expueslo se pueden sacar conclusiones muy interesantes en aspectos tales cnmo es el conocimiento e interpretación de los protocolos de comunicación serie utilizados por algunos circuilos integrados. Oito lema que se ha estudiado con el artículo y también con el programa lector, es la utilización del puerto paralelo como bus de comunicación bidireccional (entrada/salida) del ordenador personal. En posteriores entregas realizaremos algún ejemplo de sistema aplicando el leclor como elemento de unión con las Uirjelas inteligentes. Ref. L Chip 1 Leclor de Tarjetas Chip con software incluido P.V.P.: 1,475 Pías. + IVA 92