Llega Hex NFC 1.0.2: mejoras para pasaportes y DESFire

Una puesta al día sobre los avances de Hex NFC y sus planes de futuro, con el anuncio de una próxima versión de la app para Android.

Matthew Scott6 min de lectura
Una imagen de portada que muestra, de izquierda a derecha, una página de pasaporte, un microchip y una pegatina NFC.

¡Descarga Hex NFC gratis desde el App Store! Gratis para siempre, con transparencia y sin publicidad de terceros.

Han pasado unas tres semanas desde el lanzamiento de Hex NFC y ha sido un éxito muy alentador. A la gente le está gustando mucho, y estamos teniendo un número de descargas diarias bastante decente para una app NFC en un mercado tan saturado.

Algunos usuarios entusiastas nos han hecho comentarios muy útiles y han probado con la app muchos chips NFC poco comunes, lo que ha sacado a la luz algunos fallos en unas cuantas áreas.

¡Una contribución a los costes de desarrollo!

Antes de seguir con eso, quiero hacer una mención al usuario que donó 5 AUD para los costes de desarrollo. Cuando estaba desarrollando la app, incluí los costes de desarrollo más que nada para demostrar que construirla había supuesto un esfuerzo real, y que no era un simple trabajo rápido y fácil hecho a base de vibe coding. Mi prometida se mostraba bastante escéptica por aquel entonces, y venía a decir: "¿Por qué iba alguien a pagar por una app gratuita?". Reconozco que yo también tenía mis dudas. Por eso es un cumplido enorme que alguien, al otro lado del mundo, valorara tanto nuestro trabajo como para aportar dinero, fuera la cantidad que fuera. Nos pusimos a bailar por toda la casa de la emoción. Así que, de mi parte y de la de Hex Pro, un "gracias" enorme.

La vuelta al mundo con pasaportes y permisos de viaje

Algunos usuarios tenían muchas ganas de ver qué salía al escanear documentos de viaje especialmente poco comunes. Tuve la suerte de que me contaran los resultados y pude identificar varias mejoras que se podían añadir a la app.

El proceso de descifrado

Para los no iniciados: los pasaportes electrónicos (ISO/IEC 14443) usan un sistema de cifrado que requiere el número de pasaporte, la fecha de nacimiento y la fecha de caducidad del documento. Es una solución evidente al problema de que un estafador cualquiera te robe a escondidas los datos de identidad del pasaporte cuando viajas por otro país.

Hex NFC se desarrolló con campos sencillos para introducir texto y fechas. Entre los principios fundamentales de Hex Pro están la privacidad de los usuarios y los derechos del consumidor. Me esfuerzo por asegurarme de que solo pidamos los permisos que de verdad necesitamos, y de que seamos comedidos con la analítica y el seguimiento (por ejemplo, elegimos Umami autoalojado en lugar de Google Analytics). Por ese motivo, en un principio dejé fuera de la app el permiso de la cámara. Los usuarios pidieron con insistencia poder escanear con la cámara los datos de su pasaporte para facilitar el proceso de descifrado. Así que me puse a implementarlo lo antes posible, y me alegro muchísimo de haberlo hecho. Es rápido y ultrafiable, así que ¡escanea tu pasaporte y pruébalo!

Documentos poco comunes

Los usuarios con los que hablé pusieron sobre la mesa algunos documentos especialmente interesantes. El primero era un pasaporte de China y el segundo, un "documento de viaje" de Taiwán que, al parecer, tiene exactamente la misma tecnología y la misma configuración que un pasaporte normal (a saber por qué). Y los siguientes eran permisos de viaje que se usan para desplazarse entre Macao y Hong Kong.

El pasaporte de China se escaneó perfectamente, sin ningún problema. El documento de viaje de Taiwán tenía algunos pequeños problemas de desplazamiento de datos que hacían que los datos de unos campos se colaran en otros, y se solucionaron fácilmente.

Fue ese tercer grupo el que dio resultados muy interesantes. A decir verdad, los permisos de viaje se escaneaban como si fueran pasaportes, pero escupían un auténtico galimatías. Aun así, nos dieron datos excelentes para que mi fiel agente de programación y yo averiguáramos cómo interpretarlos.

Eso me llevó a enfrascarme en una investigación sin fin sobre los países que tienen documentos de viaje fuera del estándar. Resulta que la mayoría de esas extrañas anomalías aparecen en la Unión Europea, en concreto en Bélgica, Portugal y posiblemente España, donde algunos números llegan a tener hasta 12 caracteres en lugar de los 9 del estándar.

Compatibilidad mejorada con DESFire

A la versión 1.0.0 le faltaba una función: la configuración de la aplicación NDEF y la eliminación de la aplicación NDEF. Sin ella, los chips DESFire que llegan directamente del fabricante no traen instalado un capability container de aplicación. En esencia, no vienen formateados para usarse, a diferencia de chips NFC más comunes como el NTAG213.

Hex NFC ya permite la configuración de la aplicación NDEF y también su eliminación. Es esta última función la que resulta especialmente útil y poco habitual. Con ella puedes devolver tu DESFire a su estado de fábrica, y así queda libre para darle el uso que necesites más adelante. Solo tienes que escanear tu DESFire, ir a Operaciones, bajar hasta Acciones peligrosas y tocar Formatear. Encontrarás más información en la documentación.

Localización y documentación mejoradas

La localización ha mejorado en todos los frentes: se han elegido mejor las palabras y se han traducido algunas partes que todavía estaban solo en inglés. Ahora mismo, la app está localizada en los idiomas que admite Hex Pro:

Toda la documentación está traducida por completo y disponible en el sitio web en todos esos idiomas, incluidas todas las imágenes y capturas de pantalla (una tarea que de verdad lleva muchísimo tiempo).

Lo que viene: un adelanto de la versión 1.0.3

¡Redoble de tambores, por favor! Sí, Hex NFC llega a Android. ¿Cuándo? Muy pronto™. He comprado tres dispositivos Android de distintas marcas y prestaciones, lo que debería darnos una cobertura de dispositivos considerable. El desarrollo ya avanza a toda máquina, con algunos cambios realmente importantes que también afectarán a la versión 1.0.3 para iOS.

De Swift a Rust, una historia de simuladores

La gran noticia es que los simuladores se están pasando a Rust para facilitar el desarrollo multiplataforma. Los simuladores NFC están diseñados para imitar el comportamiento real de los chips NFC de silicio. Gracias a ellos, el código de la app Hex NFC se puede probar rápidamente contra la lógica de cada chip compatible. Primero se desarrollan a partir de las hojas de datos disponibles en línea y después mediante rigurosas pruebas de banco en el mundo real. Estas últimas ajustan los simuladores al comportamiento real del silicio y garantizan que Hex NFC gestione con precisión todos los escenarios posibles.

Pasar todos los simuladores a Rust significa que se podrán usar tanto con el código de la app de iOS como con el de Android, que serán muy distintos internamente. Así se garantiza un comportamiento coherente entre plataformas y se reduce la probabilidad de regresiones con futuras modificaciones.

Además del paso a Rust, también he querido ampliar la gama de simuladores con chips que iOS no admite pero Android sí, y seguir completando y mejorando los simuladores que ya existen. Para ello he comprado una buena variedad de etiquetas nuevas para hacer pruebas, por un total de unos 160 AUD. He actualizado la página de costes de desarrollo en el sitio web de las apps. Pido encarecidamente a cualquiera que valore este trabajo que haga una contribución para ayudar a sostener el desarrollo, y también que deje una valoración de 5 estrellas y una reseña en el App Store.

Trabajo duro, buen trabajo

Estamos trabajando muchísimo para ofrecerte el software de la mejor calidad que somos capaces de hacer. Tengo muchas ganas de ver lo que está por venir, y espero que nos tengas en cuenta para nuestras próximas apps, como Sol y Nepali Companion, cuyo lanzamiento está previsto para este mismo mes.