veja como hackear seu carro usando rede can com arduino due

48
Veja como hackear seu carro usando Rede CAN com Arduino Due Prof. André Márcio de Lima Curvello [email protected]

Upload: andre-curvello

Post on 06-Apr-2017

1.357 views

Category:

Technology


51 download

TRANSCRIPT

Page 1: Veja como hackear seu carro usando Rede CAN com Arduino Due

Veja como hackear seu carro usando Rede CAN com Arduino DueProf. André Márcio de Lima [email protected]

Page 2: Veja como hackear seu carro usando Rede CAN com Arduino Due

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

Page 3: Veja como hackear seu carro usando Rede CAN com Arduino Due

“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

Page 4: Veja como hackear seu carro usando Rede CAN com Arduino Due

!O que é CAN?

Page 5: Veja como hackear seu carro usando Rede CAN com Arduino Due
Page 6: Veja como hackear seu carro usando Rede CAN com Arduino Due

Controller Area Network

▸ Protocolo multi-mestre▸ Broadcast▸ Comunicação serial▸ Baseado em mensagens▸ Sem “endereços”▹ IDs▹Mensagens

Page 7: Veja como hackear seu carro usando Rede CAN com Arduino Due

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

Page 8: Veja como hackear seu carro usando Rede CAN com Arduino Due

BWM 8 Series - 1988

Page 9: Veja como hackear seu carro usando Rede CAN com Arduino Due

Antes…

Fonte: http://www.slideshare.net/abhinawambitious

Page 10: Veja como hackear seu carro usando Rede CAN com Arduino Due

Depois!

Fonte: http://www.slideshare.net/abhinawambitious

Page 11: Veja como hackear seu carro usando Rede CAN com Arduino Due

Um padrão de ComunicaçãoCompatibilidade, equipamentos, módulosREDE

Page 12: Veja como hackear seu carro usando Rede CAN com Arduino Due

▸ Automotivo▸ Militar▸ Maquinário Industrial▸ Maquinário Agrícola▸ Controle de Elevadores▸ Sistemas Médicos▸ Etc

Áreas de Aplicação

Page 13: Veja como hackear seu carro usando Rede CAN com Arduino Due

Estrutura-base de uma ECU CAN

Fonte: http://www.ti.com

Page 14: Veja como hackear seu carro usando Rede CAN com Arduino Due

Topologia de uma Rede CAN

Fonte: https://www.linkedin.com/pulse/automotive-can-bus-system-explained-kiril-mucevski

Page 15: Veja como hackear seu carro usando Rede CAN com Arduino Due

E esse Transceiver?

Fonte: http://www.ti.com

Page 16: Veja como hackear seu carro usando Rede CAN com Arduino Due

E esse Transceiver?

SN65HVD230

Page 17: Veja como hackear seu carro usando Rede CAN com Arduino Due

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!

Page 18: Veja como hackear seu carro usando Rede CAN com Arduino Due

Uma transmissão COMPARADA

Fonte: https://www.linkedin.com/pulse/automotive-can-bus-system-explained-kiril-mucevski

Page 19: Veja como hackear seu carro usando Rede CAN com Arduino Due

Como são os SINAIS da Rede CAN

Fonte: https://www.linkedin.com/pulse/automotive-can-bus-system-explained-kiril-mucevski

Page 20: Veja como hackear seu carro usando Rede CAN com Arduino Due

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

Page 21: Veja como hackear seu carro usando Rede CAN com Arduino Due

Standard CAN – Versão 2.0A▸ ID de 11 bit▸ 2048 ids diferentes!

Pacotes de INFORMAÇÃO

Fonte: http://www.ti.com

Page 22: Veja como hackear seu carro usando Rede CAN com Arduino Due

Pacotes de INFORMAÇÃO

Fonte: https://fabiobaltieri.com/2013/07/23/hacking-into-a-vehicle-can-bus-toyothack-and-socketcan/

Page 23: Veja como hackear seu carro usando Rede CAN com Arduino Due

Fonte: https://fabiobaltieri.com/2013/07/23/hacking-into-a-vehicle-can-bus-toyothack-and-socketcan/

Page 24: Veja como hackear seu carro usando Rede CAN com Arduino Due

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

Page 25: Veja como hackear seu carro usando Rede CAN com Arduino Due

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

Page 26: Veja como hackear seu carro usando Rede CAN com Arduino Due

Padrões de Rede CAN▸ OBDII▸ On Board Diagnostics II

Page 27: Veja como hackear seu carro usando Rede CAN com Arduino Due

Shields Arduino

▸ Arduino R3▸ Controller CAN▹ MCP2515 - SPI▸ Transceiver CAN▹ MCP2551

Page 28: Veja como hackear seu carro usando Rede CAN com Arduino Due

Shield Arduino

▸ Arduino DUE▸ Transceiver CAN

http://togglebit.net/product/arduino-due-can-shield/

Page 29: Veja como hackear seu carro usando Rede CAN com Arduino Due

Arduino Due

▸ AT91SAM3X8E▸ ARM Cortex M3▸ 84 MHz ▸ Controller CAN+Transceiver!

Page 30: Veja como hackear seu carro usando Rede CAN com Arduino Due

Arduino Due

http://www.microchip.com/wwwproducts/en/ATSAM3X8E

Page 31: Veja como hackear seu carro usando Rede CAN com Arduino Due

Arduino Due

▸ AT91SAM3X8E▸ ARM Cortex M3▸ 84 MHz ▸ Controller CAN+Transceiver!

Page 32: Veja como hackear seu carro usando Rede CAN com Arduino Due

DesenvolvimentoCom Arduino

Page 33: Veja como hackear seu carro usando Rede CAN com Arduino Due

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?

Page 34: Veja como hackear seu carro usando Rede CAN com Arduino Due

DesenvolvimentoCom Arduino

Rede CAN?

• Repositórios GitHub!

Page 35: Veja como hackear seu carro usando Rede CAN com Arduino Due

Desenvolvimento Com Arduino

Rede CAN?

Page 36: Veja como hackear seu carro usando Rede CAN com Arduino Due

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)

Page 37: Veja como hackear seu carro usando Rede CAN com Arduino Due

Hora de mostrar a Demonstração!

Módulo

Conexões

Execução

Transceiver

Page 38: Veja como hackear seu carro usando Rede CAN com Arduino Due
Page 39: Veja como hackear seu carro usando Rede CAN com Arduino Due
Page 40: Veja como hackear seu carro usando Rede CAN com Arduino Due

Cuidado com a Ligação!!!

Page 41: Veja como hackear seu carro usando Rede CAN com Arduino Due
Page 42: Veja como hackear seu carro usando Rede CAN com Arduino Due

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.

Page 43: Veja como hackear seu carro usando Rede CAN com Arduino Due

Momento Inspiração

http://canze.fisch.lu/arduino-due/

=

Page 44: Veja como hackear seu carro usando Rede CAN com Arduino Due

Momento Inspiração

+

+

Page 45: Veja como hackear seu carro usando Rede CAN com Arduino Due

Poder para bem… E Mal!

Page 46: Veja como hackear seu carro usando Rede CAN com Arduino Due

http://chadgibbons.com/2013/12/29/hacking-the-jeep-interior-can-bus/

Page 47: Veja como hackear seu carro usando Rede CAN com Arduino Due

Obrigado!

Perguntas?

Page 48: Veja como hackear seu carro usando Rede CAN com Arduino Due

Contato

@andremlcurvello

http://youtube.com/profandrecurvello

http://andrecurvello.com.br

[email protected]

http://facebook.com/profandrecurvello