Zwei Arduinos über 433 MHz verbinden, geschützt vor Angriffen

Hi,

ich versuche mir gerade eine kleine Alarmanlage zu bauen. Am Fenster hängt ein Sender, welcher über Funk an den Receiver den Status des Fensters sendet, sobald sich dieser ändert. Ist die Alarmanlage scharf geschaltet und wird ein Fenster geöffnet, soll ein Alarm erfolgen.
Wenn ich nur einen Status, sprich "Kipp", unverschlüsselt an den Receiver sende, könnte dieser ja von einem dritten Aufgezeichnet werden, welcher dann nach belieben bei mir einen Alarm auslösen könnte.

Gibt es irgendetwas in Richtung Rolling Code für den Arduino?

Gruß Grave

Bisher habe ich schon sehr viel mit den 433 MHz Modulen aufgebaut, aber eine Alarmanlage würde ich ganz sicher nicht damit aufbauen.
Einen Rollingcode habe ich bisher nicht gefunden, da musst du wohl selbst Hand anlegen.
Ob das dadurch sicherer wird, bezweifle ich.

Ich sehe momentan noch nicht die Unsicherheit in dem System. Es werden ja lediglich die Zustände des Fenster über Funk mitgeteilt. Empfängt der Receiver den Status gibt er an den Sensor eine positive Antwort, ansonsten soll der Sensor weiter versuchen.
Die Alarmanlage an und ausschalten geschieht über Kabel.
Wie soll ein Einbrecher das System insoweit stören, dass er Gefahrlos einbrechen kann?
Stehe aber momentan noch ziemlich am Anfang des ganzen, vielleicht bin ich aber auch zu blauäugig.

Gruß Grave

Die Unsicherheit liegt darin, dass das Band (433 MHz) ein von jedem nutzbaren ISM-Band ist und da kann jeder "soviel" darauf Senden, wie er möchte. Naja, es gibt schon Beschränkungen.

Und wenn das jemand herausfindet, dann sendet er dauernd und deine Anlage macht nix mehr.
Soweit zur Theorie.

Ob das sicher oder unsicher ist, musst du selbst entscheiden.

Funkschlösser für Autos sind recht sicher (ständig wechselnder Code). Du kannst aber auf einem Parkplatz ganz einfach einen recht starken 433Mhz Sender aufstellen. Schon funktionieren die Schlösser nicht mehr. Irgendeiner merkt das sicher nicht und lässt sein Auto unverschlossen stehen. Das haben wir früher mal mit der Dezimeterwellenkanone aus der Physiksammlung ausprobiert :sunglasses:

Hallo,

der "Trick" der besseren Funkalarmanlagen ist zuerst einmal eine bidirektionale Kommunikation. Also der Sensor und die Alarmzentrale tauschen in gewissen Abständen ein paar bit aus, selbstverständlich mit ausreichender Sicherheit wie rolling code u.s.w. Wenn die Kommunikation unterbrochen ist wird zuerst versucht diese wiederherzustellen, z.B. Kanalwechsel. Wenn der Sensor trotzdem nicht mehr erreichbar ist (warum auch immer) wird Sabotagealarm ausgelöst. Herausfordernd ist es dabei den Stromverbrauch so gering wie möglich zu halten wegen der Batteriespeisung. Unter anderem wird der Sensor bei unscharfer Anlage (bis auf den Empfänger) deaktiviert damit dieser nicht jede "erlaubte" Bewegung unnötigerweise an die Zentrale übermittelt.

Billige 433MHz Module sind ganz sicher nicht dafür vorgesehen, jedenfalls wenn es mehr als nur ein Spielchen werden soll. NR24L01 und ähnliche Module in verbindung mit ausgeklügeltem Sleep Mode sind schon eher eine Basis

Christian

Dass mit dem Stromverbrauch sollte kein Problem sein. Auch die bidirektionale Kommunikation hatte ich schon bedacht. Nur finde ich nichts zu einem Rolling Code.

Dass die Anlage nicht VDS zertifiziert wird, ist mir auch klar. Aber besser als gar nichts wäre sie allemal. Und vor allen Dingen ist die Frau ein wenig beruhigter

Wenn du alle Einwände von oben berücksichtigst, solltest du auf 433 MHz verzichten und mindestens auf 868 MHz wechseln.

Schau mal hier:
Verschiedene Sende/Empfangsmodule
die Auswahl ist riesig. :wink:

433 MHz ist für einfache, nicht sicherheitsrelevante Schaltvorgänge und Sensordaten-Übertragungen geeignet.

Danke, die sehen um einiges besser aus. Haben vor allen dingen schon eine AES Verschlüsselung eingebaut.
Jetzt würde nur noch ein Rolling Code fehlen.

Gruß Grave

In der zu brauchenden JeeLib library steht folgendes unter dem Punkt "void rf12_encrypt (const uint8_t * key)":

This enables or disables encryption using the public domain XXTEA algorithm by David Wheeler. The payload will be extended with 1 .. 4 bytes, containing a 6..30-bit sequence number which is incremented in the sender for each new packet.

Verstehe ich das so, dass bei jedem neuen Paket, welches gesendet wird, auch wenn es vom gleichen Sender kommt, der verschlüsselte Code sich ändert?