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
Ist die IR-Fernbedienung von nem Peugeot oder Citroen?
Schau mal hier: http://www.atmel.com/dyn/resources/prod_documents/doc2600.pdf Oder bei google "atmel rolling code" eingeben.
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!
> 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
ähm, er hat nen rückkanal leute! da gibts deutlich mehr möglichkeiten als rolling code...
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!
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.
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
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.
P.s.: Es handelt sich weder um Peugeot noch Citroen.
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.
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!
Challenge-Response ist Replay-Sicher. Die Challenge ist zufällig und daher nicht vorhersehbar.
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 :)
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.
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.
@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
@ 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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.