A Tecnologia MiFare
Autor: Ricardo Massao | Publicado: 2010-12-19T15:47:00-08:00

Nesse artigo, contarei a historia de uma das mais bem sucedidas famílias de Smart Cards já criadas, trata-se do MiFare.O maior diferencial desse tipo de Smart Card é que ele se comunica de maneira sem contato (contactless), graças a uma tecnologia conhecida por RFID ( Radio Frequency IDentification).&nbsp; O grande atrativo nessa tecnologia foi que ela dispensava contatos mecânicos o que causa um grande aumento na vida útil tanto do cartão como o da leitora, não obriga o Smart Card a ter uma fonte de alimentação como baterias e fora isso eram e são muito baratos de serem produzidos.
A Tecnologia RFID
Definição de um Transponder : Repetidor de Radiofrequência. Como a maioria das tecnologias que tanto nos beneficia atualmente, a do RFID também é oriunda da época da Gerra, mais especificamente da Segunda Grande Guerra.
Em 1945 o russo Léon Theremin, inventou uma ferramenta de espionagem para a União Soviética, tal ferramenta transmitia incidentes com informações de áudio via ondas de rádio.
Do outro lado um ressonador modulavam a frequência de rádio refletido e vibravam um diafragma ligeiramente alterado reproduzindo o áudio.
A grande sacada é que o lado que reproduzia o áudio não era alimentado elétricamente por fontes externas, o ressonador utilizava-se das próprias ondas de rádio como forma de alimentação para reprodução do áudio.&nbsp;Uma tecnologia similar foi desenvolvida no Reino Unido chamada de IFF Transponder (Identification Friend or Foe - Identificador de Amigo ou Inimigo) e foi utilizada durante a Segunda Guerra para identificar aeronaves amigas ou inimigas e é inclusive utilizada até hoje, com a finalidade de identificar não somente aeronaves como veículos, navios, infantarias, etc.
Somente em 1973 o inventor Mario Cardullo criou o primeiro Transponder passivo dotada com uma memória, que se tratava de um circuito integrado de apenas 16 bits de memória que era retroalimentado utilizando apenas a captação das ondas de rádio por uma antena e retransmitia por rádiofrequencia pela mesma antena os 16 bits da memória.
A invenção foi patenteada como RFID e também é conhecida pelo nome de TAG RFID&nbsp; (Etiqueta IDentificadora por Rádio Frequência), atualmente é largamente utilizada pela industria e por você também, as Tags RFID hoje identificam veículos como o caso do Sem Parar(link), em super mercados e lojas de departamentos para se evitar furtos de produtos, para se controlar um estoque por exemplo por via dessas tags é possível de se contabilizar um estoque inteiro em tempo real, identificar e armazenar dados inerentes a animais em um pasto como gado e ovelhas, identificar animais domésticos, identificar em tempo real toda a compra realizada por um cliente somente realizando a leitura de todas as Tags coladas nos produtos dentro do carrinho de compras, com a miniaturização da tecnologia já é possível até inserir Tags RFID em papel tão fino como uma folha de Sulfite ou cédula de dinheiro.
Enfim como pode ser visto é uma maneira eficiente e barata de se identificar qualquer coisa que se queira e se possa imaginar (inclusive humanos).
Abaixo algumas imagens de Tags RFID:


Uma Típica Etiqueta Adesiva com o RFID



Uma Ampola RFID que pode ser cirurgicamente implantada no corpo de "Animais"


Chaveiros RFID para portões Automáticos


Tags RFID utilizada na Agropecuária


Tag RFID utilizada para identificar Veículos, utilizado por pedágios e estacionamentos
O MiFare Em 1994, utilizando-se da tecnologia RFID surge o MiFare Classic de 1Kb de memória. 
A empresa responsável pela sua concepção foi a Philips, atualmente a marca MiFare como sua tecnologia pertencem a NXP Semiconductors(link) uma empresa fundada pela própria Philips em meados de 2006.
MiFare é uma comprovada, "confiável" e robusta tecnologia de cartões sem contato, desde de seu lançamento em 1995 foram produzidos mais de 3,5 Bilhões de cartões e foram instaladas cerca de 40 Milhões de Terminais Leitores/Gravadores ao redor do mundo.
Aqui um fato curioso ocorreu, o ID (Número Único) que todo MiFare possui é composto por 4 bytes, o que nos dá no máximo 4.294.967.295 (pouco mais de 4 Bilhões) de ID's únicos disponíveis, logo em meados de 2009 ~ 2010, as fabricantes de MiFare estavam ficando sem ID's disponíveis para fabricar seu produtos, a solução então foi aumentar esse ID de 4 bytes para 7 bytes o que elevou para 72 Quatrilhões de ID's disponíveis, um número razoável se comparado os 15 anos que se levou para exaurir os 4 Bilhões de IDs disponíveis.
Esquema de funcionamento:


Modelo de Comunicação

Como podem ver a comunicação é muito simples, inicialmente o leitor envia ondas de rádio a fim de se energizar o cartão próximo, que através do fenómeno elétromagnético chamado de indutância, carrega capacitores responsáveis pela alimentação do cartão durante o período de troca de informações, pois conforme já dito anteriormente o cartão MiFare é passivo e não depende de meios externos de alimentação como baterias no caso.
A estrutura interna do cartão é similar a figura abaixo:


MiFare em Camadas
O cartão nada mais é que duas folhas geralmente de PVC e internamente um microchip e uma antena em formato de bobina de cobre. Não entrarei no mérito de como a comunicação funciona pois isso já estaria fora do foco desse artigo.
Abaixo a figura do diagrama de Blocos de um MiFare:


MiFare Diagrama de Blocos
 A antena na figura trata-se da bobina de cobre externa ao chip.
RF-Interface fica todo o bloco inerente ao gerenciador de alimentação, gerenciador de modulação de rádio frequência de envio e recebimento de dados e Clock Regenerator.
Anticollision é o bloco que garante que o leitor/gravador apenas se comunique com um cartão por vez, pois nesse caso de cartões sem contato é possível de se ter mais de um cartão no campo eletromagnético do leitor.
Authentication é o bloco responsável pela autenticação utilizando-se uma de duas chaves possíveis em um Setor de memória especifico.
Control &amp; ALU (Arithmetic Logic Unit) é o bloco responsável pelas operações simples aritméticas que um MiFare é capaz de realizar utilizando valores gravados na memória, como incremento, decremento e redundância.
Crypto é o bloco responsável pela criptografia do canal de comunicação entre o Cartão e o Leitor, o algoritimo é conhecido por Crypto-1 e é proprietário da NXP, curiosamente é o maior calcanhar de Aquiles do MiFare pois esse algorítmo já foi quebrado.
EEPROM-Interface é responsável pela escrita e leitura de EEPROM.&nbsp;
EEPROM é bloco de memória propriamente dito, essa memória (no caso do MiFare 1Kb) é organizada em 16 setores contendo 4 blocos e cada bloco possui 16 bytes de memória.
Um Setor pode ser representado da seguinte maneira:&nbsp;

Sector ( 0 ~ 15 )
{ 
Block 0 - 16 bytes de memória - Livre para Uso
Block 1 - 16 bytes de memória - Livre para Uso
Block 2 - 16 bytes de memória - Livre para Uso
Block 3 - 16 bytes de memória - Sector Trailer
}&nbsp;

O Bloco 3 de cada Setor é especial e reservado, nesse bloco ficam gravados duas chaves de 48 bits conhecidas por KEY A e KEY B, onde geralmente a Key A possui mais privilégios que a Key B, nesse bloco ficam ainda gravados uma Access Condition(Condição de Acesso) composta por 4 bytes, que define a condição de acesso para cada bloco do setor, como apenas leitura, apenas decremento, escrita e leitura apenas pela Chave A, etc.Uma única ressalva fica por conta do Bloco 0 do Setor 0, esse bloco em especial é reservado não podendo ser reescrito, nesse bloco encontra-se o ID único do MiFare bem como informações industriais inerente a cada fabricante. 
Como podem ter notado, o MiFare é fundameltamente um cartão de memória, onde essa memória se encontra dividia entre blocos dentro de setores, porém como podemos contabilizar são 16 Setores X 4 Blocos de 16 bytes = 1024 bytes, descontando o Bloco 0 do Setor 0 e os 16 Blocos Sector Trailer ficamos com 752 bytes disponíveis para uso.
Por fim o MiFare utiliza-se de vários padrões definidos pela ISO/IEC 14443A, como por exemplo o protocolo de comunicação definida pela ISO 14443A-4.&nbsp;

Os Modelos de MiFare
Abaixo segue uma pequena Linha do Tempo dos diversos MiFare existentes hoje no mercado:
1994 - MiFare Classic, de 1Kb de Memória.
1997 - MiFare Pro, primeiro com co-processador 3DES.
1999 - MiFare Prox / SmartMX, com co-processador PKI (Public Key Infraestruture), era oferecido também em dual interface (contato / sem contato) e alguns poderiam inclusive incluir o Java Card Open Platform.
2001 - MiFare Ultralight, como próprio nome diz um MiFare de 192 bytes de Memória.
2002 - MiFare Classic, de 4Kb de Memória. 
2002 - MiFare DESFire, com microprocessador e avançado esquema de segurança baseado em 3DES, suportando inclusive APDU's ISO7816-4, porém seu preço é proibitivo se comparado a versão Classic.
2006 - MiFare DESFire EV1, com suporte ao AES de 128bits, porém ainda caro.
2008 - MiFare Plus, concebido para substituir seus antecessores DESFire e Classic a um preço atrativo, é um chip dotado de um forte e complexo esquema de segurança baseada em AES 128 bits.
2008 - MiFare Ultralight C, graças a um grupo russo que conseguiu quebrar a versão anterior, essa versão C traz um complexo esquema de segurança utilizando autenticação 3DES.
Utilizações bem sucedidas:

MiFare Utilizado no Sistema de Transporte Público de São Paulo


MiFare utilizado no Sistem de Transporte do Rio de Janeiro
 E em outras milhares de aplicações, como carteira de estudante, bilhete em estádios de futebol, cartões fidelidade, comandas para restaurantes e casas noturnas, etc.
SegurançaTer optado por utilizar-se de um algorítmo criptográfico proprietário como no caso do Crypto-1 talvez tenha sido uma das maiores falha no projeto MiFare Classic(ou não).
Em meados de 2008 foram apresentadas formas de ataques e a engenharia reversa parcial do algoritimo de criptografia do MiFare Classic.
Tal engenharia reversa utilizou-se de raspagem e análize dos blocos lógicos no substrato de silício do microchip, utilizando para isso um potente microscópio eletrônico.
Essa descoberta abriu inumeras formas de ataques inclusive a possibilidade de clonagem do cartão.
Os chineses cláro se aproveitando da brecha, criaram um leitor NFC (Near Field Communication), similar a um Pendrive USB que se destina a ser um simples leitor RF, porém esse inocente leitor, funciona também como MiFare Classic, ou seja aproximando esse leitor de um terminal, o terminal o reconhece como sendo um MiFare.
Não contentes com isso os Chineses também comercializam cartões MiFare Classic que muito provavelmente utiliza-se de um ID que já existe no mercado, ou pior o ID desse cartão pode ser atribuido livremente por quem o compra.

Ataque utilizando Leitor NFC com MiFare Classic Clonado
O Clone do cartão é realizada através de uma técnica conhecida por Eavesdropping (Espionagem).


Clone por Eavesdropping
Atualmente, muitos celulares e smart phones possuem nativamente um leitor/gravador NFC, o que possibilita a espionagem e clone do cartão copiando todo conteúdo da comunicação entre o MiFare Classic e o Terminal e posteriormente decifrando os dados.
Esse é um dos ataques mais perigoso sobre o MiFare Classic, pois mesmo que o Terminal esteja equipado com um forte esquema de segurança utilizando SAM Cards (Secure Access Modules), ainda sim é possível realizar um ataque conhecido por Replay Attack.
Imaginem o seguinte cenário onde recarregamos o cartão de vale transporte em um terminal ordinário de recarga em um terminal rodoviário.
Ao carregar o MiFare Classic, copiamos todo conteúdo da transação com um Celular NFC, então utilizamos e exaurimos todos os créditos do cartão, então realizamos uma recarga desse cartão utilizando os dados decifrados da comunicação anteriormente gravada.
A empresa só detectará o problema tarde demais ao levantar o balanço monetário.
Existe um outro ataque muito conhecido em redes TCP/IP chamado de Men in the middle (Homem no Meio).&nbsp;


Ataque Men in the Middle
Imaginem que o portador do MiFare Classic (Vítima) é um funcionário de uma Empresa o qual tem sua portaria controlada perante a apresentação do MiFare ao Terminal.
E que esse funcionário esteja feliz embreagando-se com amigos em um barzinho a kilometros de distancia da empresa, com sua carteira contendo o MiFare sobre o balcão,.
Apenas posicionando o Celular NFC B do lado dessa carteira é possível estabelecer uma comunicação entre esse cartão e o Celular NFC A que se passará pelo cartão original e será aceito pelo Terminal da Portaria como sendo autentico.
Pôr mais fantasioso que essa estória possa parecer, ela me foi demonstrada pela própria NXP em seus escritórios em São Paulo, quando eu tive o privilégio de ver a apresentação do seu novo produto o então MiFare Plus.
Como podem ver levou quase 15 Anos para a tecnologia ser quebrada, o que é um tempo notável, porém conforme dito antes existem mais de 3,5 Bilhões de cartões MiFare Classic no mundo passiveis de serem hackeados, fora as outras centenas de milhões de MiFare Classic Chineses apelidados de Xing Ling's.
Atualmente a NXP trabalha com a Linha Conhecida como MiFare Plus, extremamente seguro e utilizando o Algoritimo AES 128 bits para tudo, desde a autenticação por diversificação de Chaves, proteção do Canal de comunicação RF, cifragem/decifragem dos Dados e cálculo de MAC (Message Authentication Code).&nbsp;
O AES por ser um Algoritimo Criptográfico aberto e conhecido não desperta a curiosidade de alguns hackers em raspar o substrato de silício e observa-los sobre um microscópio eletrônico.
O MiFare Plus também possui de 2 a 3 níveis de operação sendo que o primeiro deles é totalmente compatível com o MiFare Classic (inclusive na vulnerabilidade), porém no último nível se torna uma peça realmente dificil de ser quebrada, nesse nível até o ataque de Men in the middle é impossivel de ser realizado pois o chip matém um rigoroso controle de Timming entre envio e resposta de dados para o Leitor.

O MiFare Plus é com certeza um dos cartões mais impressionantes o qual eu tive o privilégio de trabalhar, arrisco-me a dizer que é tão complexo de se trabalhar quanto é o Java Card. Porém se o seu projeto não necessita de tanta segurança assim, continue usando a versão básica e barata Classic, se precisa de segurança, considere o MiFare Plus.
Um Grande Abraço e até a Próxima!