Mi piace l'idea, ma anch'io ho molte domande lasciate aperte. Si prega di non vedere questo come una forma di piagnisteo, perché l'ho scritto cercando di applicare la mia esperienza di autenticazione a questo nuovo schema.
Sono preoccupato per (in nessun ordine particolare):
- Uso non autorizzato della chiave privata
- Supporto client avanzato (Outlook, Note, ecc.)
- Utilizzo da più computer
- Protezione della chiave privata o crittografia (sul client)
- Autenticazione delle richieste di generazione della chiave
- Privacy
Dettagli sotto. Prima un riassunto di una riga (in grassetto corsivo ) e alcuni chiarimenti.
1. Uso non autorizzato della chiave privata
La chiave privata sarà protetta dal client, con vari gradi di sicurezza.
Sono preoccupato che qualsiasi chiave privata venga utilizzata senza il mio consenso. Quando si tenta di autenticare, avrà luogo un'operazione di firma. Devo essere avvisato prima che venga utilizzato, altrimenti uno script canaglia potrebbe convincere il mio browser a firmare un ticket di accesso e inviarlo. Lo script canaglia potrebbe provenire da un widget, da un add o da un altro XSS. L'implementazione di questo meccanismo varierà in ogni browser, e anche su piattaforme diverse per lo stesso browser, o versioni diverse, ecc. Con una visuale piuttosto incoerente, gli utenti corrono un rischio maggiore di essere attirati per approvare una richiesta di accesso.
2. Supporto client avanzato (Outlook, Note, ecc.)
È stato progettato per funzionare con gli account di posta elettronica. I client di posta "grassi" aziendali sono in qualche modo lasciati indietro.
Perché l'ID del browser funzioni, è necessario un browser che lo supporti. Nel frattempo, alcuni browserid.org hanno rilasciato "shim JavaScript che implementa la funzionalità mancante utilizzando le tecniche HTML5 standard e le routine di crittografia implementate in JavaScript".
Gli utenti in un ambiente aziendale che utilizzano client di posta grossa (Outlook, Notes, Thunderbird) saranno in ritardo, perché il protocollo dovrà essere implementato anche in quei client. Per non parlare del fatto che Outlook non condivide un keystore con Firefox o Thunderbird con IE.
3. Utilizzo da più computer
Porta a una proliferazione di chiavi private, perché lo schema non ha un'autorità centrale.
E c'è un problema di mobilità. Dovrò registrarmi (generare una chiave privata) per ogni computer che uso. Come faccio a cancellare la mia chiave privata in un chiosco Internet o in un computer preso in prestito? Anche con un singolo computer, come posso revocare una chiave memorizzata in un computer rubato? Poiché per un singolo utente, più chiavi di firma sono valide (poiché ogni mio computer ha una propria chiave privata valida), dal punto di vista del fornitore di servizi, qualsiasi token di accesso firmato da un'autorità nota deve essere valido.
4. Protezione della chiave privata o crittografia (sul client)
L'accesso alla chiave deve essere autenticato, il che riporta le password nella foto.
Può essere protetto da una password (limitando il suo riutilizzo malevolo), ma se dovessi cambiare la mia password da qualche parte, non si sincronizzerà a meno che non utilizzi una rete di sincronizzazione basata su browser / cloud. Avere una password da ricordare in qualche modo sconfigge lo scopo di questo schema. È probabile che la stessa password verrà utilizzata per proteggere ogni chiave, proprio come la stessa password viene utilizzata ora per l'autenticazione su più siti Web.
5. Autenticazione delle richieste di generazione della chiave
C'è una discrepanza tra la richiesta di accesso e la generazione della chiave, che un utente malintenzionato potrebbe utilizzare per il phishing.
Non mi è chiaro in che modo l'autorità di certificazione / provider di posta elettronica gestirà i problemi di CSRF. Come faranno a sapere che una richiesta di generazione di chiavi è legittima? La mia cartella spam verrà riempita con richieste di generazione di certificati? O il tasto verrà emesso solo con i server di posta DKIM? Cosa succede se la richiesta è stata intercettata sul suo modo SMTP al server, potrebbe essere modificata?
6. Privacy
L'utilizzo di un tag consente a browserid.org di rompere lo stesso criterio di origine.
E l'utilizzo di un tag script per includere browserid.js consente loro di aggirare lo stesso criterio di origine. BrowserID.org avrà (ha il potere di) conoscere ogni tentativo di accesso che fai. Oppure dovrai ospitare lo script tu stesso (assumendo che sia autonomo) e aggiornarlo se / quando verranno identificati difetti di sicurezza in esso.