8 Comentários

RFID – Cartões Mifare

A tecnologia RFID é muito bem conhecida e amplamente utilizada. Estamos em contato com ela nos sistemas de transporte público, identificação e controle de acesso, controle de cargas, controle de animais, cartões de pagamento, e muitas outras formas mais. Mas nem sempre conhecemos como o RFID funciona, até pela ampla gama de possibilidades. Para isso podemos seguir a fantástica sequência de artigos do Alessandro Cunha e do Henrique Puhlmann aqui no Embarcados (RFID, Etiquetas RFID e NFC). Hoje iremos conhecer um pedaço desse universo, falaremos sobre os chips Mifare desenvolvidos pela NXP.

Chips Mifare

A linha de chips Mifare foi desenvolvida para atender a demandas por sistemas RFID na faixa de 13,56 MHz. Essa linha cresceu muito e hoje é uma das mais usadas para cartões e tags. Os chips foram criados atendendo a ISO-14443, norma que padroniza a tecnologia de cartões de identificação por proximidade.

Os chips Mifare são utilizados na faixa HF (High Frequency) da tecnologia RFID, mais precisamente na frequência de 13,56 MHz. Funcionam para distâncias de até 10 cm, necessitando apenas de uma antena. Eles podem estar contidos em cartões, tags, pulseiras, e mais uma infinidade de dispositivos, inclusive implantados em animais.

Tipos de chips RFID Mifare.
Figura 1 – Tipos de chips Mifare.

Internamente, os chips são compostos por uma série de blocos, onde cada um tem sua função para o seu perfeito funcionamento. Os principais blocos são:

  • Bloco de RF: Composto por sistemas de modulação e demodulação do sinal, regulador de tensão, Power On Reset (POR) e gerador de clock.
  • Anticolisão: Atendendo a ISO-14443, esse sistema permite fazer a seleção de um único cartão, mesmo que vários estejam dentro do campo do leitor.
  • Unidade Lógica: Responsável por controlar os processos lógicos dentro do chip, como solicitar autenticação, leitura e escrita na memória, controlar acesso aos dados, gerenciar os comandos, etc.
  • Unidade de criptografia: Responsável pela autenticação da comunicação através do sistema CRYPTO1, desenvolvido pela NXP para utilização nos chips Mifare.
  • EEPROM: Memória interna do chip onde os dados são gravados e lidos.
Diagrama de blocos dos chips Mifare
Figura 2 – Diagrama de blocos dos chips Mifare.

Estrutura de memória

O chips comtemplam uma memória EEPROM interna, as capacidades mais comuns são de 1KB, 2KB e 4KB. Internamente as memórias são divididas em setores, os setores divididos em blocos, e cada bloco tem 16 bytes. As memórias de 4KB são divididas em 40 setores, alguns com 4 blocos e outros com 16 blocos. Os chips de 2KB são compostos por 32 setores, onde cada setor é composto por 4 blocos. As memórias de 1KB contêm 16 setores onde cada setor comporta 4 blocos. Abaixo vemos a estrutura interna de uma memória de 1KB.

Estrutura da memória de um chip Mifare de 1KB.
Figura 3 – Estrutura da memória de um chip Mifare de 1KB.

Alguns slots de memória no cartão são para uso específico de funcionalidades do chip, vamos nos aprofundar um pouco mais nesses espaços de memória.

Manufacturer block

O primeiro bloco do primeiro setor é chamado manufacturer block, reservado para armazenar algumas informações do fabricante. Cada chip tem um número de série próprio, podendo ser de 4 ou 7 bytes, indicado pelos primeiros bytes no manufacturer block.

Estrutura do manufacturer block de um cartão Mifare.
Figura 4 – Estrutura do manufacturer block de um cartão Mifare.

Data Blocks

Os 3 primeiros blocos de cada setor (0 a 2) são para armazenamento de dados (exceto o bloco 0 do setor 0), podendo ser configurados como value blocks ou read/write blocks. Os read/write blocks, como o nome sugere, são blocos para leitura e escrita de dados. Já os value blocks foram pensados para serem utilizados em sistemas que envolvem contagem de crédito, pois também oferecem as funções de incremento e decremento de valores, além de restauração e transferência.

Tanto o modo de funcionamento quanto as funções disponíveis para os data blocks, são configurados no campo access condition, que veremos em detalhes mais à frente.

Sector Trailer

O último bloco de cada setor é chamado sector trailer, muito importante para o funcionamento do chip. Esse bloco armazena as chaves de acesso aos demais blocos daquele setor e também as condições de acesso de cada bloco daquele setor.

Para acesso aos blocos dos setores é necessário fazer a autenticação. O setor trailer armazena duas chaves, KEY A e KEY B, onde a chave B é opcional. Uma dessas chaves deve ser usada para fazer a autenticação, após isso, os dados dos blocos daquele setor podem ser acessados de acordo com o que está gravado no campo Access Condition.

O campo Access Condition é composto 4 bytes, armazenando as condições de acesso e o modo de funcionamento de cada bloco do seu setor. De acordo com a configuração deste campo saberemos, por exemplo, qual chave devemos usar para autenticação, qual o modo de funcionamento dos blocos de dados, se os dados poderão ser acessados. Abaixo vemos uma imagem do sector trailer.

Estrutura de memória do block sector trailer de um chip Mifare.
Figura 5 – Sector Trailer.

A estrutura do access condition utiliza 3 bits para definir o funcionamento de cada bloco do seu setor (C1, C2 e C3), esses bits são armazenados em dois locais por segurança, em um de forma normal e outro de forma invertida. Além da identificação do bit (1, 2 ou 3) existe um outro índice que identifica o bloco.

As funções possíveis para cada data block são configuradas no access condition (C1, C2 e C3 de 0 a 2), assim como se ele será um value block ou read/write block.

Estrutura do Access Condition para acesso aos Data Blocks.
Figura 6 – Estrutura do Access Contition para os Data Blocks.

Os bits C1, C2 e C3 índice 3 do access condition determinam o acesso ao bloco 3 daquele setor (sector trailer), assim configuramos as funções disponíveis e qual a chave que iremos usar para cada função.

Estrutura do Access Condition para o bloco Sector Trailer.
Figura 7 – Estrutura do Access Condition para o Sector Trailer.

Estrutura de comunicação

A comunicação entre o leitor e os dispositivos Mifare é realizada seguindo uma sequência lógica. De início o leitor gera o campo que alimenta os chips (POR), e envia um request. Todos os chips que estiverem no alcance do campo do leitor irão tentar responder, o sistema de anticolisão impede que mais de um dispositivo responda simultaneamente. Os dispositivos respondem com seu número identificador.

Então o leitor seleciona o chip com quem quer trocar informações. Nesse momento os demais dispositivos entram em modo stand by aguardando por um novo request. Com o módulo selecionado o leitor especifica o local que quer acessar na memória e usa a chave configurada para fazer a autenticação do bloco de memória. Depois da autenticação, todas as informações trocadas são encriptadas pela CRYPTO1, uma criptografia criada pela NXP para os dispositivos Mifare. Vale citar que essa criptografia já foi quebrada há alguns anos, e não é recomendável a utilização apenas deste meio de segurança para as informações trocadas.

Após a autenticação, o leitor deve enviar o comando referente à ação desejada, este poder ser leitura, escrita, incremento, decremento, restaurar e parar. Abaixo segue o fluxograma que corresponde ao processo de comunicação.

Fluxograma de comunicação do leitor e cartões Mifare.
Figura 8 – Fluxograma de comunicação do leitor e cartões Mifare.

Troca de dados e integridade da comunicação

Para garantir a confiabilidade dos dados trocados, a comunicação Mifare adota uma série de medidas de segurança, são elas:

  • Start bit;
  • Bit de paridade para cada byte;
  • CRC de 16 bits;
  • Codificação dos bits na memória de forma normal e invertida;
  • Cópias de valor em outras posições de memória.

O tamanho máximo do frame de comunicação é de 163 bits, que é a quantidade exata para escrita ou leitura de um bloco completo. São 1 start bit + 16 bytes + 16 bits de paridade + 2 bytes do CRC + 2 bits de paridade (1 + 16×9 + 2×9 = 163 bits).

Conclusão

Procurei abranger uma grande quantidade de aspectos dos cartões Mifare, mas existem outros detalhes que podem ser encontrados no site do fabricante. Temos um exemplo prático em um artigo escrito pelo Cleiton Bueno aqui no Embarcados, vale apena conferir. Com o que foi descrito podemos ter um conhecimento maior da tecnologia e avaliar alguns casos onde ela pode ser empregada, e assim se aprofundar mais no tema.

Caso tenha alguma dúvida ou queira saber mais sobre algum detalhe, deixe seu comentário abaixo que faremos o possível para ajudar.

Saiba mais sobre RFID

Introdução à tecnologia de identificação RFID

RFID – Etiquetas com eletrônica de ponta

NFC (Near Field Communication) – Aplicações e uso

RFID com Raspberry Pi e Python

Licença Creative Commons Esta obra está licenciada com uma Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional.

Receba os melhores conteúdos sobre sistemas eletrônicos embarcados, dicas, tutoriais e promoções.

Comunicações » RFID – Cartões Mifare
Comentários:
Notificações
Notificar
guest
8 Comentários
recentes
antigos mais votados
Inline Feedbacks
View all comments
Helio moreira de oliveira
Helio moreira de oliveira
19/08/2020 01:51

ola
Gostaria de obter mas informação sobre esse cartão mifare e também uma possivel consultoria de como codificar esse catão
se possivel passar o seu e-mail ou contato
Agradeço a atenção e estou no aguardo

Eduardo
Eduardo
06/10/2019 11:31

Tem como vc passar seu contato , estou estudando um pouco sobre essa tecnologia e gostaria de tirar algumas dúvidas

Julio Feitosa de Sá Júnior
Julio Feitosa de Sá Júnior
09/07/2019 19:04

tem como me enviar o seu contato?

palud
palud
21/01/2019 16:02

O que é transporte configuration?

Frank
Frank
27/09/2018 15:00

Boa tarde meu caro

Poderia deixar seu email? estamos implementando um sistema que ira utilizar a tecnologia mifare e estamos precisando de uma consultoria

Cássio Brehm Corteze
Cássio Brehm Corteze
18/12/2017 06:37

Bom dia.
Na imagem 1, a figura inferior central, não seria um chip da tecnologia por contato “iButton”?

Talvez você goste:

Séries

Menu

WEBINAR
 
Porque o RTOS não faz o que eu quero?

Data: 28/10 às 19:30h - Apoio: Mouser Electronics
 
INSCREVA-SE AGORA »



 
close-link