Sto cercando di aggiungere nuovi dispositivi in un sistema sicuro. Un sistema sicuro in cui un server web è identificato dalla CA personalizzata e anche tutti i client lo sono. Cioè, ogni client che si connette al server ha il proprio certificato. Se devo aggiungere un nuovo dispositivo mobile al sistema sicuro, questi sono i passaggi.
- L'app viene installata dall'utente dall'archivio app
- Una volta aperta l'app, l'utente vede una stringa di 16 lunghezze (l'utente non deve effettuare il login per vederlo). Prima di visualizzarlo all'utente, la stringa viene inviata al server web tramite websocket, hash. Il server memorizza questa stringa con hash con ttl di 3 minuti.
- L'utente accede al server web con le sue credenziali (ha le autorizzazioni per aggiungere un nuovo dispositivo) e inserisce la stringa di 16 lunghezza lì. Il server web lo blocca e confronta l'hash con quello salvato.
- Il server web risponde all'app mobile sullo stesso websocket con un nuovo certificato. La risposta è simmetrica crittografata con la stringa di lunghezza 16.
- Questo certificato viene utilizzato per future interazioni con il webserver, quindi non richiede alcun intervento umano.
Non è abbastanza sicuro? Quale sarebbe un modo più standard per farlo?