veja como hackear seu carro usando rede can com arduino due
TRANSCRIPT
Veja como hackear seu carro usando Rede CAN com Arduino DueProf. André Márcio de Lima [email protected]
Sobre mim
André Márcio de Lima Curvello▸ Engenheiro de Computação – USP São Carlos▸ MBA em Gestão de TI - UNIFRAN▸ Mestrado em Processamento de Sinais e Instrumentação
– USP São Carlos▸ Articulista do Portal Embarcados e FilipeFlop▸ Analista de Tecnologia – Padtec S/A
“Se não puder voar, corra. Se não puder correr, ande. Se não puder andar, rasteje, mas continue em frente de qualquer jeito.Martin Luther King
!O que é CAN?
Controller Area Network
▸ Protocolo multi-mestre▸ Broadcast▸ Comunicação serial▸ Baseado em mensagens▸ Sem “endereços”▹ IDs▹Mensagens
Controller Area Network
▸ Desenvolvido pela Bosch para redes decomunicação veiculares na década de 80
▸ Publicado em 1986 na SAE▸ Troca de mensagens entre ECUs▹ Electronic Control Unit▸ Robusto em ambientes com ruído!▸ Baixo custo
BWM 8 Series - 1988
Depois!
Fonte: http://www.slideshare.net/abhinawambitious
Um padrão de ComunicaçãoCompatibilidade, equipamentos, módulosREDE
▸ Automotivo▸ Militar▸ Maquinário Industrial▸ Maquinário Agrícola▸ Controle de Elevadores▸ Sistemas Médicos▸ Etc
Áreas de Aplicação
Topologia de uma Rede CAN
Fonte: https://www.linkedin.com/pulse/automotive-can-bus-system-explained-kiril-mucevski
E esse Transceiver?
SN65HVD230
Características da Rede CAN
▸ Todas as mensagens são broadcast▸ Cada nó pode transmitir mensagens▸ Cada mensagem possui uma ID que
identifica fonte ou conteúdo da mensagem▸ Cada receptor decide processar ou ignorar
a mensagem▸ IDs com valores menores -> Maior
prioridade!
Uma transmissão COMPARADA
Fonte: https://www.linkedin.com/pulse/automotive-can-bus-system-explained-kiril-mucevski
Como são os SINAIS da Rede CAN
Fonte: https://www.linkedin.com/pulse/automotive-can-bus-system-explained-kiril-mucevski
2 Padrões ISO para sistemas com comunicação CAN:▸ ISO 11898-3▹ Baixa velocidade – 125 kb/s▹ Distância de até 500 m
▸ ISO 11898-2▹ Alta velocidade – 1 Mb/s▹ Distância de até 40 m
Pacotes de INFORMAÇÃO
Standard CAN – Versão 2.0A▸ ID de 11 bit▸ 2048 ids diferentes!
Pacotes de INFORMAÇÃO
Fonte: http://www.ti.com
Pacotes de INFORMAÇÃO
Fonte: https://fabiobaltieri.com/2013/07/23/hacking-into-a-vehicle-can-bus-toyothack-and-socketcan/
Fonte: https://fabiobaltieri.com/2013/07/23/hacking-into-a-vehicle-can-bus-toyothack-and-socketcan/
Padrões de Rede CAN
▸ NMEA 2000 – Utilizado em aplicações navais e aéreas
▸ SAE J1939 - Utilizado em aplicações automotivas,especialmente caminhões.
▸ DIN 9684 – Utilizado em Aplicações Agrícolas
▸ ISO 11783 – Utilizado em aplicações agrícolas - ISOBUS
Padrões de Rede CAN▸ OBDII▸ On Board Diagnostics II
▸ Análise em rede CAN para informações “padrões”▸ Velocidade▸ Combustível▸ Bateria▸ Distância▸ RPM▸ Dentre outros
▸ Pedido – ID 0x7DF▸ Resposta – ID 0x7E8
https://en.wikipedia.org/wiki/OBD-II_ PIDs
Padrões de Rede CAN▸ OBDII▸ On Board Diagnostics II
Shields Arduino
▸ Arduino R3▸ Controller CAN▹ MCP2515 - SPI▸ Transceiver CAN▹ MCP2551
Shield Arduino
▸ Arduino DUE▸ Transceiver CAN
http://togglebit.net/product/arduino-due-can-shield/
Arduino Due
▸ AT91SAM3X8E▸ ARM Cortex M3▸ 84 MHz ▸ Controller CAN+Transceiver!
Arduino Due
http://www.microchip.com/wwwproducts/en/ATSAM3X8E
Arduino Due
▸ AT91SAM3X8E▸ ARM Cortex M3▸ 84 MHz ▸ Controller CAN+Transceiver!
DesenvolvimentoCom Arduino
DesenvolvimentoCom Arduino
Rede CAN?
• Apesar de o
Arduino DUE ter o
Controlador CAN...
• O Arduino IDE não
tem suporte oficial!
• Senta na calçada e
chora?
DesenvolvimentoCom Arduino
Rede CAN?
• Repositórios GitHub!
Desenvolvimento Com Arduino
Rede CAN?
Desenvolvimento com CAN
▸ Conhecimento de Registradores e Configurações de Periféricos Associados
▸ AT91SAM3X8E
▸ Termos principais:▸ ID – identificação da mensagem▸ DLC – tamanho em bytes da mensagem▸ Payload – mensagem propriamente
(bytes)
Hora de mostrar a Demonstração!
Módulo
Conexões
Execução
Transceiver
Cuidado com a Ligação!!!
Mais informações podem ser obtidasBasta implementar mais queries OBD2
– E verificar se a ECU Responde.EX: nível de bateria, distânciapercorrida, combustível, etc.
Momento Inspiração
http://canze.fisch.lu/arduino-due/
=
Momento Inspiração
+
+
Poder para bem… E Mal!
http://chadgibbons.com/2013/12/29/hacking-the-jeep-interior-can-bus/
Obrigado!
Perguntas?
Contato
@andremlcurvello
http://youtube.com/profandrecurvello
http://andrecurvello.com.br
http://facebook.com/profandrecurvello