Protocollo Smart Lock

2

Ho creato un progetto Arduino per bloccare e sbloccare la porta tramite il mio telefono (con Bluetooth). Funziona bene ma non è sicuro poiché invio il comando di blocco e sblocco in chiaro, senza autenticazione o crittografia. Vorrei aggiungere l'autenticazione a questo in modo che solo io possa entrare in casa. Dovrei essere in grado di dare accesso ad amici / familiari e revocare l'accesso da remoto (senza essere nel raggio d'azione del Bluetooth). Vorrei anche dare accesso temporaneo ad altre persone (ad esempio la donna delle pulizie) ("ogni mercoledì tra le 13:00 e le 17:00"). Poiché vorrei farlo da remoto, penso che avrei bisogno di un server.

Ricordo il protocollo Kerberos della mia classe cripto che sembra che avrebbe portato a termine il lavoro. Ma questo sembra eccessivo e non abbastanza leggero. Non sono sicuro che Kerberos sia la strada da percorrere e se ci siano altri protocolli che soddisfano le mie esigenze?

Ho guardato online per vedere quali protocolli i lucchetti commerciali (come August, Lockitron) usano ma non sono riusciti a trovare troppe informazioni su questo.

    
posta Nimyz 09.03.2015 - 14:35
fonte

1 risposta

1

Potresti usare crypto assimetrico per firmare i comandi. È quindi possibile utilizzare l'autenticazione a chiave pubblica per verificare se i comandi sono stati firmati da qualcuno che si trova nell'elenco dei permessi.

Ogni utente deve generare una coppia di chiavi nella propria app ed è necessario importare la propria chiave pubblica. È inoltre possibile revocare l'accesso rimuovendo la propria chiave pubblica dall'elenco di accesso. L'accesso verrà fornito solo se è possibile verificare un messaggio firmato con una chiave pubblica associata a un utente.

Devi assicurarti di proteggere la tua richiesta con un nonce durante la risposta alla sfida, altrimenti puoi usare un attacco di replay.

    
risposta data 09.03.2015 - 15:30
fonte

Leggi altre domande sui tag