Also, ich muss die Frage jetzt einfach mal stellen: Ich will eigentlich nur wissen ob es möglich ist sowas zu bauen. Jeder kennt diese Filme wie Nur noch 60 Sekunden. Im film haben die ein Gerät, mit dem man den Funk-code von Garagentoröffnern einfangen kann und somit ein gefaktes signal, das Garagentor auch öffnet. Quasi eine Selbstlernfernbedienung. Meiner ansicht nach ist sowas nicht möglich. Der Teil müsste ja in Prinzip das gesamte Spectrum abbilden, da ja haufenweise funksignale in der Luft schwirren. Gruß
Hallo, nicht unbedingt. Solche Sachen sind bei 27MHz oder 433MHz oder ... Martin
Gute Fernbedienungen ändern aber jedesmal ihren Code - sie arbeiten quasie eine Liste ab, die dem Sender und dem Empfänger bekannt sind. Ein "altes" Sendesignal würde daher das Garagentor nicht öffnen. Es gibt aber sicherlich auch sehr schlechte Geräte, die immer dasselbe senden. jörn
jetzt bin ich neugierig geworden... Das Verfahren ist also ähnlich dem TAN verfahren bei online banking. gibts da n Text drüber, wie das genau funktioniert ? Wo erklährt ist, wenn ei teil (sender / empfänger) nicht mehr synchron ist...und was ist, wenn man 2 Sender hat.
Dann sendet jeder Sender seinen Code bestehend aus zwei Teilen. Zb. erster Teil sind 128 Bit Zufall, zweiter Zeit sind auch 128 Bit und eine sichere Prüfsumme die mit einem Key arbeitet und per geheimen mathematischem Verfahren erzeugt wurden, aus dem Zufallswert natürlich. Der Empfänger kennt diesen Algo und den Key und kann somit aus den 128 Bit's die er empfängt den zweiten Teil aus 128 Bit nachberechnen. Gruß Hagen
Das funktioniert z.B. so: Es gibt 60.000 Codes die nacheinander benutzt werden. Der Sender darf Codes überspringen, aber nicht mehr als 30.000 und er darf nicht zurück. Die Codes wiederholen sich wenn sie aufgebraucht sind. Belauscht man ein Garagentor, das 2x am Tag benutzt wird, dann hätte man bereits nach 100 Jahren alle nötigen Codes. Natürlich könnte man z.B. die Fernbedienung klauen und dann im Schnellverfahren alle Codes ermitteln, aber welchen Sinn macht eine Kopie wenn man sowieso schon das Original in der Hand hält? Mit zwei Sendern kann das o.g. Verfahren natürlich nicht funktioneren. Als Suchbegriff für Google würde ich "Keeloq" vorschlagen. Markus
@Hagen: Dann brauchen Sender und Empfänger ja eine Uhr. Die müssen auch bei den üblichen extremen Temperaturschwankungen halbwegs synchron laufen. Dadurch braucht der Sender immer Strom, auch wenn er nicht benutzt wird. Markus
Hä ? wieso brauchen sie eine Uhr ? Also du hast einen Zufallsgenerator, Rauschen eine Diode oder so. Man erzeugt nun 128 Bit Zufall damit. Dann nimmt man diesen sogenannten Salt und erzeugt Data := Salt || Hash(Salt || Password). Man benutzt also ein hardcoded Password im Sender gespeichert. Dann am besten eine Einwegfunktion oder aber ein einfacheres Verfahren das aber geheim bleibem muß. Die Prüfsumme besteht also aus M = Hash(Salt || Password). Der Sender kennt ebenfalls das Passwort und empfängt nun die 256 Bit an Daten. Er extrahiert den Zufallswert == Salt == erste 128 Bit und erzeugt nun ebenfalls seinerseits M' = Hash(Salt || Passwort). Er empfängt die letzten 128 Bit == M und vergleicht diese mit seinem M'. Sind beide gleich dann ist sicher das der Sender das Passwort kennen muß. Die Größe von 128 Bit verhindert effektiv eine Brute Force Attacke und macht die Erzeugung von doppelten Salt's mit 1/2^128 Wahrscheinlichkeit schier unmöglich für ein Menschenleben. Sie stellt also sicher das keine Duplikate erzeugt werden, man müsste schon in 1000 ende Male pro Sekunde einen Code absenden und würde immer noch sehen wie die Sonne implodiert, ähm stop vorher wird sie ja zu einem roten Riesen und verschluckt die Erde. Naja, aber bis dahin würde es wohl schon dauern bis man Duplikate erzeugt hätte. Die Hash Funktion wiederum könnte MD5 oder SHA1 sein, und diese sind krypographisch sehr sicher. D.h. aus dem Wert M = Hash(Salt || Passwort) ist es unmöglich zurück auf das Passwort berechnen zu können. Diese wirklich simple Verfahren nennt man Authentifizierung auf basis eines gemeinsam bekannten Geheimnisses. Gruß Hagen
@Hagen: Ich dachte, Du willst die Zeit mitbenutzen. Aber ich verstehe noch nicht, wie Du Dich gegen eine Replay-Attacke schützen willst. Du brauchst irgendwas, mit dem Du erkennen kannst, daß ein alter Code vorliegt. Und zwar ohne im Empfänger eine Liste mit allen bisher empfangenen Codes zu führen. Markus
Stimmt, da haste Recht. Ok, nochmal umdenken: S = Salt = 64 Bit Zufall C = Counter = 56 Bit I = Ident, Serialnummer des Senders = 8 Bit P = Password = 128 Bit D = Datenpacket = 256 Bit V = Hash(S || C || I || P) == Verifier Sender hat vorprogrammiert C == 0, I = Serialnummer, P = Passwort. Sender erzeut S per Zufall Sender inkrementiert C = C +1 Sender erzeugt V = Hash(S || C || I || P) Sender erzeugt D = S || I || C || V Sender sendet D Empfänger extrahiert aus D nun S, I, C, V er sucht in seiner Liste der gültigen Sender per I=Serialnummer die Senderdaten raus, sprich den zuletzt benutzen Counter C, das im Sender benutzte Password P. Empfänger überprüft das das zuletzt benutzte C kleiner als das empfange C ist. wenn nein wird die Tür nicht geöffnet. Wenn ja gehts weiter mit V' = Hash(S || C || I || P), wobei der Empfänger ja das Password P in seiner Datenbank beim Sendereintrag mit Serialnummer I geladen hatte. Nun vergleicht der Sender nur noch den empfangen V mit V' und falls gleich öffnent er die Tür. Sender speichert C in seinem datensatz zum Sender als zuletzt benutzten Counter. Wichtig ist nur das 1.) der Sender immer C +1 inkrementiert. 2.) der Sender geschützt das Passwort P speichert. 3.) der Empfänger zu seinen Sendern eine Liste der berechtigten Sendern speichert, in der dann zum Serial I der letzte Counter C und das benutzte Passwort P gespeichert sind. 4.) das Passwort niemals direkt übertragen wird sondern nur ein randomisierte Hash Funktion dazu benutzt wird. So, dies ist aber nun sicher gegen Reply Angriffe. Gruß Hagen
Dieses Verfahren sollte Selbstsynchronisierend sein, sicher gegen Reply Angriffe und sicher gegen Brute Force Angriffe. Wichtig ist nur das das benutze Passwort nicht aus dem Sender geknackt werden kann, der Sender sollte einbrichsicher sein und bei Verlust des Senders muß der Empfänger den Datensatz zum Sender sperren, sprich die Serialnummer des Senders ungültig machen. Gruß Hagen
Auf die Übertragung von C in D kann gegebenenfalls sogar verzichtet werden. Der Empfänger muß dann aber per Trial&Error ausgehend von C in seiner Datenbank zb. maximal 100 mal dieses C inkrementieren. Er erzeugt also die 100 nächsten möglichen Verifiers V und vergleicht sie mit dem empfangenem V. Sollte dabei eines gleich sein so kennt nun der Empfänger den Offest den er auf C addieren muß und speichert dieses neue C in seiner Datenbank. Dies ermöglicht nun den Salt wieder auf 64 +56 Bit Größe zu erhöhen was die Sicherheit verstärkt. Gruß Hagen
Das ist zwar im Prinzip wohl sicher, aber die Werte sind viel zu groß und damit wird das Ganze zu teuer. Real benutzt man so um die 64 Bit für das Datenwort und 16 Bit für den Sender. So ist das jedenfalls bei meiner Funkfernbedienung fürs Auto. Vor ein paar Monaten wurde so ein System bekanntlich geknackt (150 Millionen Fahrzeuge betroffen) und der Hersteller des Systems hat klar gesagt, daß sie aus Kostengründen Bits gespart haben - man will das Zeugs schließlich auch verkaufen. Markus
Naja, man benötigte schon 64Bit Salt + 8 Bit Serial + 64Bit Verifier. Alles drunter lässt sich dann per Brute Force Attacke knacken, egal WAS man dann WIE implementiert hat. Mit entsprechender Technik sind zb. 32 Bit in 2-3 Tagen geknackt. Kryptographisch ist es doch so das wenn man davon ausgeht das die benutzen Algorithmen sicher sind nur eine Brute Force Attacke als sinnvolle Alternative übrigbleiben soll. Wenn aber nun die Werte zu kurz gewählt werden, sinkt die Komplexität der Sicherheit drastisch und ergo steigt die Erforlgswahrscheinlichkeit einer solchen Attacke. Auf PC's sagt man überlicherweise das 128 Bit sicher gegen Brute Force Angriffe ist. Deshalb mein erster Ansatz mit 128 Bit's zu arbeiten, falls dies machbar ist. Und mal ehrlich, die par Bits mehr können die HW doch nicht so drastisch verteuern, oder ? Gruß Hagen
Ok wenns wirklich kürzer sein soll dann müssen wir rechnen. Gehen wir mal davon aus das ein Angreifer pro Tag mit heutiger Technik ca. 2^24 Codes durchtesten kann. Wir möchten das er mindestens 10 Jahre mit solchen Tests verbingen möchte, dann benötigen wir 12 + 24 Bit = 36 Bit Sicherheit. Wir ändern nun das Protokoll: I = 16 Bit Serialnummer, 65536 mögliche C = 36 Bit Counter, ~ 7*10^10 mögliche P = 36 Bit Password, ~ 7*10^10 mögliche S = 24 Bit Salt V = Hash(S || C || I || P) mod 2^24 D = S || I || V = 64 Bit || = Concatenation Wie oben beschrieben nur mit kürzeren Werten. Empfänmger muß nun zb. die nächsten 100 möglichen Verifiers erzeugen und austesteten, ebenfalls wie oben. Ein Angreifer müsste nun 2^36 verschiedene Passwörter durchtesten und wird nach ca. 2^35 getesteten Passwörtern mit einer Wahrscheinlichkeit von 50% das korrekte gefunden haben. Er hätte aber nur das Passwort zu einer der 65535 möglichen Sendern gefunden und müsste also diese Attacke für jeden Sender wiederholen. Wenn er 2^24 solcher Passwörter pro Tag durchtesten kann so benötigt er 4096 Tage = 11 Jahre. Gruß Hagen
Das geht einfacher, Sichwort Rollkode. Der Empfänger erwartet, dass sich der gesendete Kode um einen bestimmten Betrag vom vorhergehenden unterscheidet. Dieser Differenzbetrag muss sich auch nach einem festen Muster ändern. Sind Sender und Empfänger aus der Synchronisation gelaufen, z.B. weil der Sender ausserhalb des Empfangsbereichs betätigt wird, dann muss man wieder zu Hause den Sender mehrfach betätigen, der Empfänger prüft dann, ob die Differenzen der empfangenen Werte auf das einprogrammierte Muster passen. Gleichzeitig werden die Absolutwerte auch geprüft, ob sie ebenfalls in das Muster passen, da bei einem Synchronisationsverlust der Sender üblicherweise nur ein paar Werte weg ist. Wenn alles passt, wird das Ganze wieder als synchron geloggt und das Tor geöffnet. Dieses Änderungsmuster ist der eigentliche Schlüssel. Mit einer lernfähigen Fernbedienung ist da nichts zu holen. Und was die Frequenzbereiche der Funkfernbedienungen anbelangt, es gibt nur 3: 40.68MHz, 433.075-434.8 MHz und 865 - 868 MHz. Gruss Jadeclaw.
@Hagen Sicherlich kann man alles tun um zu verhindern das ein Unbefugter das Tor öffnet. Aber es ist nicht gang und gäbe sondern die Ausnahme. Was willst Du tun wenn 2 Sender berechtigt das Tor öffnen sollen oder 3 oder 4 sicherlich geht das auch aber wird nicht getan. So konnte ein Apotheker mit seinem Barcodescanner laufend und unbemerkt Mercedesse die Wegfahrsperre aktivieren. Wohl auch 433 und entsprechende Codestümmel Paul Die 3000 uroklasse kann das aber nicht diese Piepnormalen. Entweder Sendeempfänger als Fernbedienung oder es wird beim Empfänger sehr lompliziert.
>> Was willst Du tun wenn 2 Sender berechtigt das Tor öffnen sollen >> oder 3 oder 4 sicherlich geht das auch Das ist ja schon im obigen Protokoll berücksichtigt. Bei 16 Bit Serialnummer könnte man 65535 verschiedene Sender im Empfänger speichern. Dabei benutzt jeder Sender sein eigenes Passwort. Pro Sender muß der Empfänger einen Datensatz mit Klar, das man sich streiten kann ob es sinnvoll ist oder ob professionelle Unternehmen es lieber preiswert und unsicher bauen wollen. Darum ging es mir nicht, ich komme aus der Entwicklung professioneller kryptographischer Systeme und von daher interessierte mich die Sache. Gruß Hagen
Ich hab mal im Fernsehen (glaub "Planetopia") einen Test gesehen: Die Reporter haben sich einen Profi geholt, der mittels einer handelsüblichen lernfähigen Fernbedienung die Codes zum öffnen/schließen der Autos aufgefangen hat. Danach sind die zum Auto gegangen, haben es geöffnet und dem Besitzer kurz darauf ein paar Dinge aus seinem Auto ins Büro gebracht. Das waren alles nicht wirklich Luxuskarossen, aber auch nicht das billigste vom billigen. Fazit: viele Systeme laufen vermutlich miit sehr einfachen Sicherungssystemen. Und da ein Garagentor nicht unbedingt das sensibelste/wertvollste Gerät im Haus ist, werden die da zumindest bei den einfacheren Geräten ziemlich sparen
offtopic: autos mit ir-zentralverriegelung?? sowas gibt es wirklich??
Garagentoröffner sind wohl oftmals recht einfach aufgebaut, einfach ein 4-stelliger Code, d.h. man muß einfach 10.000 Kombinationen durchprobieren. Falls die Leute den Code überhaupt geändert haben und er nicht sowieso noch auf 0000 steht. Für Autos wird aber normalerweise was besseres genommen. In meiner Funkfernbedienung (hat vor 5 Jahren 200DM gekostet) ist ein HCS200 nach dem Keeloq-Verfahren drin. Im Datenblatt steht drin, wie das ungefähr funktioniert: http://ww1.microchip.com/downloads/en/DeviceDoc/40138c.pdf Das o.g. Prinzip kann man natürlich auch mit Infrarot machen.
Ja, Autos mit IR gibts. Aber wenn man als Träger 36 khz verwendet und dann nichtmal ein anständiges rotokoll drauf aufbaut ist das Wirklich grob fahrlässig von den Autoherstellern ! Gibts eigentlich ne möglichkeit den Code von ner fernbedieneung anzuzeigen (oszi) ? würd mir gerne mal das signal genauer ansehen.
Eine BPW 34 oder 104 ohne weiteres Kabel oder Teile direkt an die Buchse des Scope klemmen, das gibt dann das komplette Signal, wie es aus der Fernbedienung vorne rauskommt. ( ca 0.5V ) Oder einen TSOP1736 nehmen, der entfernt das 36kHz-Trägersignal, dann sieht man nur den Code, den der uC dann auswerten muss. Gruss Jadeclaw.
Ehm...Ich hab mich etwas schlecht ausgedrückt...sorry. Ich meinte ob es möglich ist das Signal eines Funk senders aufm oszi zu zeigen.
Klar. Frequent rausfinden und dann einen Empfänger auf diese Frequenz abstimmen und ans Scope hängen.
in normstahl 27mhz toröffnern ist sogar nur ein HT12 drin, soweit ich mich erinner...banal, aber doch recht sicher - ausser jemand kennt das layout des senders und schaut sich das mäuseklavier an... Klaus.
frequenz steht ja auf vielen sendern drauf. Leider kenn ich mich in alalogtechnik nicht so gut aus. Gibts irgendow einen schaltplan für solch eine anwendung. Zum Tester hate ich vor eine Auto-Fernbedienung zu verwenden....aber bei der kann ich den schwingkreis nicht abstimmen (frequenz über 800 Mhz und ich hab ein 100 mhz oszi).
Mit den Microchip Keeloq HCS habe ich mich auch schonmal eingehend beschäftigt. Das ganze erscheint mit aber ziemlich unsicher. Wenn man die Fernsteuerung mal für kurze Zeit in die Hände kriegt, kann man alle 64K Pakete aufzeichnen. Der interne Zähler steht dann wieder auf dem gleichen Stand und der Besitzer merkt rein gar nichts. Dann hat man den Öffner 1:1 kopiert. Ein Telegramm dauert worst case 167.4 ms, d.h. 6/sek , für 64k braucht man 3 Stunden. Typisch unter 120 Min. Für ein einmaliges Öffnen genügt sogar, nur ein paar Codes aufzuzeichnen und dann den Zähler 64k mal hochzuzählen, geht wesentlich schneller. If another button is activated during a transmission, the active transmission will be aborted and a new transmission will begin using the new button information. Ich vermute, den Zähler hat er dann schon hochgzählt. Wenn der Empfänger das Overflow-Bit auswertet, hat man halt 192K. A code word that has been transmitted will not repeat for more than 64K transmissions. This provides more than 18 years of use before a code is repeated; based on 10 operations per day. Overflow information sent from the encoder can be used to extend the number of unique transmissions to more than 192K. Was meint ihr dazu? Fand ich ganz nett zu lesen: Einsatz kryptographischer Verfahren auf stark ressourcenbeschränkten Geräten http://elib.uni-stuttgart.de/opus/volltexte/2004/1827/pdf/DIP-2106.pdf
Man darf den Schlüssel natürlich nicht aus der Hand geben. Ich gehe mal davon aus, daß man einen normalen Schlüssel auch innerhalb von 3h kopieren kann.
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.