Zugangssystem: Unterschied zwischen den Versionen

2.170 Bytes hinzugefügt ,  19:36, 4. Feb. 2016
keine Bearbeitungszusammenfassung
>Kaiser
Keine Bearbeitungszusammenfassung
>D3f
Keine Bearbeitungszusammenfassung
Zeile 33: Zeile 33:
===Raumtür===
===Raumtür===
*Schlüsselkasten z.B. [http://www.amazon.de/ABUS-46331-Key-Garage-Wandmontage/dp/B001T0HERW/ ABUS-46331]
*Schlüsselkasten z.B. [http://www.amazon.de/ABUS-46331-Key-Garage-Wandmontage/dp/B001T0HERW/ ABUS-46331]
==Das Protokoll==
Für die Außentür könnte folgendes Protokoll verwendet werden. Annahme: Ein ESP8266 kontrolliert ein Relais, welches den Türöffner auslöst. Er ist über Freifunk mit dem Internet verbunden und besitzt ein [https://learn.adafruit.com/assets/17227|4-stelliges LED-Display], welches von Aussen sichtbar ist. Irgendwo sitzt ein Pi (der dann auch die Zwischentür steuert). Dort läuft eine Webseite.
Benutzer bekommen SSL-Client-Zertifikate ausgestellt, wenn sie zutrittsberichtigt sind. (Ebenso kann es Gast-Zutrittscodes geben, die dann nur beschränkt gültig sind.)
===Protokoll-Bestandteile===
====Challenges====
Challenges sind 128-Bit-Werte sofern nicht anders angegeben.
* TC = Trigger Challenge
* OC = Opening Challenge
* PC = Presence Challenge (4-stelliger Zahlencode)
* AC = Acknowledge Challenge
====Secret Keys====
* KH0 = Trigger PRNG Key
* KH1 = Opening PRNG Key
* K0 = Trigger Key
* K1 = Opening Key
* K2 = Acknowledge Key
====Interne Counter des ESPs====
* C0 = Interner Counter im RAM
* C1 = Interner Counter, der alle 100 Iterationen im Flash des ESPs gespeichert wird. Beim Booten wird er um 100 erhöht und sofort nochmal abgespeichert. (Write Cycle Reduction für den Flash)
===Protokollablauf===
1. Der Benutzer besucht die Webseite und authentifiziert sich. Er klickt auf einen Button, und der Pi startet den Login-Vorgang (CSRF-geschützt)
2. Der Pi sendet dem ESP eine "Trigger"-Nachricht.
3. Der ESP berechnet TC=HMAC(C0++,KH0) und sendet TC an Pi
4. Pi berechnet TCR=HMAC(TC,K0) und sendet TCR an ESP
5. ESP assertet TCR==HMAC(TC,K0).
6. ESP berechnet OC=HMAC(C1++,KH1) und PC=Filter4ZiffernAus(HMAC(C1++,KH1)). Wichtig: C1 wird tatsächlich zweimal inkrementiert.
7. ESP zeigt PC auf Display an.
8. ESP sendet OC and Pi.
9. Benutzer liest PC von Display ab, und tippt es auf Webseite ein.
10. Pi würfelt AC.
11. Pi berechnet OCR=HMAC(PC||OC||AC||, K1) und sendet OCR und AC an ESP
12. ESP assertet OCR==HMAC(PC||OC||AC||, K1) und öffnet Tür
13. ESP berechnet ACR=HMAC(AC,K2) und sendet ACR als Response an Pi
14. Pi assertet ACR==HMAC(AC,K2) und sendet Tür-auf-Signal an KeyMatic (wie auch immer)
Anonymer Benutzer