Türöffnung mit iButton / 1-Wire

  • Guten Morgen.


    Damit wir das eher allgemeine und theoretische Sicherheitsthema nicht weiter aufblähen würde ich die praktische Anwendung von 1-Wire gerne hier auslagern.


    Ich habe mir dazu gestern noch mal ein par Gedanken gemacht:


    • Annahmen:

      • DoorPi vorhanden oder im gleichen Projekt geplant -> RasPi also vorhanden
      • iButton sind derzeit als sicher anzunehmen (es sei denn sie werden physikalisch geklaut)
      • Multi Factor Authentication (MFA) zumindest optional vorsehen
      • Spätere Nutzung von erweiterten Sicherheitsfunktionen (RSA oder gespeichertes Zertifikat) wünschenswert, sollte es mal nicht mehr ausreichen, die Seriennummer zu lesen
      • Vandalismus Schutz (Überspannung) erforderlich, da die elektrischen Kontakte nach außen geführt werden müssen.
      • Das Backend System sollte möglichst nicht sicher sein. Und einfach.

    Dabei bin ich auf folgende Lösungsvarianten gekommen:


    1. Anschluss 1-Wire über I2C Bus an den Pi.


    • Vorteile:

      • Nur ein System muss gewartet / Gepflegt werden
      • Schlüsselverwaltung einfach
      • Die Integration über den I2C Buss ist sehr einfach
      • Eine MFA ist einfach zu realisieren (z.B. über PIN)
      • Es kann jedem iButton eine individuelle PIN zugewiesen werden
      • Sicherheit kann per Software jederzeit aufgerüstet werden
    • Nachteile:

      • Höheres Sicherheitsrisiko, da der Pi im Backend vernetzt werden muss (z.B. WLAN).
      • Gesamtsystem komplexer und damit anfälliger
      • Entweder galvanische Trennung nötig
      • Oder zwingend MFA (erst eine erfolgreiche PIN Eingabe verbindet den Reader mit einem Relais mit dem Bus

    2. Nutzung eines fertigen Systems wie ACD-15 (http://www.fuchs-shop.com/de/shop/34/1/13372355/)


    • Vorteile:

      • Sehr einfach zu nutzen (keine Programmierung etc.)
      • Sicher das völlig unabhängig vom Netzwerk
      • Schlüsselverwaltung einfach durch Tasten
    • Nachteile:

      • Kein Vandalismus Schutz (könnte wie in Lösung 1 durch Relais getrennt werden, welches der Pi steuert)
      • keine MFA bzw. keine individuelle PIN Zuordnung zum Schlüssel möglich
      • Keine direkte Interaktion mit dem Pi möglich
      • Begrenzte Anzahl von Schlüsseln (sollte aber reichen)
      • Keine Erweiterung der Software möglich


    3. Nutzung eines intelligenteren Systems für die Steuerung (Adurino micro)


    • Vorteile:

      • Sicher, da unabhängig vom Netzwerk
      • Software erweiterbar
      • Daten können mit dem Pi ausgetauscht werden (Z.B. über PIN's mit Opto Koppler)
      • System ist autark und nicht im Netzwerk erreichbar
    • Nachteile

      • Vermutlich viel Eigenentwicklung nötig
      • Kein Vandalismus Schutz (könnte wie in Lösung 1 durch Relais getrennt werden, welches der Pi steuert)
      • keine individuelle PIN Zuordnung zum Schlüssel möglich bzw. schwierig, wenn die Eingabe über den PI erfolgt
      • Zweites System was gepflegt und gewartet werden muss
      • Schlüsselverwaltung müsste ebenfalls selbst entwickelt werden bzw. ist problematisch, da das System ja nicht im Netzwerk ist






    Ich tendiere momentan zu Variante 1. Den Pi als schlankes Linux System zu härten dürfte ja möglich sein. Ein WLAN mit einem guten Schlüssel kann auch als sicher angenommen werden. Trenne ich nun den Reader vom I2C Adapter und schalte die erst zusammen, wenn eine korrekte Pin eingegeben wurde, ist auch das Problem des Vandalismus Schutz gelöst. Zumal ich hier bei uns den Vandalismus generell unwahrscheinlich, und die Beschädigung durch mutwillig angelegte Fremdspannung für nahezu ausgeschlossen halte. Die MFA hätte man damit auch gleich im Sack. Die Integration über den I2C Bus ist gut Dokumentiert und einfach zu nutzen. Die Schlüsselverwaltung einfach zu regeln. Meldungen zu Türöffnungen etc. können direkt in andere Anwendungen übertragen werden. Den Aufwand, ein Fremdsystem mit zu integrieren wenn man eh einen Pi einsetzt, sehe durch die oben aufgeführten Lösungen als Überflüssig an.






    Sobald die Teile eintrudeln werde ich das Puzzle mal zusammensetzen und berichten. :)

  • Zitat von AndyGR42

    Variante 3:

    • Vermutlich viel Eigenentwicklung nötig
    • Kein Vandalismus Schutz (könnte wie in Lösung 1 durch Relais getrennt werden, welches der Pi steuert)
    • keine individuelle PIN Zuordnung zum Schlüssel möglich bzw. schwierig, wenn die Eingabe über den PI erfolgt
    • Zweites System was gepflegt und gewartet werden muss
    • Schlüsselverwaltung müsste ebenfalls selbst entwickelt werden bzw. ist problematisch, da das System ja nicht im Netzwerk ist

    1. Nö. Programm steht hier: http://ice-karlsruhe.de/projek…inks-und-ergaenzungen/#k6. Auf einfachste Weise zu modifizieren und per PC in einen Micro zu programmieren. Schaltplan ist ebenfalls veröffentlicht - ein paar LED, Widerstände, fertig.


    2. Doch. Schottky-Schutzdioden schützen den Arduino, der kann problemlos galvanisch vom Backend getrennt werden. Da müsste der Vandale schon schwereres Gerät auffahren - und dann kann er noch lange nicht herein.


    3. Doch. Serielle Schnittstelle auf dem Arduino kommuniziert gerne mit dem Pi. Oder anders herum: Statt eines einzelnen Arduino-Pin werden z.B. 4 verwendet, um dem Backend zu sagen, welcher der erlaubten iButtons aufgelegt wurde.


    4. Arduino-Programm steht auf dem Arbeitsplatzrechner. Neues Flashen dauert keine 10 Sekunden - man könnte problemlos einen 2. Arduino als Plugin-Ersatz vorhalten.


    5. Nö - wieso das denn ? Die Keys sind in dem Arduino-Programm hinterlegt, weiter siehe 4.


    Ich bin ein großer Freund von 1-Wire Systemen, betreibe in meinem SmartHome 6 verschiedene Bussysteme, von denen 4 per USB, einer per LAN und einer per WLAN an meinen zentralen Raspberry Pi 3 (mit FHEM) angeschlossen sind. Gerade habe ich ein Anemometer mit Windfahne aus einer älteren WS2800-Wetterstation auf das Auslesen mit 1-Wire umgestellt. In dem sicherheitskritischen Zugangssystem würde ich aber niemals zu einem 1-Wire-Bus am Raspberry Pi raten.


    LG


    pah

  • Hmm... hab mir mal aus Neugierde ein paar iButtons und Reader bestellt.
    Wäre ja eigentlich kein Problem, das in den sowieso schon vorhandenen Uno zu integrieren und dann per I2C an den Raspi weiterzugeben - oder übersehe ich hier irgendwas?

  • Hallo,


    Danke für den Link zu den Code Beispielen.


    vielleicht habe ich das nicht präzise genug definiert


    zu 1: Es finden sich sicher ausreichend Code Beispiele für die einzelnen Komponenten. Betrachte ich aber das große Ganze, also die MFA bzw. die Kommunikation mit dem Pi benötigt mit ziemlicher Sicherheit einiges an Entwicklung. Da halte ich das simple, elektromechanische Entsperren des Readers durch den ersten Faktor (PIN) für erheblich einfacher. Ob dann der Adurino die Türe nach Anlagen des iButton autark öffnet oder den Key vorher noch mit dem PIN (Pi) abgleicht spielt erst mal keine Rolle. Das System ist autark und kann vom Pi nur sehr eingeschränkt bis gar nicht beeinflusst werden.


    3. Das wäre für mich ein gutes Beispiel für den Programmieraufwand.


    5. Für mich ist die Definition von "einfach" an dieser Stelle nicht, einen Microcontroller neu zu flashen, wenn ich einen Schlüssel ändere. Einfach wäre es, den Schlüssel per Knopfdruck anzulernen oder eine Schlüsseldatei remote (SSH oder SCP) zu verwalten.



    Ach ja, Preise bei Loxone sind eher zu weinen als zum lachen... :)

  • ad 5) was spricht denn gegen eine lösung, in der der arduino nur den boten spielt und doorpi dann auswertet und entscheidet, wer rein darf und wer nicht? dann müsste der sketch nicht geändert werden, ein einfaches anpassen der doorpi.ini reicht

  • Gar nichts. Dann könnte man aber auch auf den Arduino verzichten, stattdessen die gesamte Türsprechstelle über ein einziges USB-Kabel anschließen:


    - Audio direkt hinter der Frontplatte verbaut, an DoorPi via USB
    - DS2480B als Busmaster ebenfalls via USB angekoppelt
    - USB-Relaisplatine und Tastenabfrage.


    LG


    pah

  • Guten Morgen.


    Ich habe die Möglichkeit den Pi innen zu einzubauen, was mir erheblich lieber ist als außen. Die Sprechstelle außen kann dann kleiner und flacher werden. Außerdem hängt sie in SSW Lage, also voll in der Sonne, was vermutlich im Sommer die Temperatur zu hoch werden lässt.


    Zwischen Pi und der Sprechstelle sind knapp 1,5m J-Y(ST). Für 1-Wire oder die serielle Verbindung des Nextion sollte das kein Problem darstellen. Bei USB habe ich da so meine Zweifel. Zumal das wieder einen Teil der Elektronik in die Sprechstelle bringen würde, der vielleicht nicht für die Temperaturen ausgelegt ist. Das Nextion geht bis +70 Grad, was auch in der Sonne ausreichend sein sollte. Hier mache ich mir eher Sorgen um die Lesbarkeit, aber das werden wir sehen. Mein Ziel ist es, möglichst wenig in der Sprechstelle und dafür möglichst viel innen zu verbauen.


    Im Ersten Schritt werde ich auch erst mal meine "dumme" Ritto Sprechstelle draußen anbringen. Die kann nur Klingeln und Audio :) Das Teil ist 20 Jahre alt aber nagelneu (lag vermutlich bei einem pensionierten Ritto Mitarbeiter im Keller) und wurde von mir soweit umgebaut. Wenn ich noch das Problem mit dem zu leisen Mikro gelöst habe ist sie quasi fertig.


    Dann folgt Teil 2 mit Display und 1-Wire. Hier habe ich bisher noch einen Showstopper, und das ist der Antrieb für die Türöffnung. So lange ich das Problem nicht gelöst habe ist der Rest auch unnötig.

  • Bedingt. Denn dann hängt die Aufgabe, mindestens 1x pro Sekunde eine Bussuche zu initialisieren wieder beim Raspberry Pi. Und über die Standardsoftware OWFS kann man das nicht fein genug steuern.


    Bei genauer Überlegung wäre es doch besser, den Arduino zu verwenden - und mit ihm über Serial via USB zu kommunizieren.



    Zitat

    Bei USB habe ich da so meine Zweifel.

    Hm. Meine USB Busmaster hängen bis zu 15 m entfernt vom Raspberry Pi => USB Extender im USB-Kabel.


    Mit dem vorhandenen Kabel wird es etwas komplizierter, geht aber auch:


    http://www.voelkner.de/product…=43&products_model=R45189


    Das bedeutet: Übertragung zwischen Türstation und DoorPi nur digital, damit störungssicher. Ibs. dem Audio tut das gut.


    LG


    pah

  • Das benötigt ein Cat5 Kabel. Ich habe aber nur Klingeldraht. Vermutlich würde es funktionieren, nur dürfte die Leitung bei den hohen Frequenzen wie eine Antenne senden. Wir haben sogar schon mal 100Mbit Ethernet über 20m J-Y(ST) laufen lassen. Allerdings war im gleichen Kabel telefonieren nicht mehr möglich. Radio hören in der Nähe sicher schwierig :) Ich denke, ich bleibe bei analogem Audio. Die Kabellänge ist nicht kritisch. Wenn ich das Mikro auf Line-In Pegel verstärke sollte auch das sauber über die Leitung gehen. Wenn das in der "einfachen" Sprechstelle funktioniert übernehme ich es später.


    1-Wire und Nextion seriell arbeiten auch mit relativ niedrigen Taktfrequenzen. Da hoffe ich mal auf wenig Nahnebensprechen auf der kurzen Distanz.