Zugangssystem: Unterschied zwischen den Versionen
→Protokollablauf
>D3f |
>D3f |
||
Zeile 70: | Zeile 70: | ||
1. Der Benutzer besucht die Webseite und authentifiziert sich. Er klickt auf einen Button, und der Pi startet den Login-Vorgang (CSRF-geschützt) | 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. | 2. Der Pi sendet dem ESP eine "Trigger"-Nachricht. | ||
3. Der ESP berechnet TC= | 3. Der ESP berechnet TC=AES(C0++,KH0) und sendet TC an Pi | ||
4. Pi berechnet TCR=HMAC(TC,K0) und sendet TCR an ESP | 4. Pi berechnet TCR=HMAC(TC,K0) und sendet TCR an ESP | ||
5. ESP assertet TCR==HMAC(TC,K0). | 5. ESP assertet TCR==HMAC(TC,K0). | ||
6. ESP berechnet OC= | 6. ESP berechnet OC=AES(C1++,KH1) und PC=Filter4ZiffernAus(AES(C1++,KH1)). Wichtig: C1 wird tatsächlich zweimal inkrementiert. | ||
7. ESP zeigt PC auf Display an. | 7. ESP zeigt PC auf Display an. | ||
8. ESP sendet OC and Pi. | 8. ESP sendet OC and Pi. | ||
9. Benutzer liest PC von Display ab, und tippt es auf Webseite ein. | 9. Benutzer liest PC von Display ab, und tippt es auf Webseite ein. | ||
10. Pi würfelt AC. | 10. Pi würfelt AC (z.B. Hardware-Zufallszahlengenerator in der CPU). | ||
11. Pi berechnet OCR=HMAC(PC||OC||AC, K1) und sendet OCR und AC an ESP | 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 | 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 | 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) | 14. Pi assertet ACR==HMAC(AC,K2) und sendet Tür-auf-Signal an KeyMatic (wie auch immer) |