
Una de las cosas que mas profundamente me molesta es leer o escuchar a gente criticar cosas de las que en realidad sabe poco, y cuya única fuente de información son documentos de corte sensacionalista que únicamente contienen titulares al estilo 'El Pasaporte electrónico es inseguro' o 'RFID es una tecnología insegura'
Como ejercicio didáctico propongo que cualquiera que escuche un comentario así, acto seguido pregunte: '¿Cuando hablas de RFID, podrías decirme a que frecuencias te refieres?' y '¿Perdona, me podrías indicar al menos 3 protocolos RFID que conozcas?' Si el interlocutor duda en las respuestas, estamos ante otro caso de 'yo es que leí en nosedonde que ...'
Conste que yo no estoy defendiendo nada, de hecho me he propuesto escribir este post basado en certezas y pruebas sobre MI pasaporte, las conclusiones las dejo para cada cual.
Para realizar este pequeño estudio utilicé un lector RFID de la marca
Omnikey Cardman y me valí de las estupendas librerías / herramientas de
RFIDIOT, que, por cierto, es una pena que el autor haya elegido tan desafortunado nombre ya que son, en mi opinión, las librerías mas completas, mas fiables y útiles para trabajar con RFID y creo que el nombre puede dar lugar a equívocos.
Voy a obviar en este post los datos mas academicistas sobre las implementaciones
ICAO del pasaporte electrónico, ¿por que? básicamente porque pretendo que resulte ameno y creo que
el artículo de la Wikipedia es lo suficientemente avanzado para el que quiera meterse en nomenclaturas e ir a la parte low-level.
Punto uno: ¿Que contiene el E-pasaporte?
Mucha gente confunde y mezcla e-pasaporte con DNI Electrónico y son conceptos absolutamente diferentes. El DNI Electrónico está orientado a la identificación 'fuerte' de una persona y proveer de una herramienta que permita asegurar la integridad de unos datos en nombre de la persona que los firma. El Passaporte está orientado a proveer ciertos datos y a asegurar que esos datos son fidedignos. Mas claro: con el DNI puedes identificarte y decir 'yo soy Juan', con el E-Passaporte alguien dice que tu eres Juan.
Otro mito sobre el e-passaporte es su contenido, haciendo uso de la estupenda herramienta que viene con RFIDIOT llamada 'mrpkey' se puede leer el contenido completo del pasaporte, y lo que hay es:
-Tu nombre y apellidos
- DNI
-País de nacimiento
-Fecha de nacimiento
-Certificado de la CA raíz de la Policía Nacional
-Certificado de la CA subordinada de la Policía Nacional
-Una foto
-La firma digital de los datos identificatívos (hecha por la CA subordinada)

Punto Dos: ¿Cualquiera puede leer mi Pasaporte?
NO ! Para acceder al contenido del pasaporte hace falta una clave de acceso, y esa clave de acceso está impresa en el pasaporte en lo que se conoce como 'Machine Readable Zone' [Mrz] que va impresa en la hoja donde aparece tu nombre y tu foto.
Un ejemplo de un pasaporte Belga:

Entonces, lo que se hace para leer el contenido del pasaporte en los puntos de control, es ponerlo frente a un lector OCR que 'lee' ese campo y lo usa como clave para autenticarse frente al chip RFID y extraer los datos. Evidentemente los datos 'en transito' (Lector RFID <--> Pasaporte) van debidamente cifrados y, si bien puntualmente en algunas implementaciones se encontraron fallos, que yo sepa en España no se ha dado el caso.
Así que, de entrada, el mito de que un señor en el metro con un portátil y un lector obtiene tus datos privados ... bye bye
Punto tres: ¿Se puede clonar los datos de un E-Pasaporte?
Si, una vez eres capaz de leer su contenido es perfectamente posible hacer una copia valida empleando una tarjeta RFID de tipo 'Java Card'.
Pero ojo, una cosa es clonar y otra cosa es ALTERAR esos datos y que permanezcan validos. Toda la información que contiene el chip RFID está firmada digitalmente por la PKI de la policía nacional (tecnología estándar, claves RSA, firmas digitales ...) por tanto, si modificas por ejemplo la foto, a la hora de verificar la información, la verificación saldrá negativa, lógico ¿no?
Y ahora alguien salta: 'Pero yo escuché que habían
clonado un Pasaporte con la foto de Bin Laden' (y además mientras lo dice, se ríe)
Fue un caso que se promovió de una forma especialmente sensacionalista y el hecho, sucedió ... pero si vamos un poco mas allá del titular, el asunto tiene una explicación lógica. Como decíamos antes, todos los datos del pasaporte van firmados digitalmente por una CA, y como bien sabéis, para realizar una verificación de un dato firmado digitalmente, es necesario disponer del certificado del firmante y de la CA raíz. Por ejemplo, todos sabemos que los navegadores contienen un almacén de certificados que permite realizar las verificaciones SSL.
¿ Y que pasa cuando eres la Unión Europea y tienes que realizar una acción coordinada entre múltiples países ? Que la haces mal, en este caso no se habían distribuido los certificados de las CAs raíces de los distintos países miembros a los puntos de fronteras. ¿Resultado? que únicamente se verificaba que el pasaporte tuviera los datos con el formato correcto, de esa forma podías crearte un pasaporte de 'YJ-Land' y al llegar al punto de control, se verificaba únicamente que el pasaporte tuviera tu nombre, dni, etc etc y que hubiera una firma digital, lo que dio lugar al caso 'pasaporte Bin Laden'.
Lo divertido del asunto es que, creo, a día de hoy ese tema no está resuelto pese a que existe
un directorio público en el que 'en teoría' deben estar los certificados de las CAs.
Y ahora que cada cual opine