Forum: Mikrocontroller und Digitale Elektronik Funkfernbedienung für Kfz wie verschlüsseln?


von Steffen Hausinger (Gast)


Lesenswert?

Hallo zusammen,

ich habe eine IR-Fernbedienung für mein Auto. Aufgrund der vielen 
Nachteile von IR, plane ich, die Übertragung auf RF umzubauen. Dazu 
möchte ich die IR-Daten 1:1 in einen bspw. AT89RF401 einlesen, über Funk 
versenden, und im Empfänger wieder in IR-Daten umsetzen.

Da der AT89RF401 neben dieser einfachen Aufgabe noch viel mehr kann, 
habe ich mir nun überlegt, ob es nicht möglich wäre, eine einfache 
Authentifizierung mit einzubauen! Die jetzige IR-Übertragung 
funktioniert mit festen Codes, die einfach auszuspähen sind. Wenn ich 
schon so eine schöne Funkstrecke mit Rückkanal aufbaue, dann könnte ich 
doch gleich eine einfache Authentifizierung mit einbauen.

Leider kenne ich mich mit diesem Thema nicht sonderlich gut aus. Kann 
mir jemand einem leichten Algorithmus vorschlagen? Wie wird das 
eigentlich bei aktuellen Fernbedienungen gelöst?

Grüße
Steffen

von Alex W. (a20q90)


Lesenswert?

Ist die IR-Fernbedienung von nem Peugeot oder Citroen?

von Lars P. (paetsch)


Lesenswert?

Schau mal hier:

http://www.atmel.com/dyn/resources/prod_documents/doc2600.pdf

Oder bei google "atmel rolling code" eingeben.

von Alex W. (a20q90)


Lesenswert?

Im Endeffekt ist das Verschlüsseln sowieso überflüssig! Ist der 
KFZ-Sender weit genug vom KFZ weg, und ein Unbekannter schafft es den 
Öffnen-Knopf zu drücken, kann er den gesendeten Code abfangen. In der 
Nähe des KFZ kann er den Code wieder aussenden. Das Auto öffnet sich 
(geht nur 1x, da der Code dann "verbraucht" ist).

Fertig! Lass es so wie es ist!

von Otto (Gast)


Lesenswert?

> und ein Unbekannter schafft es den Öffnen-Knopf zu drücken,
> kann er den gesendeten Code abfangen.

deshalb werden i. A. auch mehrere Codes ausgewertet - Der Schlüssel 
sendet bei Betätigung also mehrere Sequenzen und die müssen alle 
stimmen....

Otto

von Michael H. (morph1)


Lesenswert?

ähm, er hat nen rückkanal leute!

da gibts deutlich mehr möglichkeiten als rolling code...

von Alex W. (a20q90)


Lesenswert?

Otto schrieb:
>> und ein Unbekannter schafft es den Öffnen-Knopf zu drücken,
>> kann er den gesendeten Code abfangen.
>
> deshalb werden i. A. auch mehrere Codes ausgewertet - Der Schlüssel
> sendet bei Betätigung also mehrere Sequenzen und die müssen alle
> stimmen....
>
> Otto

Und diese mehrere Sequenzen können abgefangen und aufgezeichnet werden! 
Die stimmen dann beim Senden 100%. Nur beim Senden des Schlüssels darf 
das KFZ nicht in Reichweite stehen, sonst ider der Code "verbraucht"!

Das KFZ kann nicht zwischen einem kopierten und einem echten Signal 
unterscheiden!

von Alexander S. (esko) Benutzerseite


Lesenswert?

Otto schrieb:
>> und ein Unbekannter schafft es den Öffnen-Knopf zu drücken,
>> kann er den gesendeten Code abfangen.
> deshalb werden i. A. auch mehrere Codes ausgewertet

Das ändert aber nichts. Dann müssen eben alle Sequenzen abgefangen, 
gespeichert und wieder ausgesandt werden.

Edit: Alex war schneller.
Und durch den Rückkanal ergeben sich tatsächlich noch mehr 
Möglichkeiten.
Mann kann dann auch verhindern, dass einer mit dem geklauten Sender über 
den Parkplatz läuft und durch Dauerdrücken herausfindet welches Auto zum 
Schlüssel gehört.

von Blitzmerker (Gast)


Lesenswert?

Hallo Steffen,

rolling code oder code hopping kannst Du suchen.
Interessant: der keeyloq von Microchip war in die Diskussion geraten
(z.B.Toyota), da eine Uni in Deutschland einen Weg gefunden hatte,
den Algorithmus zu knacken (hoher Aufwand). Bericht auch in der ct'.
Bei den Verfahren werden Folgecodes berechnet. Da macht das überhaupt 
nichts, wenn einer die Tasten drückt (z.B. in der Kneipe).
Beim nächsten Zusammentreffen von Sender und Empfänger synchronisieren 
sich
diese wieder. Sonst hilft nur ein Verfahren mit dem "Hardwareschlüssel".
Allgemein ist, wie bei jeder Alarmanlage, ein durchdachter Selbstbau,
gut, da man nicht auf Standardkomponenten zurückgreift und nicht jeder
Hobbyeinbrecher sofort erkennt, womit er rechnen muss.

Gruss
Dietmar

von Steffen Hausinger (Gast)


Lesenswert?

Danke für Eure Antworten!

Da ich einen Rückkanal habe, dachte ich an sowas wie Challenge-Response. 
D.h. das Kfz sendet meiner Fernbedienung eine Aufgabe, diese wird dann 
von ihr gelöst und anschließend an das Kfz zurückgesendet.

Allerdings kann ich nicht abschätzen, wie aufwändig die Implementierung 
eines solchen Algorithmus ist. Letztendlich geht es mir auch nur darum, 
die Möglichkeiten, die ich mir mit dem Funkkanal schaffe, clever 
auszunutzen. D.h. eine möglichst sichere Authentifizierung zu finden, 
die möglichst simpel zu implementieren ist.

Bis jetzt ist ja schon das Stichwort "Rolling Codes" (sogar mit 
App.-Note!) gefallen.

von Steffen Hausinger (Gast)


Lesenswert?

P.s.: Es handelt sich weder um Peugeot noch Citroen.

von Maxxie (Gast)


Lesenswert?

Also der kryptographische Standardweg wäre eine Nounce (PRNG) zur 
Fernbedienung zu senden, die mit einem privaten Schlüssel signiert wird. 
Der Empfänger im Auto kann damit Zweifelsfrei feststellen, dass die 
Nounce nur vom berechtigten (Signierer) zurückgesendet wurde.

von Alex W. (a20q90)


Lesenswert?

Blitzmerker schrieb:
> Hallo Steffen,
>
> rolling code oder code hopping kannst Du suchen.
> Interessant: der keeyloq von Microchip war in die Diskussion geraten
> (z.B.Toyota), da eine Uni in Deutschland einen Weg gefunden hatte,
> den Algorithmus zu knacken (hoher Aufwand). Bericht auch in der ct'.
> Bei den Verfahren werden Folgecodes berechnet.

BMW arbeitet mit dem selben System. Nur halt von Atmel.

> Da macht das überhaupt
> nichts, wenn einer die Tasten drückt (z.B. in der Kneipe).

Oh man, wieso versteht Ihr es nicht! Sobald der Sender den Code sendet 
(der Code ist ja gültig), der Empfänger aber ausser Reichweite ist, und 
ein Sniffer das Signal vom Sender speichert, kann er in Empfangsweite 
vom Empfänger durch 1:1 senden des empfangenen Codes das FZ dennoch 
öffnen! Und das Beste: Schlüssel und KFZ sind syncronisiert. Schliest 
der Einbrecher das KFZ von Hand zu (Knöpfen drücken) merkt der 
Betroffene nichteinmal etwas von dem Einbruch!

Das kann jeder der mit RFM12 hier rumspielt selber versuchen!


Maxxie schrieb:
> Also der kryptographische Standardweg wäre eine Nounce (PRNG) zur
> Fernbedienung zu senden, die mit einem privaten Schlüssel signiert wird.
> Der Empfänger im Auto kann damit Zweifelsfrei feststellen, dass die
> Nounce nur vom berechtigten (Signierer) zurückgesendet wurde.

Nützt bei dem oben angewendeten Verfahren genausowenig!

von Maxxie (Gast)


Lesenswert?

Aber natürlich.
Das Verfahren ist Replay-Sicher.

von Alexander S. (esko) Benutzerseite


Lesenswert?

Challenge-Response ist Replay-Sicher.
Die Challenge ist zufällig und daher nicht vorhersehbar.

von BastelAkku (Gast)


Lesenswert?

Wenn ich doch das Öffnen in mehrere Schritte aufteile, kann ein Sniffen 
nicht mehr viel bringen.
1. Sender sendet 'Hallo Auto, mach mal die Tür auf'
2. Auto antwortet 'Hallo Sender, wie spät ist es denn gerade?'
3. Sender antwortet 'Hallo Auto, 15:37h'
4. Auto antwortet 'Bei mir ist es 15:39h ??'
5. Sender antwortet 'Dann gehst Du 2 min falsch'
6. Das Auto erkennt seinen Meister und öffnet brav die Tür

Selbst wenn in der Kneipe der 1.te Spruch gesnifft wird, bleiben die 
anderen Sendungen des Senders ungesnifft.
Wenn man dann den Funkverkehr nicht in ASCII abwickelt und hier und dort 
noch ein paar Bit's vertauscht/invertiert, sollte das schon eine gewisse 
Sicherheit mit sich bringen.

Man kann auch die Laufzeit zwischen Sender und Auto bestimmen, wenn die 
Antwort nach Stunden noch nicht gekommen ist, wird's wohl nicht der 
eigene Sender gewesen sein - trotzdem würde ich auch bei empfangenem 
Müll eine Antwort raus geben, obgleich diese Anfrage eh nicht mehr 
gewertet wird.
Ansonsten könnte man sich an die richtige Antwort herantasten, immer, 
wenn die Antwort gepasst hat, wird die Reaktion des Senders länger - und 
länger geht auch so :)

von Niklas G. (erlkoenig) Benutzerseite


Lesenswert?

Stichwort asymmetrisches Kryptosystem, z.B. RSA. Verwendet man 
ausreichend lange Keys (z.B. 1024 Bit), ist das System ohne riesigen 
Rechenaufwand unknackbar, egal wie viel man snifft. Und da man auf 
Auto-Seite ja sowieso einen Microcontroller hat, kann man sich z.B. aus 
elektrischer Noise wunderbar Zufallszahlen für die Challenge 
produzieren.
Wenn du RSA verwenden willst: Darüber habe ich eine Facharbeit 
geschrieben, die, so bilde ich mir ein, einigermaßen leicht verständlich 
ist und die ich dir gerne geben kann.
Funktion im Telegrammstil:
Man produziert ein Schlüsselpaar - den public key und den private key. 
Wenn man etwas mit dem public key verschlüsselt, kann es nur mit dem 
private key wieder entschlüsselt werden. Und umgekehrt: "verschlüsselt" 
man mit dem private key eine Zahl, kann man sie mit dem public key 
entschlüsseln, und es kommt die ursprüngliche Nachricht heraus. Das wird 
so eingesetzt:
Auf der FB befindet sich der private key, im Auto der public key. Der uC 
im Auto produziert eine zufällige lange Zahl, schickt sie an die FB, 
diese verschlüsselt die Zahl mit dem private key, und schickt das 
Ergebnis zurück ans Auto. Der dortige uC entschlüsselt die Zahl wieder 
mit dem public key, und wenn das Ergebnis mit der ursprünglichen 
Zufallszahl übereinstimmt, ist es die richtige Fernbedienung. Die 
Mathematik sorgt hierbei dafür, dass man aus den übertragenen Zahlen 
ohne riesigen Rechenaufwand nicht an den private key kommt.
Edit: Da du ja nicht der erste wärst, der das anwendet, kannst du den 
schwierigsten Teil - die Erzeugung der Schlüssel - etablierten 
Programmen überlassen, z.B. ssh-keygen aus OpenSSH.

von Dödel (Gast)


Lesenswert?

Du kannst dir den Rückkanal völlig sparen. Das kostet nur zusätzlich 
Strom, ist schwierig umzusetzen (weil fehleranfällig) und steigert die 
Sicherheit (in diesem Fall) kaum. Du musst einfach praktisch denken. Die 
Standardverfahren mit rollenden Code sind für diesen Zweck ausreichend. 
Du musst einfach bloss daruf achten, dass der Code genügend gross ist 
(>16bit). Und dass beim schliessen auch wirklich die Aktion durchgeführt 
wird. (Das ist ja hörbar.) Dann ist dieses Verfahren ausreichend sicher. 
Wenn du nicht aureichend Erfahrung hast, dann nimm eine 
Standardverschlüsselung und halte dich peinlich genau an genormte 
Protokolle.

von pinnchen (Gast)


Lesenswert?

@Maxxie: Ja, aber eben auch nur Replay sicher.
D.h. das Signal wird nur verworfen, wenn es schon einmal vom Kfz 
empfangen wurde und ein zweites Mal gesendet wir. Nur passiert das im 
Szenario von Alex W. eben nicht.

Ein möglicher Weg könnte sein einen Zeitstempel in die Nonce einzubauen.
Wobei man hier auch sicher einen Weg finden kann das Signal zu fälschen.

Gruß
pinnchen

von Blitzmerker (Gast)


Lesenswert?

@ Niklas G. (erlkoenig) :
Wär die Facharbeit etwas fürs WIKI ?
Oder möchtest Du nicht "berühmt"werden ?

Neben der Kryptographie - ohne Spassverderber zu sein.
Das bei einem solchen Eingriff in die Schliesstechnik
der Versicherungsschutz weg ist, ist klar, oder??
Die Versicherungen stellen sich ja schon an, wenn man
bei einem Unfall die falschen Ventilpömpel drauf hat.

von Christian R. (supachris)


Lesenswert?

Das ist doch eh alles für die Katz, es gibt massig andere Wege ins Auto 
zu kommen als die blöde Fernbedienung. Frag mal den ADAC, die öffnen dir 
jedes Auto in Sekunden bis Minuten ohne Schlüssel. Also kann man den 
Sicherheitskrempel gleich weglassen, Rolling Code reicht da vollkommen 
aus. Alles andere steht in keinem Verhältnis zum Nutzen. Bei der 
Wegfahrsperre sieht das schon anders aus, aber bei der ZV? Akademischer 
Unsinn, da RSA oder sonstwas zu verwenden.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.