visão geral
quase todos os carros atualmente vêm com um chaveiro, que permite abrir as portas e ligar o carro. Quando você compra um carro, a conveniência é o recurso atraente. Você pode deixar o chaveiro no bolso e nunca mais se preocupar em ter uma chave física. Parece óptimo.
a suposição implícita que você faz é que o sistema fob chave é seguro, e que alguma pessoa aleatória com US $50 de hardware não pode dirigir com o seu carro. Você não tem nenhuma maneira real de dizer se a empresa de automóveis fez um trabalho razoável com seu sistema, então você tem que confiar neles. Infelizmente, essa confiança nem sempre é garantida. E não é até que as pessoas tentem hackear esses sistemas que os problemas surgem. Problemas que pessoas menos escrupulosas já podem ter explorado.
Fob Chave do seu carro
existem muitos sistemas de fob chave diferentes. Vamos começar por olhar para o chaveiro do meu Prius 2006. Os key fobs usam algo chamado Remote Keyless System (RKS). Nos EUA, eles operam a 315 MHz, + / – 2,5 MHz. Minha chave Prius acabou por estar em 312.590 MHz.Os keyfobs estão todos listados no banco de dados da FCC. Observar novas entradas é uma das maneiras pelas quais as pessoas podem dizer quando novos modelos de carros estão saindo. Estes aparecerão muito antes do anúncio oficial.
você pode descobrir a frequência que seu chaveiro transmite usando seu SDR e usar GQRX ou SDR# para monitorar o espectro. Quando você pressiona um botão no fob, você deve ver um breve salto no espectro. Você pode precisar mudar a banda de frequência para cima ou para baixo em alguns MHz para encontrar o sinal, o meu estava quase 2,5 MHz baixo.
uma palavra de cautela. Não se empolgue muito pressionando o botão! O sistema RKS usa um código gerado pseudo-aleatoriamente. Tanto o chaveiro quanto o carro mantêm a sincronização, para que o carro reconheça o próximo código. No entanto, se o chaveiro chegar muito à frente na sequência (100s de pressionamentos de botão), o carro não o reconhecerá. Isso torna a chave (e o carro) consideravelmente menos útil!
Se a gente capturar o sinal do resultado é mostrado abaixo
A largura total do terreno é de 10 segundos, então você pode ver que há uma tecla logo após 2 segundos, e outro pouco depois de 5 segundos.
Se nós lote de 100 ms de partida em 2 segundos, podemos ver o sinal digital a que estamos procurando:
o Zoom para o primeiro par de bits, obtemos
Os bits são fáceis de identificar. Um limite de decisão de 15 dará detecção quase perfeita. Se fizermos isso, e, em seguida, enredo primeira parte dos dados digitais para os dois toques de tecla, temos este
Embora as duas começam a mesma, eles rapidamente são divergentes. Isso é uma sorte, porque se o sinal fosse o mesmo todas as vezes, você teria informações suficientes para roubar meu carro agora!
os dados estão novamente ON-off keying (OOK). Também é quase certamente codificação de fase dividida (ou Manchester). Em vez de um” 1 “ser alto e um” 0 ” ser baixo, a informação está codificando na transição de alto para baixo ou baixo para alto. Isso significa que um bit” 0 “é uma transição crescente, e um bit” 1 ” é uma transição em queda. Uma boa maneira de reconhecer a codificação de fase dividida é que você só pode ter um ou dois segmentos baixos ou Altos seguidos. A coisa boa sobre a codificação Manchester é que cada símbolo tem uma transição, e estes são mais fáceis de encontrar, em seguida, quando o sinal tem sido alta ou baixa por vários intervalos.
este exemplo é OOK, que é o mais comum para controles remotos de carro. Alguns usam chaveamento de mudança de frequência (FSK), onde cada bit é transmitido como uma frequência diferente e o envelope é constante.
ataques a Controles Remotos de carros
existem muitos ataques diferentes que podem ser usados contra Controles Remotos de carros, dependendo de como eles funcionam e de que tipo de acesso você está procurando. O mais simples permite que você abra o carro. Ataques mais completos dão a você controle total, basicamente clonando o controle remoto.
a maioria dos fobs de chave usa uma chave rolante. Isso produz uma nova forma de onda que depende do ID do chaveiro, de uma semente aleatória e de quantas vezes a chave foi pressionada. O carro acompanha o último código que recebeu e sabe quais podem ser as próximas centenas de códigos. Se detectar um dos códigos futuros esperados, ele abrirá o carro. Se receber um código usado anteriormente, ele para de responder ao chaveiro. Para o Prius você tem que fazer a “dança do frango” para fazê-lo funcionar novamente, desde que você tenha outro chaveiro de trabalho. Caso contrário, você tem que ter o revendedor rekey o carro, por muitas centenas de dólares. Eu tive que fazer isso algumas vezes, agora (por outros motivos).
existem várias linhas de ataque. Um está simplesmente gravando a saída do chaveiro para um par de pressionamentos de botão quando está longe do carro, ou o carro está sendo encravado. Com códigos não utilizados gravados, você pode abrir o carro.
outro é fazer engenharia reversa da sequência RKS. Em geral, isso deve ser extremamente difícil. No entanto, houve várias situações em que isso é muito fácil.
finalmente, existem carros que abrem quando o proprietário se aproxima do carro. Isso é baseado em um sinal de baixa potência que só pode ser recebido quando o chaveiro está muito próximo. Isso pode ser derrotado amplificando esses pequenos sinais.
existem muitos mais ataques, e estes continuarão a se multiplicar à medida que os carros se tornam mais complexos e têm mais sistemas de computador embarcados para serem seguidos. Você pode olhar para alguns deles para a próxima semana.
ataques de repetição
a abordagem mais antiga e simples era gravar a forma de onda que um chaveiro apaga (usando seu rtl-sdr) e depois reproduzi-lo. Isso funciona bem para abridores de portas de garagem mais antigos, que usavam uma única chave fixa. Ainda existem carros por aí que têm Porta-chaves que funcionam dessa maneira (alguns Mercedes pré-2000, por exemplo).
para berloques de chaves que usam uma chave rolante, você ainda pode usar um ataque de repetição. Se você puder obter acesso ao chaveiro quando estiver longe do carro e gravar vários pressionamentos de teclas, poderá reproduzi-los para que o carro esteja aberto.
se você não conseguir acessar o chaveiro, uma segunda abordagem é fazer um dispositivo que registre a saída do chaveiro quando ele é usado e, simultaneamente, obstrua o carro. Uma maneira padrão de fazer isso é ouvir a transmissão do chaveiro e, em seguida, começar a bloquear quando os bits de correção de erro são transmitidos no final. Dessa forma, você não se emperra. O carro não reconhecerá o pacote, mas você pode recriar os bits de correção de erros e retransmitir a forma de onda mais tarde.
finalmente, um jammer por si só irá manter o controle remoto de começar capaz de bloquear o carro. Se o motorista não estiver atento, eles podem se afastar do carro, deixando-o aberto.
dispositivos de retransmissão
tudo isso depende da sua capacidade de transmitir e receber RF. Seus rtl-sdr são apenas receptores e fazem um ótimo trabalho ao adquirir sinais. Existem muitas opções para transmissão. Há um número de adaptadores usb que são baseados na TI CC111X chips que são usados na chave berloques, como este
Uma interessante abordagem mais flexível, usa o seu Raspberry PI para gerar RF através do envio de um cuidadosamente elaborada seqüência de dados para a porta GPIO. Isso é descrito em detalhes, com vídeos e links para o código aqui:
transmissor Raspberry PI
com isso, você pode gerar praticamente qualquer forma de onda de pacote digital que você gostaria. Os níveis de potência são mais do que adequados para emular um chaveiro. Os rtl-sdr também são bem suportados no Raspberry PI, então os dois juntos oferecem um sistema total de hacking de chaveiro por US $ 50 ou mais, como veremos em breve.
atacar sistemas passivos de entrada e partida sem chave (Pkes)
muitos carros de última geração usam um sistema passivo para abrir o carro quando o motorista se aproxima. Um sinal de baixa potência é transmitido do carro como um desafio. O chaveiro então responde com uma autenticação. Como a energia é tão baixa, o carro assume que o motorista deve estar próximo se receber uma resposta.
estes sistemas podem ser hackeados através da construção de um repetidor que colocado perto do carro. Ele captura o sinal do carro e o retransmite em maior potência. O controle remoto pode estar em qualquer lugar com em algumas centenas de metros, e ainda ouvirá o sinal. O controle remoto responde, e que é novamente capturado pelo repetidor, e retransmitido. O carro acha que o chaveiro está por perto e abre o carro.
o bom dessa abordagem é que você não precisa saber nada sobre o chaveiro, exceto sua frequência. Você não precisa fazer engenharia reversa do protocolo que ele usa, na verdade você está apenas usando a chave real!
aqui está um vídeo de alguns ladrões de cuidados roubando um Tesla com esta abordagem
ataque remoto passivo, Tesla Model 3
como você pode reduzir esse risco?
atacando o sistema de teclas rolantes
os próximos ataques vão atrás do próprio sistema de teclas rolantes. A maneira como isso geralmente funciona é que o chaveiro envia um ID, junto com um contador de quantas vezes uma chave foi pressionada. Isso é criptografado e transmitido para o carro quando você pressiona o botão.
se a criptografia for forte, é extremamente difícil descobrir o que é o userid e o counter. Existem vários casos interessantes. Uma é para os 20 anos da VW (e Audi, Porsche, Etc), que veremos aqui. Outra é para Subarus, que você pode olhar para a sua tarefa esta semana.
Uma descrição do VW RKS do sistema é dada aqui
VW Hack
Isso aponta para um Fio de artigo (o que, infelizmente, atualmente, atrás de um paywall), e inclui um documento técnico que entra em grandes detalhes sobre como ele funciona. Os autores do artigo técnico analisaram os sistemas VW RKS nos últimos 20 anos.
para os sistemas mais recentes, a criptografia era relativamente forte, equivalente a uma chave de 90 bits. No entanto, acontece que eles usaram a mesma chave em todos os carros! 100 milhões deles!
o desafio é descobrir qual é a chave e qual é o algoritmo de criptografia. O carro em si ajuda você a resolver esse. Quando o botão é pressionado, o carro recebe o sinal e o decodifica no computador de bordo (ECU). A chave e o algoritmo são armazenados no firmware ECU. Os autores compraram algumas ECUs no EBay, baixaram o firmware e fizeram engenharia reversa da criptografia (geralmente são operações bit a bit bastante simples e fáceis de identificar). Com esse conhecimento, depois de adquirir o sinal de um único pressionamento de tecla, o ID do Usuário e o contador podem ser decodificados e o chaveiro clonado, dando controle total do carro.
há algumas coisas interessantes aqui. Uma delas é que cada carro VW decodifica cada chaveiro, portanto, monitorando a execução do seu ECU, você pode encontrar o ID do Usuário e o contador para todos os carros ao seu redor. Há relatos de pessoas usando sistemas como este para roubar outras marcas de carros, também.
a razão pela qual apenas o seu carro responde ao seu controle remoto é que o seu carro tem uma “lista de permissão” de ID fob chave que ele responde. Isso é o que fica definido quando você rekey o carro.
tudo isso parece bastante alarmante. Mas fica pior, como veremos na próxima semana.
atribuição
você tem várias opções para sua tarefa esta semana. Para cada tópico, gere cerca de 5 slides para descrever seus pensamentos ou resultados. Inscreva-se aqui
folha de inscrição
e envie seus slides aqui:
semana 5 Slides
1. Este artigo diz respeito ao sistema Subaru RKS. Leia, assista aos vídeos e descreva o que você encontra.
Subaru RKS
2. Você já se perguntou como funcionam esses cartões-chave do hotel? Este artigo descreve um hack não-RF que explora as mesmas idéias que os ataques fob chave.
Cartões-Chave Do Hotel
3. Por que roubar um carro quando você pode ter um bulldozer! Leia este artigo e assista ao vídeo para ver como isso funciona.
Hacking Máquinas Industriais
4. Existem muitos outros hacks de carros por aí. Veja se você consegue encontrar algo interessante e descreva-o. Procure histórias onde você possa descobrir como funciona. Os sistemas de entretenimento são um modo comum de acesso (verifique o Uconnect hack para jipes). Tesla e hackers têm um longo jogo de gato e rato em andamento. Existem muitos exemplos interessantes aqui
5. Se você tem um Raspberry Pi, veja se você pode obtê-lo para transmitir um sinal. Isso deve ser bem direto. Use o link acima. Vou enviar-lhe um Raspberry Pi se você gostaria de tentar isso.
finalmente, se você ainda não o fez, envie-me um e-mail sobre como a aula está indo para você. Eu aprecio ouvir seus pensamentos. Obrigado!