TARJETAS TELEFÓNICAS
Por Juan Manuel García López
Después
de que los bancos nos llenaran los bolsillos de tarjetas de banda magnética,
llegan los teléfonos y
nos
ofrecen unas nuevas tarjetitas, del mismo tamaño, pero completamente distintas.
Esos trocitos de plástico
que parece que llevan una peseta de las antiguas incrustada en una
de sus caras son las tarjetas chip. Desde
aquí pretendemos alumbrar un poco sobre el misterio que encierran.
Una tarjeta
chip es, en su modelo más sencillo, una memoria EPROM (Eraseable Programmable
Read-Only
Memory) de 256 bits que pueden ser leídos y, algunos
de ellos, escritos. Hay modelos más complejos, que
incluyen zonas que no pueden ser leídas si no se
proporciona una clave, o que tienen incluso un microprocesador
con sistema operativo propio (definido en el estándar
ISO7816). Las tarjetas de teléfono pertenecen al primer
modelo, pero no por ello son inseguras. El hecho de
que no haya campos protegidos contra lectura se explica
porque no hay nada confidencial en ellas (al contrario
de, por ejemplo, en las tarjetas de los bancos).
Una EPROM
se borra sometiéndola a radiación ultravioleta. Para garantizar la
inviolabilidad de la tarjeta, el
chip está recubierto de resina opaca a dicha luz. Así,
resulta imposible borrar los bits de la EPROM, impidiendo
de esta forma la grabación en la tarjeta del contenido
que nosotros deseemos. Además, aun en el caso de que
consiguiésemos que la luz ultravioleta llegase al
chip, con ello pondríamos a cero TODOS los 256 bits. Alguien
pensó en ello e incorporó un fusible (que ya viene
fundido de fábrica) cuya misión es la de impedir la grabación
en los primeros 96 bits de la tarjeta, zona denominada
"del fabricante", y que sirve como DNI de la tarjeta (Sí.
Llevan número de serie individual) y como
identificación del fabricante y demás. Al no poder reescribir esta
zona, la tarjeta quedaría inservible, ya que no sería
reconocida. Si alguien comenzó a leer este artículo
únicamente pensando que podría ahorrarse unos duros en
teléfono, aquí acaba para él. La respuesta es «no se
puede» recargar una tarjeta, lo que si pondemos es
emularla (para mas informacion ver seccion de ficheros).
Si, por el contrario, el lector es curioso, lo que
viene a continuación son algunos detalles de funcionamiento.
Conector
La distribución de los contactos del
conector es la siguiente:
Contacto
Significado
1
Vcc = +5V
2
-R/W
3
CLK
4
RST
5
GND
6
Vpp = +21V
7
I/O
8
FUS
El bus de
datos es de un solo bit (contacto 7), y no hay bus de direcciones. Las
posiciones de memoria van
siendo leídas/escritas secuencialmente. Si se desea
leer/escribir una posición determinada, se ha de hacer un
"reset" a la tarjeta (contacto 4) y comenzar
leyendo desde el bit 1 hasta la posición elegida. El contacto 2 a
nivel alto indica petición de escritura. A nivel bajo,
lectura. Los contactos 1, 5 y 6 son
los correspondientes a
la alimentación de la tarjeta. GND es el voltaje de
referencia. Vcc es el voltaje de la circuitería, +5V, y Vpp es
el voltaje necesario para escribir bits en la tarjeta.
El contacto Vpp está normalmente a +5V salvo cuando se
escribe, que pasa a +21V. El contacto 8 (FUS) es utilizado únicamente en fábrica para
impedir la escritura en
los 96 primeros bits. El contacto 3 (CLK) es mediante el cual se comunica a la
tarjeta cuál debe ser su ritmo
cardiaco.
Algunos fabricantes de tarjetas no emplean los contactos 6 y 8, ya que,
en algunos modelos, no es
necesario el voltaje +21V para programar el chip.
Mapa de memoria
A estas
alturas, al lector ya se le habrá ocurrido pensar cómo se pueden introducir
1000 o incluso 2100 pts.
en 256 bits, máxime cuando 96 de ellos están ya
ocupados para la identificación de la tarjeta. Veamos
detalladamente qué es lo que hay en esos 256 bits:
Bits 1-8
(byte 1): Byte de comprobación. Su valor es 216 menos la suma de los bits 9 a
96.
Bits 9-16
(byte 2): 83h
Bits 17-32
(bytes 3-4): FFFFh
Bits 33-40
(byte 5): Identificador de la marca del fabricante. En las tarjetas españolas
vale 90h, 30h o
5Ah, según
el fabricante de que se trate.
Bits 41-64
(bytes 6-8): Número de serie. En las tarjetas etiquetadas como 30h y 5Ah en el
byte 5, se
calcula
como Byte 6 * 10000h + Byte 7 * 100h + Byte 8. En las demás, se ignora.
Bits 65-80
(bytes 9-10): Valor inicial de la tarjeta:
1000
pts. -> 148Ah
2000
pts. -> 2504h
2100
pts. -> 2506h
Bits 81-88
(byte 11): 1Eh
Bits 89-96
(byte 12): País. España es 22h, pero hay otros países cuyas tarjetas utilizan
el mismo mapa de
memoria.
Hasta aquí la zona del fabricante. A partir
de aquí comienza la zona de datos propiamente dicha: 160 bits, de
los cuales los diez primeros (bits 97-106) se funden
(ponen a uno) en fábrica para probar la tarjeta.
A medida
que vayamos consumiendo la tarjeta, se irán poniendo más bits de esta zona a
uno, pero no
uniformemente. Dentro de los 150 bits disponibles hay
dos zonas, y su mapa depende del valor de la tarjeta:
En las
tarjetas de 1000 pts., los bits 107 a 206 son unidades "lentas". Cada
bit puesto a uno en esta zona
vale 5
pts. En total, 500 pts. Los bits 207 a 256 son unidades "rápidas". Un
bit a uno en esta zona vale 10
pts. En
total, otras 500 pts.
En las
tarjetas de 2000 pts., los bits 127 a 166 son unidades de 5 pts. (total: 200
pts.), y los bits 167 a
256 son
unidades de 20 pts. (total: 1800 pts.). Se desconoce la utilidad de los bits
107 a 126 en estas
tarjetas.
Posiblemente no se usen.
En las
tarjetas de 2100 pts., el funcionamiento es como el de las de 2000 pts., salvo
que la zona "lenta"
corresponde a los bits 107 a 166 (300 pts.). La decisión de utilizar
unidades "lentas" o "rápidas"
corresponde al aparato lector. El autor de este artículo desconoce el
criterio empleado.
Sin
embargo, aparece algún interrogante:
- Las
tarjetas de 1000 pts. son, aparentemente, más flexibles que sus hermanas
mayores, ya que el tamaño de
las unidades de cobro es más uniforme que en las de
2000 y 2100 pts.
- Al
término de las unidades menores, ¿qué ocurre? Si no hay "duros" para
usar, se supone que la unidad
mínima de cobro es la unidad rápida. En una tarjeta de
2100 pts. con los "duros" agotados, unallamada urbana
que sobrepase mínimamente las 20 pts. nos costará la
friolera de ¡40 pts.! frente a las teóricas veintipocas. No
obstante, esto es sólo una suposición que se revela
inmediatamente de la estructura de los datos de la tarjeta,
estando en estos momentos pendiente de confirmar.
- Como
ahora la llamada mínima en una cabina es de 20 pts., es de sospechar que en las
tarjetas de 1000 pts.
se consuma primero alguna unidad de 10 pts. De esta
forma, se terminarán antes las unidades de 10 pts. que las
de 5 pts., y así los redondeos serán mínimos. Por
tanto, en cada llamada con una tarjeta de 1000 pts. se pierden
a lo más 4 pts. (de 0 a 4, dependiendo de lo que le
falte al importe de la llamada para llegar a múltiplo de 5 pts.),
y en media 2 pts. por llamada. En una tarjeta de 2100
pts. las pérdidas medias han de ser mayores (las unidades
lo son, y el redondeo es por abajo). Desde luego, es
nefasto utilizar una tarjeta de 2100 pts. sólo para llamadas
urbanas de 25 pts.: las 30 primeras serían a 25 pts,
las 30 restantes (¿por qué 30?) serían a 40 pts.
- ¡Ojo con
dejar 5, 10 o 15 pts. al final en una tarjeta! Es posibleque no puedan ser
utilizadas, ya que la
llamada mínima es de 20 pts. Existe la posibilidad
de vaciar la tarjeta en la cabina cuando está casi terminada,
con el fin de emplear el crédito restante junto
con otro medio de pago, pero es una posibilidad que está muy
poco documentada en las cabinas.
Espero
que esto ayude a todos un poco a utilizar más inteligentemente las tarjetas. Seguiremos
investigando.
Para
más información, el grupo rec.collecting.phonecards de las news.