Online Store

Detección y acceso a NDEF – Etiquetas MIFARE Classic y MIFARE Plus

Detección y acceso a NDEF #

Este capítulo describe cómo se almacenarán y accederán los datos NDEF (por ejemplo, mensaje NDEF) en la etiqueta MIFARE Classic y MIFARE Plus.

El mensaje NDEF que esta nota de aplicación administra dentro de un MIFARE Classic y MIFARE Plus, se almacena dentro de un TLV de mensaje NDEF que se denomina TLV de mensaje NDEF obligatorio o primer mensaje NDEF TLV. El TLV de mensaje NDEF obligatorio es también el TLV de mensaje NDEF encontrado por el procedimiento de detección NDEF (consulte la sección 1. 4.1).

Gestión de NDEF #

Para detectar y acceder a los datos NDEF (por ejemplo, mensaje NDEF) dentro de la etiqueta MIFARE Classic y MIFARE Plus, se utilizará el MAD (consulte la sección 2.4) junto con el GPB de los sectores NFC.

Se ha reservado un identificador de aplicación (AID) del MAD, llamado NFC AID, para identificar sectores con datos NDEF. Un sector con datos NDEF se denomina Sector NFC. Los dos campos de la NFC AID se establecen de la siguiente manera:

el código del clúster de funciones es igual a E1h para identificar el clúster de sectores con datos NDEF, y

el código de aplicación es igual a 03h para identificar el sector NFC con el que está relacionada esta nota de aplicación.

Uno o más sectores NFC PUEDEN estar presentes dentro de una etiqueta MIFARE Classic 1k/4k.

Si hay más de un Sector NFC presente, los Sectores NFC SERÁN contiguos. En el caso de MIFARE Classic 4k o MIFARE Plus con 4 Kbytes, SE CONSIDERARÁ contigua una secuencia de Sectores NFC que incluya el sector MAD 16.

Ejemplos de sectores NFC contiguos son:

  • Sectores NFC del sector 2 al sector 3, y
  • Sectores NFC del sector 1 al sector 39. En este caso, el sector MAD 16 está contenido, pero aún así, como se definió anteriormente, los sectores NFC se consideran contiguos.

Un ejemplo de sectores NFC no contiguos es:

  • el sector 3 y el sector 5 sin el sector 4 son sectores NFC. En este sector de caso, 4 no es un sector NFC, por lo que los dos sectores NFC restantes no son contiguos.

Los datos NDEF SE escribirán a partir del sector NFC con el número de sector más pequeño hasta el más grande.

El byte de uso general (GPB, consulte las secciones 2.1 y 2.3) de cada sector NFC proporciona información sobre el número de versión del modelo de asignación utilizado para almacenar los datos NDEF en MIFARE Classic y MIFARE Plus (consulte la sección 1. 1.1) y el acceso de escritura de los Sectores NFC. GPB SE CODIFICARÁ como se describe en la Tabla 1.

Tabla 1. Estructura de bytes de propósito general

msb Bit 7  Bit 6  Bit 5  Bit 4  Bit 3  Bit 2  Bit 1 lsb Bit 0
Asignación del número de versión Condiciones de acceso
Número de versión principal Número de versión secundaria Condición de acceso de lectura Condición de acceso de escritura

Los 4 bits menos significativos (lsb) del GPB indican las condiciones de acceso del Sector NFC:

  • El bit 2-3 indica la condición de acceso de lectura:
    • El valor 00b indica el acceso de lectura concedido sin ninguna seguridad.
    • El valor 11b indica que no se concede ningún acceso de lectura.
    • Cualquier otro valor indica que las operaciones de seguridad del proveedor son necesarias para conceder acceso de lectura, es decir, propietario.
  • El bit 0-1 indica la condición de acceso de escritura:
    • El valor 00b indica el acceso de escritura concedido sin ninguna seguridad.
    • El valor 11b indica que no se concede ningún acceso de escritura.
    • Cualquier otro valor indica que las operaciones de seguridad del proveedor son necesarias para conceder acceso de escritura, es decir, propietario.

Los 4 bits más significativos (msb) indican el número de versión de asignación (consulte la sección 1. 1.1):

  • El bit 7-6 (los 2 msb del campo de número de versión de asignación) indica el número de versión principal.
  • El bit 5-4 (el campo 2 lsb del número de versión de asignación) indica el número de versión secundario.

Dentro de una etiqueta MIFARE Classic y MIFARE Plus, los sectores NFC que contienen el mensaje NDEF obligatorio TLV DEBEN configurarse con una condición de acceso de lectura igual a 00h y condiciones de acceso de escritura iguales a 00b o 11b (consulte la sección 1. 3).

El dispositivo Reader que implementa esta nota de aplicación DEBE administrar las etiquetas MIFARE Classic y MIFARE Plus con un número de versión principal igual a 01b y el número de versión menor igual a 00b, es decir, asignando la versión 1.0.

Tratamiento de versiones #

El GPB de los sectores NFC contiene el número de versión de asignación del modelo de asignación aplicado de la etiqueta MIFARE Classic 1k/4k o MIFARE Plus. El número de versión de asignación se indica con dos números: número de versión principal y número de versión secundaria.

El manejo de los diferentes números de versión mayor y menor de la etiqueta MIFARE Classic o MIFARE Plus (llamada MSVNo) y la implementada en el dispositivo Reader (llamada NFCDevVNo) se explica en los 4 casos de la Tabla 12.

Tabla 12. Manejo de los números de versión del documento de mapeo

No Caso de número de versión Manejo
1 NFCDevVNo mayor es igual a MSVNo principal, y

NFCDevVNo menor es mayor o igual que MSVNo menor

El dispositivo lector DEBERÁ acceder a la etiqueta MIFARE Classic o MIFARE Plus y DEBERÁ utilizar todas las características del documento de asignación aplicado a esta etiqueta MIFARE Classic o MIFARE Plus.
2 Si NFCDevVNo mayor es igual a MSVNo mayor, y

NFCDevVNo menor es inferior a MSVNo menor

Posiblemente no se pueda acceder a todas las funciones de la etiqueta MIFARE Classic o MIFARE Plus. El dispositivo Lector UTILIZARÁ todas sus funciones y DEBERÁ acceder a esta etiqueta MIFARE Classic o MIFARE Plus.
 

No Caso de número de versión Manejo
3 Si NFCDevVNo principal es más pequeño que MSVNo principal Formato de datos incompatible. El dispositivo Reader no puede comprender los datos de la etiqueta MIFARE Classic o MIFARE Plus. El dispositivo lector DEBERÁ rechazar esta etiqueta MIFARE Classic o MIFARE Plus.
4 Si NFCDevVNo principal es más grande que MSVNo principal El dispositivo Reader puede implementar el soporte para versiones anteriores de esta especificación además de su versión principal. En caso de que el dispositivo Lector tenga el soporte de la versión anterior, DEBERÁ acceder a la etiqueta MIFARE Classic o MIFARE Plus. Por el contrario, en caso de que el dispositivo Reader no tenga soporte de la versión anterior, DEBERÁ rechazar la etiqueta MIFARE Classic o MIFARE Plus.

Almacenamiento NDEF #

El formato de datos del mensaje NDEF se define en [NDEF]. El mensaje NDEF SE almacenará dentro del campo de valor del TLV del mensaje NDEF (ver sección 2.6.1) utilizando uno o más sectores NFC. Los sectores NFC son identificados por la NFC AID en el sector o sectores MAD.

Ciclo vital #

Los sectores NFC de una etiqueta MIFARE Classic o MIFARE Plus PUEDEN estar en los siguientes estados INICIALIZADO, LECTURA/ESCRITURA o SOLO LECTURA. Los Sectores NFC ESTARÁN en un solo estado en un momento específico en el tiempo. El estado SE reflejará en el contenido de los Sectores NFC. El estado no está relacionado con un solo sector NFC, sino con todos los sectores NFC juntos. Los estados se describen en las siguientes secciones.

Si la etiqueta MIFARE Classic o MIFARE Plus contiene solo sectores NFC, el estado de los sectores NFC se denomina estado de la etiqueta MIFARE Classic o MIFARE Plus. En la siguiente descripción, el estado de la etiqueta MIFARE Classic o MIFARE Plus se confunde con (es decir, igual a) el estado de los sectores NFC.

Cada estado tiene sus operaciones válidas llamadas transiciones o cambios de estado. Las transiciones de estado solo son relevantes para los dispositivos lectores, que son capaces de escribir etiquetas MIFARE Classic o MIFARE Plus.

Los diferentes estados se identifican comparando el GPB del Sector NFC donde comienza el TLV de mensaje NDEF obligatorio y los campos del TLV de mensaje NDEF obligatorio. Tenga en cuenta que los bits de acceso del remolque del sector descritos en la sección 2.5 no se utilizan en esta nota de aplicación para identificar el estado específico.

Si la etiqueta MIFARE Classic o MIFARE Plus no está en un estado válido de acuerdo con esta nota de aplicación, se ignorarán los datos NDEF de la etiqueta MIFARE Classic o MIFARE Plus en todos los sectores NFC. Las razones PUEDEN ser:

  • Sectores NFC no contiguos.
  • No hay sectores NFC presentes dentro de la etiqueta, es decir, ningún sector es indicado por el MAD utilizando el NFC AID.
  • Un desajuste entre la longitud total de los bloques TLV y la longitud real del área de datos.
  • Bloque TLV no válido.

Estado INICIALIZADO #

Una etiqueta MIFARE Classic o MIFARE Plus SE DETECTARÁ en el estado INICIALIZADO cuando:

        • el GPB se establece como se describe en la sección 1. 1, en particular con el bit 0-1 igual a 00b y el bit 2-3 igual a 00b (acceso de lectura y escritura concedido),
        • los sectores NFC contienen un mensaje NDEF TLV (el obligatorio), y
        • el campo de longitud del TLV de mensaje NDEF obligatorio es igual a 00h.

En el estado INICIALIZADO, el dispositivo NFC PUEDE modificar el contenido del mensaje NDEF obligatorio TLV escribiendo un mensaje NDEF en él. El anexo D en el capítulo 10, el anexo E en el capítulo 0 y el anexo F en el capítulo 12 muestran dos ejemplos de MIFARE Classic 1k, MIFARE Plus con 2 Kbytes y MIFARE Classic 4k o MIFARE Plus con 4 Kbytes respectivamente, todos en el estado INICIALIZADO.

Estado DE LECTURA/ESCRITURA #

Una etiqueta MIFARE Classic o MIFARE Plus SE DETECTARÁ en el estado READ/WRITE cuando:

        • el GPB se establece como se describe en la sección 1. 1, en particular con el bit 0-1 igual a 00b y el bit 2-3 igual a 00b (acceso de lectura y escritura concedido),
        • el TLV de mensaje NDEF obligatorio está presente en los sectores NFC, y
        • el campo de longitud del TLV de mensaje NDEF obligatorio es diferente de cero.

El estado DE LECTURA/ESCRITURA SE ALCANZARÁ a través del estado INICIALIZADO. En este estado, el dispositivo NFC PUEDE modificar el contenido del mensaje NDEF obligatorio TLV escribiendo un mensaje NDEF en él.

Estado de SOLO LECTURA #

Una etiqueta MIFARE Classic o MIFARE Plus SE DETECTARÁ en el estado DE SOLO LECTURA cuando:

        • el GPB se establece como se describe en la sección 1. 1, en particular con el bit 0-1 igual a 11b y el bit 2-3 igual a 00b (no se concede acceso de escritura, solo se concede acceso de lectura),
        • el TLV de mensaje NDEF obligatorio está presente en los sectores NFC, y
        • el campo de longitud del mensaje obligatorio NDEF TLV SERÁ diferente de cero.

En el estado de SOLO LECTURA, todos los sectores NFC tienen acceso de solo lectura concedido. La etiqueta MIFARE Classic o MIFARE Plus permanece en un estado de SOLO LECTURA durante el ciclo de vida restante.

Descripción de la secuencia de comandos #

En esta sección, se describen varios procedimientos para administrar los datos NDEF, por ejemplo, el TLV de mensaje NDEF obligatorio dentro de los sectores NFC. Los diferentes cambios de estado o transiciones entre los estados de la etiqueta MIFARE Classic o MIFARE Plus también se muestran en detalle.

Cada sector involucrado en los procedimientos DEBERÁ autenticarse utilizando la operación de autenticación antes de leerla o escribirla. La clave pública A se seleccionará en función del tipo de sector, es decir, el sector MAD o el sector NFC.

Procedimiento de detección de NDEF #

El procedimiento de detección NDEF SE utilizará para detectar el mensaje NDEF obligatorio (ver [NDEF]) dentro de una etiqueta MIFARE Classic o MIFARE Plus.

El procedimiento de detección de NDEF se basa en la comprobación de:

        • el sector o sectores MAD,
        • el sector o sectores NFC, y
        • el TLV de mensaje NDEF obligatorio que contiene el mensaje NDEF.

Como ya se mencionó, el TLV de mensaje NDEF encontrado por el procedimiento de detección de NDEF se denomina TLV de mensaje NDEF obligatorio o primer TLV de mensaje NDEF. Cuando MIFARE Classic o MIFARE Plus está en el estado READ/WRITE o READ-ONLY, este mensaje NDEF TLV contiene un mensaje NDEF. En el estado INICIALIZADO, el mensaje NDEF TLV está vacío.

NDEF graph(1) Después de que falla una operación de autenticación o lectura, MIFARE Classic o MIFARE Plus ya no responde a ningún comando y debe reactivarse y seleccionarse para continuar con el procedimiento de detección de NDEF.

Para ejecutar el procedimiento de detección NDEF, el dispositivo lector (o dispositivo NFC) DEBERÁ realizar las siguientes operaciones (consulte también la Fig. 6) en el MIFARE Classic o MIFARE Plus:

  1. Comprobar la existencia de los sectores MAD.
  2. Autenticar y leer los sectores MAD: sector 0 para MAD1, o sector 0 y 16 para MAD2 mediante la operación Leer.
  1. Si dentro del MAD se encuentran uno o más AID(s) iguales a los NFC AID relacionados con uno o más sectores contiguos, vaya al punto 4. De lo contrario, no se ha detectado NFC AID en la etiqueta MIFARE Classic o MIFARE Plus, y la etiqueta MIFARE Classic o MIFARE Plus no está en un estado válido.
  2. Para cada sector NFC, realice las siguientes operaciones desde el número de sector más pequeño hasta el más alto:
    1. Autentique y lea el tráiler sectorial del sector NFC utilizando la clave pública A para los sectores NFC (consulte la Tabla 6).
    2. Si las operaciones de autenticación y lectura se realizan correctamente, compruebe el tráiler sectorial del sector NFC. De lo contrario, si la autenticación o la operación de lectura fallan, se encuentra un sector NFC propietario (consulte la descripción del sector NFC a continuación) y luego vaya al punto f.
    3. Si los bits 4-7 del GPB describen el número de versión correcto de acuerdo con las reglas definidas anteriormente, vaya al elemento d. De lo contrario, detenga el procedimiento porque la etiqueta MIFARE Classic o MIFARE Plus no está en un estado válido.
    4. Si el valor del campo de condición de acceso de lectura (bit 2-3) del GPB es igual a 00b y el valor de la condición de acceso de escritura archivada (bit 0-1) del GPB es igual a 00b o 11b, lea los bloques de datos del sector NFC relativo mediante la operación de lectura especificada en la sección 5.1.3, busque los TLV de mensaje NDEF, y vaya al punto e. De lo contrario, si el valor del campo de acceso de lectura del GPB es diferente de 00h o el valor de la condición de acceso de escritura archivada (bit 0-1) del GPB es diferente de 00b y 11b, se encuentra un sector NFC propietario (consulte la descripción del sector NFC a continuación) y luego vaya al elemento f.
    5. Si se encuentra un TLV de mensaje NDEF, este es el TLV de mensaje NDEF obligatorio (es decir, el primero) y luego vaya al punto 5. De lo contrario, si no se encuentra ningún TLV de mensaje NDEF, vaya al punto f.
    6. Si está disponible, compruebe el siguiente sector NFC y vaya al punto a. De lo contrario, si no hay más sectores NFC disponibles, detenga el procedimiento porque no se encuentra ningún TLV de mensaje NDEF. La etiqueta MIFARE Classic o MIFARE Plus no está en un estado válido.
  3. Si el campo de longitud del TLV de mensaje NDEF obligatorio es diferente de cero, el mensaje NDEF (consulte [NDEF]) se detecta en la etiqueta MIFARE Classic o MIFARE Plus y el dispositivo Lector PUEDE utilizar el procedimiento de lectura NDEF o el procedimiento de escritura NDEF. Si el campo de longitud es igual a cero, no se detecta ningún mensaje NDEF en la etiqueta MIFARE Classic o MIFARE Plus y el dispositivo Reader PUEDE utilizar el procedimiento de escritura NDEF (la etiqueta puede estar en estado INICIALIZADO).

El procedimiento de detección de NDEF no se relaciona con un mensaje NDEF válido. Lee la longitud del mensaje NDEF desde el campo de longitud del TLV del mensaje NDEF, pero no analiza el mensaje NDEF.

El dispositivo Lector IGNORARá y saltará sobre los Sectores NFC propietarios. El sector NFC propietario se define como un sector NFC que es: ya sea no autenticable con la clave pública A para sectores NFC o el valor del campo de acceso de lectura del GPB es diferente de 00b o el valor de condición de acceso de escritura archivada (bit 0-1) del GPB es diferente de 00b y 11b.

Cada vez que falla una operación de autenticación, una operación de lectura o una operación de escritura, mifare classic o MIFARE Plus permanece en silencio y ya no responde a ninguna

Comandos. En esta situación, para continuar con el procedimiento de detección de NDEF, el MIFARE Classic o MIFARE Plus debe reactivarse y seleccionarse.

Procedimiento de lectura NDEF #

El dispositivo Lector utiliza el procedimiento de lectura NDEF para leer el mensaje NDEF desde el TLV de mensaje NDEF obligatorio. Antes de leer el mensaje NDEF, se ejecutará el procedimiento de detección NDEF y la etiqueta MIFARE Classic o MIFARE Plus DEBERÁ estar en un estado válido.

Utilizando el procedimiento de lectura NDEF, el dispositivo lector DEBE leer todo el mensaje NDEF del TLV de mensaje NDEF obligatorio utilizando una o más operaciones de lectura. La longitud del mensaje NDEF que se va a leer se proporciona desde el campo de longitud del TLV de mensaje NDEF obligatorio.

Si el TLV de mensaje NDEF obligatorio se almacena en uno o más sectores NFC, el dispositivo lector DEBERÁ poder autenticar todos estos sectores con la clave pública A para sectores NFC (consulte la Tabla 6). En caso de que el procedimiento de autenticación falle, la etiqueta MIFARE Classic o MIFARE Plus no está en un estado válido.

Procedimiento de escritura NDEF #

El dispositivo Lector utilizará el Procedimiento de Escritura NDEF para escribir el TLV de Mensaje NDEF obligatorio que contenga un Mensaje NDEF dentro de una etiqueta MIFARE Classic o MIFARE Plus.

El procedimiento de escritura NDEF utiliza las operaciones de lectura y escritura (consulte las secciones 5.1.3 y 5.1.4).

Para escribir el Mensaje NDEF, la etiqueta MIFARE Classic o MIFARE Plus DEBE estar en estado INICIALIZADO o LECTURA/ESCRITURA, es decir, el Mensaje NDEF obligatorio TLV YA estará presente dentro de la etiqueta MIFARE Classic o MIFARE Plus.

NDEF write procedure

Para ejecutar el procedimiento de escritura NDEF, el dispositivo lector DEBERÁ realizar las siguientes operaciones en la etiqueta MIFARE Classic o MIFARE Plus:

  1. Utilice el procedimiento de detección de NDEF (consulte la sección 1.4.1) para encontrar el TLV de mensaje NDEF obligatorio. Si se encuentra el TLV de mensaje NDEF obligatorio, vaya al punto 2. De lo contrario, si no se encuentra ningún TLV de mensaje NDEF, finalice el procedimiento.
  2. Si el tamaño de memoria disponible para el TLV del mensaje NDEF es igual o mayor que el tamaño del mensaje NDEF, las operaciones siguientes SE realizarán en el siguiente orden utilizando una o más operaciones de escritura:
    1. el campo de longitud del TLV de mensaje NDEF obligatorio TENDRÁ una longitud de un byte y su valor SE establecerá en 00h,
    2. el nuevo mensaje NDEF SE escribirá en el campo de valor del mensaje NDEF obligatorio TLV, y
    1. el campo de longitud del mensaje NDEF obligatorio TLV se actualizará con la longitud del mensaje NDEF.

De lo contrario, si no hay suficiente espacio de memoria disponible en la etiqueta MIFARE Classic o MIFARE Plus, el mensaje NDEF NO se escribirá en la etiqueta MIFARE Classic o MIFARE Plus.

  1. Si el elemento 2 se realiza correctamente, el dispositivo lector DEBERÁ escribir el TLV de Terminator en el siguiente byte después del TLV del mensaje NDEF mediante la operación de escritura.El TLV de Terminator NO se escribirá cuando el TLV de mensaje NDEF obligatorio finalice en el último byte del último sector NFC disponible, es decir, el sector NFC con el mayor número de sectores.

En relación con el punto 2 de la operación. b, la escritura del campo de valor del mensaje NDEF encontrado TLV DEJARÁ 1 o 3 bytes para el campo de longitud que se necesitan para el siguiente punto de operación 2. c para almacenar la longitud del mensaje NDEF.

El procedimiento de escritura NDEF no cambia la posición inicial del TLV de mensaje NDEF obligatorio.

El procedimiento de escritura NDEF PUEDE escribir el mensaje NDEF TLV en sectores NFC contiguos, excepto el sector MAD 16 en caso de que se utilice MIFARE Classic 4k y MIFARE Plus con 4 Kbytes.

El tamaño de memoria disponible para el TLV de mensaje NDEF obligatorio se calcula a partir de la posición del TLV de mensaje NDEF obligatorio como la suma de:

  • el espacio de memoria libre del sector NFC que contiene el mensaje NDEF TLV obligatorio. El espacio de memoria libre comienza desde el principio del TLV de mensaje NFC obligatorio y termina al final del sector NFC, y
  • todo el espacio de memoria de los sectores NFC después del sector que contiene el mensaje NDEF obligatorio TLV. Los siguientes sectores NFC PUEDEN tener un tamaño de 48 bytes (3 bloques) o 240 bytes (15 bloques). La información sobre los siguientes sectores NFC disponibles se recuperará de los sectores MAD.

Para la operación de escritura, primero se necesita la lectura de bloques no completamente actualizados cuando, por ejemplo, el TLV de mensaje NDEF comienza en el medio de un bloque.

Cambios de estado #

En esta sección se describen los posibles cambios de estado de la etiqueta MIFARE Classic o MIFARE Plus. La Fig. 8 muestra los estados y el cambio de estado (también llamado transición) entre ellos. En esta nota de aplicación, la única transición especificada es de INICIALIZADO a LECTURA/ESCRITURA.

El dispositivo Reader PUEDE emitir una etiqueta MIFARE Classic o MIFARE Plus en el estado INICIALIZADO, estado READ/WRITE, o incluso en un estado READ-ONLY.life cycle transaction

La transición de INICIALIZADO a LECTURA/ESCRITURA #

Para realizar la transición de INICIALIZADO a LECTURA/ESCRITURA, el dispositivo Lector DEBERÁ realizar la siguiente operación: un TLV de mensaje NDEF no vacío (campo de longitud diferente de cero) REEMPLAZARÁ el TLV de mensaje NDEF vacío anterior utilizando el procedimiento de escritura NDEF. El mensaje NDEF TLV es el obligatorio detectado utilizando el procedimiento de detección NDEF.

El mensaje NDEF vacío PUEDE utilizarse para reemplazar un mensaje NDEF no vacío.