Category: security
RFID x NFC
Nos dias atuais tem se tornado comum o uso da identificação por radiofrequência / Radio Frequency Identification (RFID). Como por exemplo podemos citar crachás em empresas, cartões de pagamento (ex. cartão de débito), cartões de transporte públicos (ex. cartão de metro, ônibus, etc), Tags para estacionamento e praças de pedágios, entre muitos outros exemplos onde podemos aplicar.
Nos últimos anos, um novo termo começou a expandir-se em conexão com RFID: comunicação de campo próximo / Near Field Communication (NFC).
O RFID e o NFC são muitas vezes confundidos, mas definitivamente não são os mesmos.
Embora os leitores NFC possam ler e escrever em algumas tags RFID, a NFC possui mais capacidades do que RFID e permite uma maior variedade de usos. Você pode pensar em NFC como uma extensão da RFID, com base em alguns dos muitos padrões RFID para criar uma plataforma de troca de dados mais ampla.
O que é RFID?
Imagine que você está sentado na sua varanda à noite. Você liga a luz da varanda, e você pode ver seu vizinho quando ele passa perto de sua casa porque a luz reflete nele e você pode observar.
Isso é RFID passivo. O sinal de rádio de um leitor RFID passivo atinge uma etiqueta, a etiqueta absorve a energia e “reflete” sua identidade.
Agora imagine que você acenda a luz da sua varanda, e seu vizinho vê isso e acende a luz da varanda da casa dele para que você possa vê-lo acenando de sua varanda.
Isso é RFID ativo. O RFID ativo pode suportar um alcance mais longo, porque o receptor possui sua própria fonte de energia e, portanto, pode gerar seu próprio sinal de rádio em vez de depender da energia que absorve do remetente (RFID passivo).
O RFID é muito parecido com as duas varandas utilizadas nos exemplos anteriores. Você e seu vizinho se conhecem, sabem os rostos uns dos outros, mas você realmente não sabe muito além disso sobre ele. Você não troca mensagens significativas.
RFID não é uma tecnologia de comunicação. Em vez disso, é uma tecnologia projetada para identificação. As etiquetas RFID podem conter uma pequena quantidade de dados e você pode ler e escrever a partir de leitores de RFID, mas a quantidade de dados de que é falada é trivial.
O que é NFC?
Agora imagine que outro vizinho passe perto da sua varanda, e quando você o vê, você acaba convidando ele para a sua varanda para conversarem. Ele aceita seu convite, e você se senta junto, troca informações sobre as vidas de ambos e desenvolvem um relacionamento. Vocês se falam um com o outro e vocês se escutam durante alguns minutos. Isso é NFC.
A tecnologia NFC foi projetada para desenvolver a RFID, permitindo trocas mais complexas entre os participantes. O NFC também permite que você escreva dados para certos tipos de etiquetas RFID usando um formato padrão, independente do tipo de tag. Também é possível se comunicar com outros dispositivos NFC em uma troca bidirecional ou duplex.
Os dispositivos NFC podem trocar informações sobre os recursos uns dos outros, trocar registros e informações.
Continua…
drwxr participation on MITRE’s IoT Challenge
So, it is over the MITRE’s IoT Challenge and unfortunately we did not won the challenge (we got #5 out of 130 teams worldwide – check leaderboard). This challenge was launched on October 2016 until January 2017.
Despite the challenge’s result, it was a great opportunity to get involved in a real case related to IoT and Security, the main problem to be solved can be summarized as MITRE’s words:
We are looking for a unique identifier or fingerprint to enable administrators to enumerate the IoT devices while passively observing the network
And the challenge working as:
Each registered team was given access to radio frequency (RF) capture data from the model home network. The first recording was a baseline RF capture of the environment. The second recording was a “challenge” RF recording in which IoT devices were added, removed, or modified. Each team needed to answer a series of questions about the baseline and challenge recordings, which allowed MITRE to assess the team’s ability to uniquely identify devices.
So after this challenge, we improved our knowledge on IoT Protocols, GNU Radio usage, scapy-radio and methods to identify devices. Based on our status after challenge end, we will continue researching methods to identify IoT devices using data provided by MITRE, so we hope to share our findings on this area soon.
References:
Automatic Dependent Surveillance-Broadcast – ADS-B (Part I)
This content is a piece of our initiative to study security in aviation. All experiences and content developed by us will be available here on right moment. To start, we will understand a little about ADS-B.
ADS-B is one of technologies from NextGen Platform (Next Generation Air Transportation). NextGen is a initiative from FAA (Federal Aviation Administration) for enhance the current Air Traffic Control. The proposal promises a great operational gains, security and financial support for the entire chain of stakeholders involved in air transportation.
ADS-B technology is responsible for communication between aircrafts and between aircraft and air traffic control. This technology has been widely used in aircrafts and it will be mandatory adoption in the coming years (from 2020 US / Europe 2017).
This is a cooperative surveillance technology for tracking aircraft. Each aircraft determine your position via GPS. Every aircraft equipped with ADS-B will periodically send your location information, speed, altitude, identification and other details to ground stations and others aircrafts also equipped with ADS-B present in that area.
This technology will replace the radar as the primary method of surveillance to detect the position of aircraft worldwide.
Supposedly the ADS-B technology should increase safety in aviation by making visible aircraft in real time, exchanging information such as position and velocity, transmitted every second, but the current technology of ADS-B make use of broadcast transmission, in clear text ( without encryption or other security measures) using radio frequency (1090MHz – Modulation PPM).
ADS-B technology consists of two different systems that are ADS-B In and Out.
ADS-B Out
It is the basic level of ADS-B functionality. It’s basically all communication that is issued by the ADS-B aircraft.
ADS-B IN
The information reported by ADS-B Out (other aircraft) will be received by aircraft equipped with ADS-B In system. This functionality is intended to alert the crew about the traffic around you.
Understood the basics, let’s look under security optical…
First, we have the situation where the plane is sending uncontrolled information concerning that flight. This set of information is sent in broadcast, or for everyone. It does not require authentication and is not made any kind of control of the recipient and sender.
The signal sent by the ADS-B uses the 1090MHz frequency modulation Digital Pulse Position modulation (PPM) and Manchester code where a ZERO bit is encoded 01 and the ONE bit is encoded 10.
An ADS-B message contains 112 bits, for example:
Example message in BINARY format:
10001101010010000100000011010110001000000010110011000011 01110001110000110010110011100000010101110110000010011000
The same example in HEX format:
8D4840D6202CC371C32CE0576098
The table below shows the bit organization of the message.
In a future opportunity we will detail every message part….
So far we understood that ADS-B from every airplane will be emitting the bit sequence shown above approximately 2 times per second.
Sites like FlightRadar and FlightAware uses radio receivers around the world, collaboratively, to capture the ADS-B information of the aircrafts and centered in a friendly way on the map showing the vast majority of flights flown in the world.
Illustrating how the tracking sites of ADS-B aircraft:
The ADS-B waveform can be observed in following images:
This is the first content, introduction to ADS-B technology. In the next content we will discuss more about the decoding and show how you can capture the information of the aircraft in its viewing area. Only after that we can have a view of the risks of ADS-B technology…
Think how dangerous a Replay Attack could be in aviation scenario.
to be continued…
Replay Attack – Doorbell
Recently I bought a low cost wireless doorbell so I decided to analyse the RF communication and reproduce a replay attack.
To accomplish the attack I used an Ettus USRP2 N210 SDR (Software Defined Radio), a Voye wireless doorbell and GNU Radio.
The replay attack (also called as playback attack) is simple and very interesting attack, it works by simply recording a signal and then rebroadcasting it once it used a “fix code” signal to activate the doorbell.
GNU Radio
GNU Radio Companion (GRC) is a graphical tool for creating signal flow graphs and generating flow-graph source code.
More info: http://gnuradio.org/redmine/projects/gnuradio/wiki/GNURadioCompanion
Identifying the signal
Usually doorbells operates at frequencies of 433Mhz (Europe) or 315Mhz (America), it was first noticed the frequency of 433Mhz in order to get signal but nothing was found. Analyzing the 315MHz frequency we found the signal from the doorbell transmitter.
We used GQRX to clearly identify the frequency:
Capturing the signal
We recorded the signal from the doorbell transmitter in GNU Radio into a RAW file.
We’re using 2e6 (2M) as Sample Rate and this value should be used in every step.
Opening this up in AUDACITY we can see groups of pulses making up a single button press and we can identify this is a OOK (On-Off Keying) Signal.
On zooming in to a button press, we can see these button presses are made up of similar looking groups.
Notice that we’ve exported 4 sequences because the receiver has a error rate and it needs to receive more than 1 package of bits.
We gonna export using the following configuration:
Transmitting the signal
Finally, the last step was to create a flow graph to transmit the raw signal isolated.
After executing the doorbell will ring…
Video of replay attack:
Captando sinais Infravermelhos (IR) com RTL
Neste artigo será apresentado como utilizar o RTL para receber sinais de controle remoto infravermelho (IR), incluindo o controle fornecido com o equipamento RTL. O receptor infravermelho do RTL é surpreendentemente poderoso, ele foi capaz de captar sinais de todos os controles remotos que testamos, retornando os dados brutos (raw) para decodificação.
É possível criar um replicador ou emissor de infravermelho bastante simples, o mais complexo é encontrar o que deve ser transmitido. Vamos tratar aqui de leitura raw, ou seja do que os controles IR enviam. Neste momento não será demonstrado como replicar ou como construir um emissor IR.
O RTL-SDR é um receptor de TV Digital via conexão USB para Computador, que pode ser utilizado também como Rádio para captar Ondas Eletromagnéticas.
Geralmente estes receptores contém uma antena e um controle remoto infravermelho (IR), que é utilizado para ligar/desligar, mudar de canais, configurações de volume, etc.
Isso quer dizer que o equipamento contém um receptor de Infravermelho (IR), além do receptor de rádio frequência da TV digital.
(Receptor RTL)
(Receptor Infravermelho)
Espectro de frequências
O RTL que utilizamos (Realtek RTL2838 DBV-T) pode sintonizar dentro de 24 MHz – 1.7 GHz, ou seja 2.4 x 10⁷ Hz até 1.7×10⁹ Hz.
Abaixo o espectro de frequência completo:
(Espectro de frequência)
Em frequências mais altas, ou comprimentos de onda mais curtos, temos a luz infravermelha visível, ultravioleta, entre outras.
A radiação infravermelha é uma radiação eletromagnética cujo comprimento de onda é maior do que o da luz visível, e por consequência não é visível para os seres humanos. O nome significa “abaixo do vermelho” (do latim infra, “abaixo”). Isto se deve ao fato de a cor vermelha possuir a menor frequência do espectro de luz visível e o infravermelho possuir uma frequência logo abaixo da dele.
O comprimento de onda do infravermelho possui tamanho aproximadamente de 750 nm a 1mm. Estes comprimentos de onda estão muito além da faixa de frequência de sintonizador de a RTL-SDR ou qualquer SDR comum.
O sensor infravermelho, que é um componente separado do adaptador RTL-SDR, pode receber esses sinais.
RTL_IR
Existe uma ferramenta, que faz parte de uma lib específica, chamada librtlsdr, a qual contém alguns códigos para trabalhar com os receptores do dispositivo RTL. A princípio estas ferramentas foram criadas para trabalho com o receptor Rafael Micro R820T (ou similares, que recebem 24 MHz – 1.7 GHz). Recentemente foi incorporado ao repositório arquivos que possibilitam a captação de infravermelho do dispositivo (rlt_ir).
Comandos para instalação
Abaixo um breve tutorial para realizar a instalação:
git clone https://github.com/librtlsdr/librtlsdr.git
cd librtlsdr
mkdir build
cd build
cmake ../
make
sudo make install
sudo ldconfig
Para que usuários normais (sem privilégios de root) possam utilizar, deve ser executado também a instrução abaixo:
cmake ../ -DINSTALL_UDEV_RULES=ON
Utilização
Após a instalação, tudo estará preparado para receber as informações. Para deixar o dispositivo em modo “ouvinte” deve ser executado o seguinte comando:
rtl_ir
Executando o comando rtl_ir, deverá aparecer a seguinte mensagem:
Isso indica que o processo funcionou e o dispositivo está pronto para receber os dados.
Para testar, basta apontar um controle infravermelho (televisão, TV a cabo, etc) e apertar as teclas.
Os bits enviados pelo controle infravermelho, serão apresentados na tela, conforme imagem abaixo:
Conclusão
Como pode ser visto acima, é possível obter facilmente informações dos controles infravermelho, ou seja é apenas uma atividade introdutória ao assunto, podendo ser explorada muito mais a fundo, como por exemplo decodificação e replicação de sinais, entre outras coisas.