Nuestro team de trabajo ha estado por horas buscando para darle soluciones a tus interrogantes, te compartimos la respuestas y esperamos serte de mucha apoyo.
Solución:
Una etiqueta NFC (o en realidad una etiqueta NFC Forum que implementa una de las cinco especificaciones de operación de etiquetas NFC Forum) es una memoria de datos simple sin ningún mecanismo de seguridad (aparte de bloquear la memoria para que sea de solo lectura). Estas etiquetas están destinadas a almacenar datos de lectura libre en formato NDEF. No están estandarizados los mecanismos de autenticación o protección contra la lectura del contenido de la etiqueta (o la copia del contenido de la etiqueta a otras etiquetas).
Sin embargo, algunos productos de etiquetas existentes implementan características de seguridad adicionales que van más allá de lo especificado por el Foro NFC.
El mecanismo más simple es una “contraseña” corta (normalmente un valor de 32 bits). Para la autenticación, esta contraseña se transmite a la etiqueta en texto sin cifrar y la etiqueta reconoce / rechaza la autenticación. (Tenga en cuenta que la transmisión en texto no cifrado a través de NFC significa que cualquiera que olfatee la comunicación podrá obtener la contraseña). Algunas etiquetas que admiten este tipo de protección con contraseña pueden usar la autenticación para cambiar un área de memoria definida entre sin acceso, acceso de solo lectura y acceso de lectura / escritura.
- Los productos que implementan este tipo de validación de contraseña son, por ejemplo, Infineon SLE66R01P, NXP MIFARE Ultralight EV1 y NXP NTAG21x.
Un enfoque más sofisticado es la autenticación mutua de desafío-respuesta utilizando un key. En comparación con una contraseña simple en texto no cifrado, esto significa que un fisgón pasivo no puede descubrir la contraseña compartida. key. Al igual que con la contraseña, el estado de autenticación puede usarse para cambiar un área de memoria definida entre sin acceso, acceso de solo lectura y acceso de lectura / escritura con la mayoría de los productos de etiquetas existentes. Sin embargo, no todos enlazan criptográficamente el acceso a la memoria y la autenticación.
-
Los productos que implementan una autenticación mutua de tres pasos son, por ejemplo, NXP MIFARE Classic *, NXP MIFARE Ultralight C, NXP MIFARE DESFire (EV1), tarjetas Sony FeliCa.
*) Tenga en cuenta que se sabe que el protocolo de autenticación y encriptación patentado de MIFARE Classic está roto desde 2008. Además, MIFARE Classic solo es compatible con dispositivos Android con un chipset NFC de NXP.
Cuando se trata de implementar cualquier tipo de autenticación en Android, debe tener en cuenta lo siguiente:
-
Si aún desea beneficiarse del inicio automático de su aplicación a través de un mensaje NDEF (ya sea un registro personalizado que declara en el filtro de intención o un Registro de aplicación de Android), debe tener una memoria de lectura libre que contenga ese mensaje NDEF. Dado que la protección / autenticación con contraseña no es parte de las especificaciones del Foro NFC, Android no puede autenticarse en la etiqueta (Android no tendría el derecho key/ contraseña de todos modos). En consecuencia, el área de memoria NDEF (para etiquetas con memoria plana direccionable linealmente, normalmente son los primeros N bloques de la memoria de etiquetas) debe ser legible sin autenticación.
-
Incluso si no usa filtros de intención NFC en el manifiesto de la aplicación y solo usa el sistema de despacho de primer plano (o la API en modo lector), es posible que desee usar NDEF para descubrir / filtrar por tu etiquetas
-
No puede utilizar la capa de abstracción NDEF (es decir, la
Ndef
/NdefFormatable
clases) para acceder al área de memoria protegida. En su lugar, debe intercambiar los comandos de bajo nivel específicos de la plataforma de etiquetas utilizando una de las clases de tecnología de etiquetas (NfcA
, …,IsoDep
). Además, no intente mezclar entre varias clases de etiquetas (por ejemplo, usandoNfcA
para enviar el comando de autenticación yNdef
para leer los datos posteriormente). Si bien esto funciona en algunos dispositivos, no funcionará en la mayoría de los dispositivos, ya que restablecen la comunicación con la etiqueta al cambiar entre estos objetos de comunicación. -
Existen problemas conocidos con el mecanismo de verificación de presencia de etiquetas en algunos dispositivos Android (principalmente antes de Android 5) que pueden interferir con la autenticación (es decir, la verificación de presencia puede enviar comandos entre los comandos de autenticación que provocan fallas de autenticación). Este problema se puede solucionar con la API en modo lector.
-
Finalmente, tenga en cuenta que si almacena la contraseña / autenticación key dentro de una aplicación, un atacante podría fácilmente realizar ingeniería inversa en su aplicación para obtener la key.
Algunas etiquetas como MIFARE DESFire admiten de forma nativa contraseñas / cifrado como usted describe. Recrear esta funcionalidad en los tipos más comunes de etiquetas (Topaz / MIFARE Ultralight, etc.) es intrínsecamente imposible ya que las etiquetas NFC no tienen protecciones integradas para la copia de sus datos (por diseño). Potencialmente, podría cifrar sus datos antes de que se codifiquen, pero esto requeriría que la herramienta que decodifica los datos esté al tanto del método de cifrado (probablemente una aplicación independiente, separada del sistema operativo Android, por ejemplo). Las etiquetas más baratas, como usted dice, solo se pueden hacer de manera permanente de solo lectura.
En otras palabras, más Las etiquetas NFC no son compatibles con lo que está tratando de lograr, pero existen etiquetas (que son considerablemente más caras) que admiten mayores cantidades de datos y herramientas como el cifrado basado en contraseñas.
Como MIFARE DESFIRE se adhiere a la norma ISO 14443-4 y, asumiendo que está usando Android, puede hacer uso de la IsoDep
métodos. Para obtener más información sobre cómo leer / escribir contraseñas, etc., consulte este artículo relacionado: ¿Qué tan bien es compatible la API NFC de Android con Mifare Desfire?
Sección de Reseñas y Valoraciones
Tienes la posibilidad dar recomendación a este enunciado si lograste el éxito.