Os cartões MIFARE Classic são conhecidos como vulneráveis há mais de 10 anos e, se você trabalha no setor de cartões, normalmente deveria recomendar a migração para chips mais seguros, como DESFire.
A introdução do artigo também diz: “em 2024, todo mundo sabe que o MIFARE Classic foi seriamente quebrado”, então, se alguém ainda distribui MIFARE Classic, é quase caso de colher o que plantou.
As máquinas de venda automática da minha universidade também funcionavam, por volta de 2014, carregando saldo em tokens MIFARE Classic.
Fiquei sem dinheiro no meio de julho e mal tinha o suficiente para comprar uma passagem de trem para ir para casa nas férias, mas graças ao MIFARE consegui sobreviver umas duas semanas com sanduíches da máquina. Bons tempos de juventude.
MIFARE Classic é barato e estável; o que foi quebrado é só a criptografia.
Se for usado como armazenamento simples e a criptografia/autenticação dos dados for tratada de outra forma, não há problema. Assinaturas ECC também são pequenas o suficiente para caber em cartões 2K/4K, e já fiz isso.
De forma mais geral, não entendo por que fabricantes que colocam SoCs baseados em ARM e recursos parecidos com SecureBoot mantêm materiais relacionados a segurança sob NDA.
São especificações em PDF com cópia e colagem bloqueadas e marca-d'água “confidential”; parece que ainda acreditam que segurança por obscuridade funciona.
A TFL de Londres começou a eliminar o MIFARE Classic em 2010 por causa desse problema.
É surpreendente que isso ainda seja um problema hoje.
Esses cartões têm um backdoor de hardware, então a geração ou o tipo não importam muito.
Fico curioso se alguém consegue explicar esse vetor de ataque de forma bem simples.
Quando se fala em backdoor, soa como se alguém pudesse “entrar” no meu RFID, mas o RFID fica desligado a maior parte do tempo. Quando o RFID é energizado, será que o host que fornece energia também precisa estar vulnerável ou em uma rede comprometida?
Também não entendo bem quais capacidades isso passa a permitir. A porta já abre, e o cartão de crédito já está pronto para pagar. Ou seria algo como uma pessoa esbarrando em mim na rua conseguir clonar meu cartão?
Uma parte significativa dos sistemas de cartões RFID no mundo usa MIFARE Classic, por causa do custo e de sua longa história.
MIFARE não é só Classic: ele tem um UID de 32 bits e vários blocos de dados criptografados, cada um protegido por uma chave A e uma chave B.
Os sistemas de cartões iniciais usavam apenas o UID para autenticação; se o UID batia, a passagem era liberada. Naturalmente, qualquer pessoa podia criar um cartão com o mesmo UID, então sistemas posteriores começaram a usar 12 campos criptografados para autenticação. O leitor pede ao cartão que criptografe um número aleatório e informações de identificação armazenadas, e só um cartão com a chave correta consegue devolver o criptograma e o nonce corretos.
A autenticação usa criptografia de chave simétrica. Dependendo da configuração, a chave A pode ser usada apenas para leitura ou para leitura e escrita; A pode ser para leitura e B para escrita; ou leitura e escrita podem exigir tanto A quanto B.
Originalmente, o MIFARE Classic usava uma cifra proprietária, a crypto-1, e as chaves tradicionais do MIFARE Classic podem ser quebradas facilmente por causa de fatores como geradores de números aleatórios fracos ou colisões. No entanto, por causa de várias contramedidas, ainda há chaves reforçadas que não foram quebradas.
O artigo parece ter encontrado, em uma marca específica de cartão RFID, a chave A/B hardcoded A396EFA4E24F. Dei só uma passada no artigo e faz tempo que não mexo com RFID, então os detalhes podem estar errados.
O ponto principal é que, se alguém tiver seu cartão em mãos por apenas alguns minutos, pode cloná-lo e se passar por você.
Claro, a pessoa também poderia roubar o cartão, mas aí você perceberia. Por outro lado, se o cartão RFID ficar na carteira sobre a mesa por alguns minutos, ou se o departamento de TI o “pegar emprestado” para recodificação, ou por inúmeras outras formas de obter o cartão RFID por pouco tempo, ele pode ser despejado e clonado.
Se for um cartão RFID afetado entre os chipsets mostrados na penúltima página, ele pode ser clonado imediatamente com acesso root pelo backdoor.
“Devo comprar cópias chinesas do MIFARE Classic?” parece uma pergunta com resposta óbvia, mas talvez seja por isso que eu ainda não fui promovido a CISO.
Os usuários finais desses cartões muitas vezes não sabem a procedência, e normalmente eles são fornecidos por revendedores tentando economizar cada centavo.
Temos clientes que usam smartcards e, às vezes, precisamos ler ou gravar neles; no onboarding, muitas vezes eles não sabem qual versão ou especificação estão usando. Enviam alguns cartões quase sem marcação e acabamos descobrindo por tentativa e erro.
Segundo o artigo, o mesmo backdoor parece estar presente também em alguns SKUs da NXP e da Infineon, incluindo produtos fabricados na Europa.
Se você conseguir apresentar uma forma criativa de quantificar o risco, talvez consiga ser promovido a CISO.
Um framework de gestão de riscos expressa impacto, probabilidade e medidas de resposta em valores monetários. Se você apresentar algumas opções mostrando como diferentes mitigações afetam o risco residual final, pessoas não técnicas podem aceitar a direção de segurança da empresa.
Claro, também é preciso dizer coisas básicas como “segurança é importante”, “vulnerabilidades são ruins” e “riscos de cadeia de suprimentos devem ser tratados”. Quanto mais você sabe, mais doloroso esse tipo de coisa fica; pelo menos foi assim na minha experiência. Mas eu não sou CISO.
A pergunta real costuma ser mais complexa, algo como: “precisamos arrancar milhares de leitores e catracas do prédio, ou podemos aguentar mais alguns anos com cartões reforçados que usam o mesmo protocolo?”
Não recomendo, mas na maioria das empresas a segurança física, assim como outras áreas, não tem orçamento infinito.
Não sei se um CISO toma esse tipo de decisão.
Parece mais provável que a decisão fique com um fornecedor contratado pelo gerente predial de uma empresa anônima proprietária de imóveis comerciais.
Link do resumo, não em PDF: https://eprint.iacr.org/2024/1275
MIFARE Classic: exposing the static encrypted nonce variant
Cryptology ePrint Archive, Paper 2024/1275
Autor: Philippe Teuwen
Fico curioso sobre qual é a relação disso com cartões que usam PKCS ou PKI
Também fico curioso se há sistemas de controle de acesso que usam esse tipo de abordagem na prática, e se são mais seguros
Ou talvez existam sistemas de controle de acesso a portas que usem FIDO2
Sistemas de controle de acesso que usam PKI existem de fato
Por exemplo, em especificações PIV como o DOD CAC, o slot 9e normalmente é destinado à “autenticação do cartão” sem PIN
Cartões baseados em PKCS obtêm as vantagens dos smart cards, ou seja, em tese é difícil extrair a chave e há resistência a ataques de canal lateral, entre outras, mas também há o risco comum de ter de confiar que o fornecedor e o emissor não colocarão uma APDU de backdoor no applet
Pouca gente provavelmente vai querer usar FIDO2 para controle de acesso a portas, mas, em teoria, não há motivo para impedir. Bastaria criar um esquema de URI inteligente para cada porta e saber, em cada URI, qual chave pública esperar para cada identidade. Ainda assim, FIDO2 não é ideal porque gera uma identidade diferente para cada URI, então é bem provável que fosse preciso usar uma única URI ou zona para todo o local e implementar a verificação de acesso à zona em cada verificador
Na prática, fazer verificação PKI no estilo PIV traz quase as mesmas vantagens do FIDO2 e ainda permite lidar com a revogação de cartões por meio de uma CRL distribuída por todo o sistema
Fico curioso se dá para executar esse ataque com o Flipper Zero
Parece o efeito Baader-Meinhof, mas nos últimos dois dias eu estava tentando clonar o MIFARE Classic 1K da universidade
Porque minha carteirinha de estudante desbotou e se recusaram a reativá-la
Este problema não é uma vulnerabilidade teórica obscura, mas sim uma grande brecha bastante séria. Segundo o resumo:
“Por meio de pesquisa empírica, descobrimos um backdoor de hardware e conseguimos decifrar sua chave. Uma entidade que conheça esse backdoor pode comprometer todas as chaves definidas pelo usuário daquele cartão apenas acessando o cartão por alguns minutos, sem nenhum conhecimento prévio. Além disso, ao investigar cartões antigos, também descobrimos outra chave de backdoor de hardware presente em comum em vários fabricantes”
1 comentários
Comentários do Hacker News
Os cartões MIFARE Classic são conhecidos como vulneráveis há mais de 10 anos e, se você trabalha no setor de cartões, normalmente deveria recomendar a migração para chips mais seguros, como DESFire.
A introdução do artigo também diz: “em 2024, todo mundo sabe que o MIFARE Classic foi seriamente quebrado”, então, se alguém ainda distribui MIFARE Classic, é quase caso de colher o que plantou.
Fiquei sem dinheiro no meio de julho e mal tinha o suficiente para comprar uma passagem de trem para ir para casa nas férias, mas graças ao MIFARE consegui sobreviver umas duas semanas com sanduíches da máquina. Bons tempos de juventude.
Se for usado como armazenamento simples e a criptografia/autenticação dos dados for tratada de outra forma, não há problema. Assinaturas ECC também são pequenas o suficiente para caber em cartões 2K/4K, e já fiz isso.
São especificações em PDF com cópia e colagem bloqueadas e marca-d'água “confidential”; parece que ainda acreditam que segurança por obscuridade funciona.
É surpreendente que isso ainda seja um problema hoje.
Fico curioso se alguém consegue explicar esse vetor de ataque de forma bem simples.
Quando se fala em backdoor, soa como se alguém pudesse “entrar” no meu RFID, mas o RFID fica desligado a maior parte do tempo. Quando o RFID é energizado, será que o host que fornece energia também precisa estar vulnerável ou em uma rede comprometida?
Também não entendo bem quais capacidades isso passa a permitir. A porta já abre, e o cartão de crédito já está pronto para pagar. Ou seria algo como uma pessoa esbarrando em mim na rua conseguir clonar meu cartão?
MIFARE não é só Classic: ele tem um UID de 32 bits e vários blocos de dados criptografados, cada um protegido por uma chave A e uma chave B.
Os sistemas de cartões iniciais usavam apenas o UID para autenticação; se o UID batia, a passagem era liberada. Naturalmente, qualquer pessoa podia criar um cartão com o mesmo UID, então sistemas posteriores começaram a usar 12 campos criptografados para autenticação. O leitor pede ao cartão que criptografe um número aleatório e informações de identificação armazenadas, e só um cartão com a chave correta consegue devolver o criptograma e o nonce corretos.
A autenticação usa criptografia de chave simétrica. Dependendo da configuração, a chave A pode ser usada apenas para leitura ou para leitura e escrita; A pode ser para leitura e B para escrita; ou leitura e escrita podem exigir tanto A quanto B.
Originalmente, o MIFARE Classic usava uma cifra proprietária, a crypto-1, e as chaves tradicionais do MIFARE Classic podem ser quebradas facilmente por causa de fatores como geradores de números aleatórios fracos ou colisões. No entanto, por causa de várias contramedidas, ainda há chaves reforçadas que não foram quebradas.
O artigo parece ter encontrado, em uma marca específica de cartão RFID, a chave A/B hardcoded A396EFA4E24F. Dei só uma passada no artigo e faz tempo que não mexo com RFID, então os detalhes podem estar errados.
Claro, a pessoa também poderia roubar o cartão, mas aí você perceberia. Por outro lado, se o cartão RFID ficar na carteira sobre a mesa por alguns minutos, ou se o departamento de TI o “pegar emprestado” para recodificação, ou por inúmeras outras formas de obter o cartão RFID por pouco tempo, ele pode ser despejado e clonado.
“Devo comprar cópias chinesas do MIFARE Classic?” parece uma pergunta com resposta óbvia, mas talvez seja por isso que eu ainda não fui promovido a CISO.
Temos clientes que usam smartcards e, às vezes, precisamos ler ou gravar neles; no onboarding, muitas vezes eles não sabem qual versão ou especificação estão usando. Enviam alguns cartões quase sem marcação e acabamos descobrindo por tentativa e erro.
Um framework de gestão de riscos expressa impacto, probabilidade e medidas de resposta em valores monetários. Se você apresentar algumas opções mostrando como diferentes mitigações afetam o risco residual final, pessoas não técnicas podem aceitar a direção de segurança da empresa.
Claro, também é preciso dizer coisas básicas como “segurança é importante”, “vulnerabilidades são ruins” e “riscos de cadeia de suprimentos devem ser tratados”. Quanto mais você sabe, mais doloroso esse tipo de coisa fica; pelo menos foi assim na minha experiência. Mas eu não sou CISO.
Não recomendo, mas na maioria das empresas a segurança física, assim como outras áreas, não tem orçamento infinito.
Parece mais provável que a decisão fique com um fornecedor contratado pelo gerente predial de uma empresa anônima proprietária de imóveis comerciais.
Link do resumo, não em PDF: https://eprint.iacr.org/2024/1275
MIFARE Classic: exposing the static encrypted nonce variant
Cryptology ePrint Archive, Paper 2024/1275
Autor: Philippe Teuwen
Fico curioso sobre qual é a relação disso com cartões que usam PKCS ou PKI
Também fico curioso se há sistemas de controle de acesso que usam esse tipo de abordagem na prática, e se são mais seguros
Ou talvez existam sistemas de controle de acesso a portas que usem FIDO2
Por exemplo, em especificações PIV como o DOD CAC, o slot 9e normalmente é destinado à “autenticação do cartão” sem PIN
Cartões baseados em PKCS obtêm as vantagens dos smart cards, ou seja, em tese é difícil extrair a chave e há resistência a ataques de canal lateral, entre outras, mas também há o risco comum de ter de confiar que o fornecedor e o emissor não colocarão uma APDU de backdoor no applet
Pouca gente provavelmente vai querer usar FIDO2 para controle de acesso a portas, mas, em teoria, não há motivo para impedir. Bastaria criar um esquema de URI inteligente para cada porta e saber, em cada URI, qual chave pública esperar para cada identidade. Ainda assim, FIDO2 não é ideal porque gera uma identidade diferente para cada URI, então é bem provável que fosse preciso usar uma única URI ou zona para todo o local e implementar a verificação de acesso à zona em cada verificador
Na prática, fazer verificação PKI no estilo PIV traz quase as mesmas vantagens do FIDO2 e ainda permite lidar com a revogação de cartões por meio de uma CRL distribuída por todo o sistema
Fico curioso se dá para executar esse ataque com o Flipper Zero
Deve ficar possível até o fim deste mês, e o PR pode ser acompanhado aqui: https://github.com/flipperdevices/flipperzero-firmware/pull/...
Não tenho uma chave Classic para testar agora, então não consegui confirmar
Uns 8 anos atrás, usei este tutorial para conseguir comida ilimitada nas máquinas de venda automática da universidade
Bons tempos
https://firefart.at/post/how-to-crack-mifare-classic-cards/
Parece o efeito Baader-Meinhof, mas nos últimos dois dias eu estava tentando clonar o MIFARE Classic 1K da universidade
Porque minha carteirinha de estudante desbotou e se recusaram a reativá-la
Este problema não é uma vulnerabilidade teórica obscura, mas sim uma grande brecha bastante séria. Segundo o resumo:
“Por meio de pesquisa empírica, descobrimos um backdoor de hardware e conseguimos decifrar sua chave. Uma entidade que conheça esse backdoor pode comprometer todas as chaves definidas pelo usuário daquele cartão apenas acessando o cartão por alguns minutos, sem nenhum conhecimento prévio. Além disso, ao investigar cartões antigos, também descobrimos outra chave de backdoor de hardware presente em comum em vários fabricantes”