Navigatie overslaan.
Start

OBD-II

Blijkbaar is de komkommertijd alweer begonnen en komt men met artikels af over het starten van BMW's zonder sleutel in minder dan geen tijd. Vrij logisch en niet enkel mogelijk met BMW's.

Keyless systemen:

Als je van 2-factor authentication (Fysieke sleutel en electronische handshake) naar single-factor authentication terugschakeld (enkel electronische handshake), dan wordt het makkelijker om de autenticatie te omzeilen.
I.p.v. terug naar een sleutel te gaan, hetgeen veiliger is, stapt men over naar "keyless systemen" die enkel electronisch bestaan.
Veel autoconstructeurs maken die keuze, maar omdat het "moderner", "complexer", "electronisch" of "digitaal" is en jan-met-de-pet niet weet hoe het werkt, wil dat niet zeggen dat het beter is.
In de praktijk was die "fysieke sleutel" de laatste 15 jaar eigenlijk ook niet echt veilig. De meeste constructeurs hadden maar een tiental verschillende sleutels of de sloten waren belachelijk makkelijker om zonder sleutel te openen.

Blind spots:

Als je een ulstrasoon alarm hebt in een onregelmatige ruimte, zoals een auto, dan heb je sowie so een aantal blind spots.
Het belangrijkste is natuurlijk waar die blind spots zich bevinden.
Als je niet slim genoeg bent om 1 en 1 naast elkaar te kunnen leggen, en een blind spot maakt op de plaats waar je een nieuwe "electronische key" kan programmeren en de volledige auto kan bedienen/herprogrammeren, dan ben je niet slim bezig.

Regelgeving:

OBD-II interfaces zijn leuk, maar er is niet aan beveiliging gedacht terwijl een OBD-II interface toch verplicht is is alle auto's vanaf een bepaald constructiejaar.
Als ik verplicht wordt om iets te doen, dat mijn veiligheid mogelijk in gevaar kan brengen, dan zeg ik simpelweg "neen" en probeer ik tot een oplossing te komen die aanvaardbaar is voor beiden.

Het probleem is dat OBD, net zoals een Firewire interface (http://blog.knudde.be/Firewire+DMA), een bus interface is. Je kan via OBD geheugenlocaties uitlezen, en overschrijven.
Ook de plaatsen die zeggen "dit is een geldige key om de auto te starten". Dit is analoog aan het "chip tunen", maar op andere geheugen locaties.

Er zijn wel aparte CAN of VAN bussen voor "Comfort", "Engine management" en "Security devices", maar constructeurs maken het zichzelf, en anderen, makkelijk en consolideren deze interfaces allemaal op de OBD stekker.

Auto's stelen via OBD is ook helemaal niet nieuw. Veel auto's worden in realiteit gestolen via High Tech methodes.
Officiëel echter niet, want als de auto al wordt teruggevonden en er geen schade kan worden vast gesteld, dan zegt de verzekering dat de deur niet gesloten was.
Dat zal ook wel gebeuren, maar je moet ook weten dat Keeloq (http://blog.knudde.be/keeloq) en een aantal andere systemen die via een druk op de knop jouw auto openenen al een tijdje gehacked zijn.

Als dat niet lukt, zijn er nog allerlei andere manieren om een autodeur te openen en, als allerlaatste, kan nog steeds de ruit ingeklopt worden.

Begint het alarm te loeien? Geen probleem, dat is vaak ook aangesloten via de OBD interface als security device en kan zo ook worden uitgeschakeld. Voor de omstaanders lijkt het erop dat het alarm per ongeluk afging en dat de inbreker de rechtmatige eigenaar is.
In de veronderstelling natuurlijk dat mensen nog omkijken als er ergens een alarm afgaat...

Om de auto vervolgens aan de praat te krijgen, wordt een nieuwe key geprogrammeerd, of wordt de volledige firmware van de auto overschreven, of wordt er een deel met opzet corrupt gemaakt zodat de wagen in "noodloop" of "demo" modus gaat, etc...

Er zijn "diefstalapparaatjes" te verkrijgen waarbij je met een gebruikersvriendelijk menuutje de gewenste model van auto kan selecteren, en er wordt bijna stap voor stap uitgelegd hoe je met de wagen wegrijdt.

Anyway, fysieke toegang tot de OBD interface bij de huidige generatie auto's wil zeggen dan de auto zonder de juiste sleutel kan gestart worden.

Waarom zegt de garage dan dat je een nieuwe boordcomputer moet kopen als je je sleutels verliest?
Simpel:

De software die de garages gebruiken, kan slechts 1 keer een sleutel toekennen aan een bepaalde auto.
Daarna wordt er een bit ergens geset die zegt: "Deze auto werd al geconfigureerd" en de software laat niet meer toe om een andere sleutel in te leren.
Als je deze bit terug op 0 zet, kan de software dat wel.
Als je je eigen software gebruikt, die geen rekening houd met deze bit, dan kan je dat ook.

Automerken willen niet dat iedere willekeurige garage sleutels kan toekennen, want dat zou ongetwijfeld tot veel meer misbruik leiden. Ze willen, heel begrijpelijk, dergelijke dingen overlaten aan een beperkte, en beter controleerbare, kring van werknemers.
De garage installeert een nieuwe boordcomputer en de oude boordcomputer wordt "gereviseerd" door deze meer vertrouwde werknemers.

Hoe kan dat nu beter?

Zorg dat de OBD interface slechts werkt in bepaalde omstandigheden.
Zo kan ik bijvoorbeeld in minder dan 5 seconden het volgende bedenken:

  • Ging het alarm af? Geen OBD toegang gedurende 30 minuten.
  • Viel de batterijspanning weg? Geen OBD toegang gedurende 30 minuten.
  • In het portier nog dicht? Geen OBD toegang.
  • Heb je geen toegang tot OBD nodig? Haal de zekering eruit.
  • Etc...

Zoals altijd is het simpel, je moet het alleen doen.
Uiteraard heb ik het ook over hardwarematige beveiligingen, geen louter software beveiligingen, want dat zou natuurlijk hilarisch zijn.

Ook is het niet goed dat tegenwoordig alles homogeen is en niet meer "after market".
Als ik een bepaald "security device" kan reverse engineeren, en dit wordt in een hele reeks modellen en merken gebruikt van dezelfde constructeur, dan heb ik effectief de security omzeilt van een hele reeks van modellen en merken.
Doordat overal exact hetzelfde alarmsysteem gebruikt wordt, wordt dat alarmsysteem vanzelf hoe langer hoe minder waard. En hoeveel autoconstructeurs zijn er nog tegenwoordig?

Auto's stelen wordt alleen maar makkelijker.
Het is daarom belangrijk om niet alles standaard te laten, maar helaas zorgt dat soms voor problemen met garantie en wetgeving...