Hallo,
(Das ist das einzige Forum, das sich annähernd mit meiner Thematik zu beschäftigen scheint.)
kann mir hier vielleicht jemand erklären, wie „Code Hopping“ (z.B. bei Funksendern von Alarmanlagen) funktioniert?
Konkret: woher weiß der Empfänger, welcher Code für ihn ist, wenn es sich jedesmal (oder jedenfalls sehr oft) ändert? Gibt es da eine Liste der nächste n (Plural, denn es könnten ja einige verloren gehen) erlaubten Codes?
vielleicht verhält sich das wie einmal Passwörter.
Du das neue Passwort wird das nächste erechnet aber es ist
nicht möglich aus dem nächsten das vorige zuerechen.
So ähnlich denke ich mir das auch, hat sicher was mit Primzahlen zu tun , also doch die Mathematiker fragen.
Mein Problem lautet dann etwas ausführlicher an einem Beispiel formuliert, daß man die Fernbedienung der Alarmanlage (um bei diesem Beispiel zu bleiben) auch mal versehentlich drücken kann (wenn er ungünstig auf dem Taster liegt). Dabei wird nach meinem Verständnis jedesmal ein Code „verbraten“ (die gehen ja bei 10^? Kombinationen nicht so schnell aus). Wenn ich dann das nächste mal die Alarmanlage ein-/ausschalten will, muß der Empfänger diese Codes ebenfalls „überspringen“, damit steigt aber doch die Wahrscheinlichkeit enorm sich ein „simuliertes“ Signal einzuhandeln und dieses zu akzeptieren.
Ist nicht so mein Fachgebiet, hoffe aber mich einigermaßen verständlich ausgedrückt zu haben.
kann mir hier vielleicht jemand erklären, wie „Code Hopping“
(z.B. bei Funksendern von Alarmanlagen) funktioniert?
Konkret: woher weiß der Empfänger, welcher Code für ihn ist,
wenn es sich jedesmal (oder jedenfalls sehr oft) ändert? Gibt
es da eine Liste der nächste n (Plural, denn es könnten
ja einige verloren gehen) erlaubten Codes?
also ohne zu wissen, wie das wirklich laeuft, moeglich waere sowas zum beispiel mit hilfe eines pseudozufallsgenerators, wobei der key entweder in festen oder besser in zufaelligen intervallen nach handshake (sender: hallo empfaenger, ich wechsele jetzt den code - empfaenger: ok - sender: und tschuess) wechselt.
der seed waere im einfachsten fall fest (gar nicht sicher im kryptoanalytischen sinn), von einer seite zufaellig bestimmt und plaintext oder mit festem key verschluesselt uebertragen (auch nicht gut, aber besser als immer der gleiche seed und damit die gleiche schluesselabfolge) oder mittels eines kryptographisch starken key-exchange protokolls (z.b. anonymous diffie-hellman oder als overkill rsa mit extern signierten public keys) uebermittelt.
das Ganze könnte auch mit Zeitstempeln realisiert sein.
Sender und Epfänger haben eine aufeinander synchronisierte Uhr mitlaufen.
Der zu sendende Code wird dann aus dem eigentlichen Key und dem Zeitstempel errechnet. Der Empfänger macht dann die Umkehroperation, denn er hat ja die gleiche „Systemzeit“. Beim Senden/Empfangen kann gleichzeitig noch eine Synchronisation stattfinden.
intervallen nach handshake (sender: hallo empfaenger, ich
wechsele jetzt den code - empfaenger: ok - sender: und
tschuess) wechselt.
Eine bidirektionale Kommunikation halet ich für unwahrscheinlich, wenn man sich die Größe (besser Kleinheit) mancher Sender ansieht. Kann mir nicht vorstellen, daß da auch noch ein Empfänger Platz findet.
joachim, der hier reine theorie von sich gibt…
Ich bin für alles offen, stoße aber nur auf Wiedersprüche.
das Ganze könnte auch mit Zeitstempeln realisiert sein.
Sender und Epfänger haben eine aufeinander synchronisierte Uhr
mitlaufen.
Der zu sendende Code wird dann aus dem eigentlichen Key und
dem Zeitstempel errechnet. Der Empfänger macht dann die
Umkehroperation, denn er hat ja die gleiche „Systemzeit“. Beim
Senden/Empfangen kann gleichzeitig noch eine Synchronisation
stattfinden.
Ist halt ne weitere Möglichkeit…
Klingt auch nicht schlecht, scheint mir aber doch relativ einfach zu knacken zu sein, wenn man um dieses Prinzip weiß (das scheint aber wohl der Punkt zu sein, keiner weiß es). Außerdem können die Empfänger normalerweise mehrere Sender berücksichtigen, die evtl. unterschiedlich genaue Uhren haben könnten, und eine bidirektionale Kommunikation (Nachstellen der Senderuhr) scheint ebenfalls ausgeschlossen (s. oben).
Klingt auch nicht schlecht, scheint mir aber doch relativ
einfach zu knacken zu sein, wenn man um dieses Prinzip weiß
(das scheint aber wohl der Punkt zu sein, keiner weiß es).
Das klingt im ersten Moment schon so, aber mit dem Zeitstempel wird meistens eine Zufallszahl verrechnet, die sich z.B. im Minutentakt ändert.
Dieses Verfahren wird z.B. zur Authentifizierung bei SecureID-Karten eingesetzt und ist sicher gegen Wiedereinspielen.
Natürlich ist es kompromittierbar, aber welches Verfahren ist das nicht - das eine leichter, das andere schwieriger.
intervallen nach handshake (sender: hallo empfaenger, ich
wechsele jetzt den code - empfaenger: ok - sender: und
tschuess) wechselt.
Eine bidirektionale Kommunikation halet ich für
unwahrscheinlich, wenn man sich die Größe (besser Kleinheit)
mancher Sender ansieht. Kann mir nicht vorstellen, daß da auch
noch ein Empfänger Platz findet.
stimmt, moeglich waere aber auch noch, den acknowledge wegzulassen und zu beten, dass der andere dass dan mitbekommt. wenn die syncronisation dann mal verloren geht, drueckt man wie bei der funkmaus den sync-button an beiden geraeten…
joachim, der hier reine theorie von sich gibt…
Ich bin für alles offen, stoße aber nur auf Wiedersprüche.
wie schon gesagt, keine ahnung wie es wirklich geht…
(Das ist das einzige Forum, das sich annähernd mit meiner
Thematik zu beschäftigen scheint.)
Frag doch mal bei den Elektronikern nach, die wissen aaaalles.
kann mir hier vielleicht jemand erklären, wie „Code Hopping“
(z.B. bei Funksendern von Alarmanlagen) funktioniert?
Der Sender berechnet nach einem math. Verfahren fortlaufend
neue Codes, die sich also nicht wiederholen dürfen.
Konkret: woher weiß der Empfänger, welcher Code für ihn ist,
wenn es sich jedesmal (oder jedenfalls sehr oft) ändert?
Der Empfänger prüft die Richtigkeit des Codes. Dazu gibt es ja
Verfahren, die nicht den Code an sich entschlüsseln, sondern
nur feststellen, ob der Code zulässig ist. Dabei ist es aber so,
daß selbst wenn viele schon gesendeten Codes nicht bekannt sind,
weitere gültige Codes nicht erzeugt werden können.
Gibt
es da eine Liste der nächste n (Plural, denn es könnten
ja einige verloren gehen) erlaubten Codes?
Da kann ich jetzt auch nur spekulieren.
Ich nehme an, daß im Sender ein Zähler hochgezählt wird und
dieser Zählerstand mit übertagen wird. Im Sender wird dann jeder
Code mit niedrigerem Zählerstand nicht mehr zugelassen.
Dazu ist es nur nötig, sowohl im Sender , als auch im Zähler
den letzten Zählerstand zuverlässig zu speichern. Das ist aber
techn. kein Problem.