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». Si, por el contrario, el lector es curioso, lo que viene a continuación son algunos detalles de funcionamiento.
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.
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:
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:
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.