Fraquezas no Cart˜ ao MIFARE Classic Wellington Baltazar de Souza Instituto de Matem´ atica e Estat´ ıstica Laborat´ orio de Seguran¸ ca de Dados 9 de Agosto de 2010 Wellington Baltazar de Souza Fraquezas no Cart˜ ao MIFARE Classic
Introdu¸ c˜ ao Pesquisa Finaliza¸ c˜ ao Agenda 1 Introdu¸ c˜ ao Aplica¸ c˜ oes Cart˜ oes sem Contato O Cart˜ ao MIFARE 2 Pesquisa Fraquezas Ataques 3 Finaliza¸ c˜ ao Consequˆ encias Conclus˜ ao Referˆ encias Perguntas Wellington Baltazar de Souza Fraquezas no Cart˜ ao MIFARE Classic
Introdu¸ c˜ ao Pesquisa Finaliza¸ c˜ ao Aplica¸ c˜ oes Cart˜ oes sem Contato O Cart˜ ao MIFARE Aplica¸ c˜ oes Tecnologia RFID e Cart˜ oes sem Contato Em substitui¸ c˜ ao a tecnologias anteriores: C´ odigo de Barras Cart˜ oes com Trilha Magn´ etica Tickets de Papel (eventos) Passaportes Eletrˆ onicos Transporte P´ ublico Implantes sob a pele Ped´ agios em rodovias Controle de acesso (edif´ ıcios, aeroportos, etc) Wellington Baltazar de Souza Fraquezas no Cart˜ ao MIFARE Classic
Introdu¸ c˜ ao Pesquisa Finaliza¸ c˜ ao Aplica¸ c˜ oes Cart˜ oes sem Contato O Cart˜ ao MIFARE Cart˜ oes sem Contato Como funciona Na tecnologia RFID temos a Tag (cart˜ ao) e o Leitor Consiste de uma pequena por¸ c˜ ao de mem´ oria que pode ser acessada atrav´ es do ar ( wireless ), mas diferentemente das tags RFID simples, eles possuem alguma capacidade de processamento. A maioria desttes cart˜ oes possuem algum tipo de criptografia sim´ etrica implementada, tornando conveniente o seu uso em aplica¸ c˜ oes que necessitam controle de acesso ao cart˜ ao. Wellington Baltazar de Souza Fraquezas no Cart˜ ao MIFARE Classic
Introdu¸ c˜ ao Pesquisa Finaliza¸ c˜ ao Aplica¸ c˜ oes Cart˜ oes sem Contato O Cart˜ ao MIFARE Cart˜ oes sem Contato Wellington Baltazar de Souza Fraquezas no Cart˜ ao MIFARE Classic
Introdu¸ c˜ ao Pesquisa Finaliza¸ c˜ ao Aplica¸ c˜ oes Cart˜ oes sem Contato O Cart˜ ao MIFARE Cart˜ ao MIFARE Detalhes sobre o MIFARE Baseado na norma ISO-14443A (1K e 4K) O cart˜ ao MIFARE ´ e amplamente utilizado (det´ em 85% do mercado) Fabricando inicialmente pela NXP Semiconductors (antiga Philips), e hoje ´ e licenciado para outros fabricantes Consiste em 4 diferentes tipos: Ultralight, Classic, DESFire, SmartMX MIFARE Classic fornece autentica¸ c˜ ao m´ utua e seguran¸ ca atrav´ es da cifra CRYPTO1 com chaves de 48 bits (propriet´ aria e fechada) Wellington Baltazar de Souza Frauezas no cart˜ ao MIFARE Classic
Introdu¸ c˜ ao Pesquisa Finaliza¸ c˜ ao Aplica¸ c˜ oes Cart˜ oes sem Contato O Cart˜ ao MIFARE Cart˜ ao MIFARE Estrutura do MIFARE Classic Cada setor cont´ em 64 bytes Cada bloco cont´ em 16 bytes O ´ ultimo bloco de cada setor ( trailer ) cont´ em as chaves A e B e as condi¸ c˜ oes de acesso. As condi¸ c˜ oes de acesso determina as permiss˜ oes em cada bloco. Wellington Baltazar de Souza Fraquezas no Cart˜ ao MIFARE Classic
Introdu¸ c˜ ao Pesquisa Finaliza¸ c˜ ao Aplica¸ c˜ oes Cart˜ oes sem Contato O Cart˜ ao MIFARE Cart˜ ao MIFARE Wellington Baltazar de Souza Fraquezas no Cart˜ ao MIFARE Classic
Introdu¸ c˜ ao Pesquisa Finaliza¸ c˜ ao Aplica¸ c˜ oes Cart˜ oes sem Contato O Cart˜ ao MIFARE Cart˜ ao MIFARE Seguran¸ ca do MIFARE Classic Unique Identifier ( UID ) ´ e somente leitura Autentica¸ c˜ ao m´ utua entre o leitor e o cart˜ ao O algoritmo da cifra CRYPTO1 n˜ ao ´ e p´ ublico Informa¸ c˜ ao de paridade ofuscada Somente implementa¸ c˜ ao em hardware Wellington Baltazar de Souza Fraquezas no Cart˜ ao MIFARE Classic
Introdu¸ c˜ ao Pesquisa Finaliza¸ c˜ ao Aplica¸ c˜ oes Cart˜ oes sem Contato O Cart˜ ao MIFARE Cart˜ ao MIFARE Comandos do MIFARE Classic autenticate read/write, increment/decrement transfer (grava o resultado de um decremento, increment/restore para mem´ oria n˜ ao vol´ atil) restore (prepara o valor do valor corrente de um bloco para ser regravado na mem´ oria n˜ ao vol´ atil) halt Wellington Baltazar de Souza Fraquezas no Cart˜ ao MIFARE Classic
Introdu¸ c˜ ao Pesquisa Finaliza¸ c˜ ao Fraquezas Ataques Cart˜ ao MIFARE Problemas Problemas de seguran¸ ca j´ a relatados (mais adiante); Diversas aplica¸ c˜ oes importantes utilizam o MIFARE Classic, e 75% delas utilizam as chaves de trasnporte default presentes na documenta¸ c˜ ao [Grunwald, Lukas, 2007], busque no Google por A0A1A2A3A4A5 Por ser t˜ ao barato n˜ ao fornece a seguran¸ ca necess´ aria, pois a unidade custa menos que $1 . 00; Wellington Baltazar de Souza Fraquezas no Cart˜ ao MIFARE Classic
Introdu¸ c˜ ao Pesquisa Finaliza¸ c˜ ao Fraquezas Ataques Engenharia reversa CRYPTO1 (´ otica) [Nohl, Pl¨ otz, 2007] Wellington Baltazar de Souza Fraquezas no Cart˜ ao MIFARE Classic
Introdu¸ c˜ ao Pesquisa Finaliza¸ c˜ ao Fraquezas Ataques Engenharia reversa CRYPTO1 (l´ ogica) [Garcia, Gans, Muijrers, Verdult, Schreur, Jacobs, 2008] Ghost Device Wellington Baltazar de Souza Fraquezas no Cart˜ ao MIFARE Classic
Introdu¸ c˜ ao Pesquisa Finaliza¸ c˜ ao Fraquezas Ataques Engenharia reversa CRYPTO1 (l´ ogica) [Garcia, Gans, Muijrers, Verdult, Schreur, Jacobs, 2008] Proxmark III Wellington Baltazar de Souza Fraquezas no Cart˜ ao MIFARE Classic
Introdu¸ c˜ ao Pesquisa Finaliza¸ c˜ ao Fraquezas Ataques Hist´ orico Linha do Tempo Dez-2007 - Engenharia reversa parcial da CRYPTO1, por Nohl e Pl¨ otz Mar-2008 - Engenharia revesa completa da cifra CRYPTO1 por equipe da Radboud University (Holanda) Jun-2008 - NXP tenta evitar atrav´ es da justi¸ ca a publica¸ c˜ ao ”irrespons´ avel” Jul-2008 - Os ju´ ızes rejeitam a proibi¸ c˜ ao, com base na liberdade de express˜ ao Out-2008 - Radboud University realiza a publica¸ c˜ ao cient´ ıfica e libera biblioteca para CRYPTO1 sob c´ odigo aberto Wellington Baltazar de Souza Frauezas no cart˜ ao MIFARE Classic
Introdu¸ c˜ ao Pesquisa Finaliza¸ c˜ ao Fraquezas Ataques Engenharia reversa CRYPTO1 (l´ ogica) [Garcia, Gans, Muijrers, Verdult, Schreur, Jacobs, 2008] Wellington Baltazar de Souza Fraquezas no Cart˜ ao MIFARE Classic
Introdu¸ c˜ ao Pesquisa Finaliza¸ c˜ ao Fraquezas Ataques Gerador Pseudo Aleat´ orio LFSR - Linear Feedback Shift Register Gerador pseudo-aleat´ orio definido pelo polinˆ omio x 16 + x 14 + x 13 + x 11 + 1 Uma vez que os nonces s˜ ao de 32 bits e o LFSR possui 16 bits de estado, a primeira metade de n T determina a segunda metade (apenas 16 bits de entropia) O per´ ıodo do gerador ´ e 65.535, a cada 9 , 44 µ s ocorre um shift, sendo um ciclo completo em 618 ms (depende do fabricante) Um valor de 32 bits n 0 n 1 . . . n 31 ´ e um nonce v´ alido de uma tag, sse n k ⊕ n k +2 ⊕ . . . ⊕ n k +16 = 0 para todo k ∈ { 0 , 1 , . . . , 15 } Wellington Baltazar de Souza Fraquezas no Cart˜ ao MIFARE Classic
Introdu¸ c˜ ao Pesquisa Finaliza¸ c˜ ao Fraquezas Ataques Gerador Pseudo Aleat´ orio LFSR - Linear Feedback Shift Register O leitor gera a mesma sequˆ encia de nonces depois de ligado O gerador pseudo-aleat´ orio na tag itera sobre o tempo Nonces gerados na tag dependem somente do tempo que est˜ ao ”ligadas” Com um simulador de tags RFID, podemos enviar nonces arbitr´ arios para o leitor Nonces gerados podem ser previstos pelo tempo Experimentos com sess˜ oes de autentica¸ c˜ ao com diversos uids e tag nonces, verificou-se que n T ⊕ uid eram uma constante Wellington Baltazar de Souza Fraquezas no Cart˜ ao MIFARE Classic
Introdu¸ c˜ ao Pesquisa Finaliza¸ c˜ ao Fraquezas Ataques Diagrama de Inicializa¸ c˜ ao Wellington Baltazar de Souza Fraquezas no Cart˜ ao MIFARE Classic
Introdu¸ c˜ ao Pesquisa Finaliza¸ c˜ ao Fraquezas Ataques Processo de Autentica¸ c˜ ao Wellington Baltazar de Souza Fraquezas no Cart˜ ao MIFARE Classic
Introdu¸ c˜ ao Pesquisa Finaliza¸ c˜ ao Fraquezas Ataques Processo de Autentica¸ c˜ ao Processo de Autentica¸ c˜ ao Tag Reader Escolhe um n T e envia para o Reader ks 1 ← cipher ( K , uid , n T ), escolhe n R ks 1 ← cipher ( K , uid , n T ) ks 2 , ks 3 . . . ← cipher ( K , uid , n T , n R ) e envia para a Tag n R ⊕ ks 1 , suc 2 ( n T ) ⊕ ks 2 ks 2 , ks 3 . . . ← cipher ( K , uid , n T , n R ) envia para o Reader suc 3 ( n T ) ⊕ ks 3 a R ← suc 2 ( n T ) Wellington Baltazar de Souza Fraquezas no Cart˜ ao MIFARE Classic
Introdu¸ c˜ ao Pesquisa Finaliza¸ c˜ ao Fraquezas Ataques Exemplo Trace no Processo de Autentica¸ c˜ ao Step Sender Hex Abstract 01 Reader 26 req type A 02 Tag 04 00 answer req 03 Reader 93 20 select 04 Tag c2 a8 2d f4 b3 uid, bcc 05 Reader 93 70 c2 a8 2d f4 b3 ba a3 select(uid) 06 Tag 08 b6 dd MIFARE 1K 07 Reader 60 30 76 4a auth(block 30) 08 Tag 42 97 c0 a4 n T 09 Reader 7d db 9b 83 67 eb 5d 83 n R ⊕ ks 1, a R ⊕ ks 2 10 Tag 8b d4 10 08 a T ⊕ ks 3 Wellington Baltazar de Souza Fraquezas no Cart˜ ao MIFARE Classic
Introdu¸ c˜ ao Pesquisa Finaliza¸ c˜ ao Fraquezas Ataques Ataque por Timeout Wellington Baltazar de Souza Fraquezas no Cart˜ ao MIFARE Classic
Recommend
More recommend