
Uma aplicação de kit de ferramentas de pesquisa NFC para Android
⚠️O NFCGate está atualmente sendo detectado falsamente como malware "NGate". Consulte este problema para obter informações atualizadas.⚠️
O NFCGate é um aplicativo Android projetado para capturar, analisar ou modificar tráfego NFC. Pode ser usado como uma ferramenta de pesquisa para engenharia reversa de protocolos ou para avaliar a segurança de protocolos contra modificações de tráfego.
Este aplicativo foi desenvolvido para fins de pesquisa em segurança por alunos do Secure Mobile Networking Lab na TU Darmstadt. Não utilize este aplicativo para fins maliciosos.
git submodule update --initComo as instruções diferem por modo, cada modo é descrito em detalhes em seu próprio documento
em doc/mode/:
O tráfego capturado pode ser exportado ou importado no formato de arquivo pcapng. Por exemplo, o Wireshark pode ser usado para analisar ainda mais o tráfego NFC. Uma descrição detalhada da funcionalidade de importação e exportação está documentada em doc/pcapng.md.
O NFCGate fornece uma verificação de status dentro do aplicativo. Para notas adicionais sobre compatibilidade, consulte o documento de compatibilidade.
Por favor, considere os seguintes problemas e advertências antes de usar o aplicativo (e especialmente antes de arquivar um relatório de bug).
Ao usar modos que utilizam HCE, o telefone deve implementar a especificação NFC Controller Interface (NCI). A maioria dos telefones deve implementar essa especificação quando oferece suporte a HCE.
Para garantir confidencialidade e integridade, use Transport Layer Security (TLS), que pode ser ativado nas configurações do NFCGate. Você precisa de um certificado emitido por uma AC ou autoassinado. Certificados de ACs confiáveis pelo sistema são confiados automaticamente. Certificados autoassinados podem ser confiados pelo usuário no primeiro uso (TOFU).
Só podemos fazer proxy de tags suportadas pelo Android. Por exemplo, o Android não oferece mais suporte a chips MiFare Classic, portanto esses cartões não são suportados. Em caso de dúvida, use um aplicativo como NFC Tag info para descobrir se sua tag é compatível. Além disso, no momento, toda tecnologia de tag suportada pela HCE do Android é suportada (A, B, F), porém NFC-B e NFC-F permanecem não testadas. Tags NFC-A são as mais comuns (por exemplo, tanto o MiFare DESFire quanto chips especializados como os de passaportes eletrônicos usam NFC-A), mas você pode encontrar problemas se usar outras tags.
Este aplicativo funciona apenas com leitores que não implementam medidas de segurança adicionais. Uma medida de segurança que impedirá o funcionamento do nosso aplicativo no modo de retransmissão é quando o leitor verifica o tempo que o cartão leva para responder (ou, para usar o caso mais geral, se o leitor implementa "distance bounding"). A transmissão de rede adiciona um atraso perceptível a qualquer transação, portanto, qualquer leitor seguro não aceitará nossas respostas intermediadas. Isso não afeta outros modos de operação.
Alguns recursos do NFC não são suportados pelo Android e, portanto, não podem ser usados com nosso aplicativo. Nós encontramos casos em que o campo NFC gerado pelo telefone não era forte o suficiente para alimentar adequadamente recursos mais avançados de alguns chips NFC (ex.: operações criptográficas). Tenha isso em mente se você estiver testando chips com os quais não experimentamos.
Este aplicativo foi apresentado no 14th USENIX Workshop on Offensive Technologies (WOOT '20). Um preprint arXiv pode ser encontrado aqui.
Uma versão inicial deste aplicativo foi apresentada no WiSec 2015. O resumo estendido e pôster podem ser encontrados no site de um dos autores. Também foi apresentado em uma breve Lightning Talk no Chaos Communication Camp 2015.
Qualquer uso deste projeto que resulte em uma publicação acadêmica ou outra publicação que inclua uma bibliografia deve incluir uma citação ao NFCGate:
@inproceedings {Klee2020Nfcgate,
author = {Steffen Klee and Alexandros Roussos and Max Maass and Matthias Hollick},
title = {NFCGate: Opening the Door for {NFC} Security Research with a Smartphone-Based Toolkit},
booktitle = {14th {USENIX} Workshop on Offensive Technologies ({WOOT} 20)},
year = {2020},
url = {https://www.usenix.org/conference/woot20/presentation/klee},
publisher = {{USENIX} Association},
month = aug,
}
O artigo inicial do NFCGate descrevendo a primeira versão do NFCGate pode ser citado da seguinte forma:
@inproceedings{Maass2015Nfcgate,
title={DEMO: NFCGate: an NFC relay application for Android},
author={Max Maass and Uwe M{\"u}ller and Tom Schons and Daniel Wegemer and Matthias Schulz},
booktitle={Proceedings of the 8th ACM Conference on Security \& Privacy in Wireless and Mobile Networks},
year={2015}
}
Copyright 2015-2025 NFCGate Team
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.