veja como hackear seu carro usando rede can com arduino due

Post on 06-Apr-2017

1.357 Views

Category:

Technology

51 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Veja como hackear seu carro usando Rede CAN com Arduino DueProf. André Márcio de Lima Curvellocontato@andrecurvello.com.br

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

Antes…

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

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

Estrutura-base de uma ECU CAN

Fonte: http://www.ti.com

Topologia de uma Rede CAN

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

E esse Transceiver?

Fonte: http://www.ti.com

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

contato@andrecurvello.com.br

http://facebook.com/profandrecurvello

top related