E2EAuth
Le tue chiavi. I tuoi dispositivi. Completamente protetti.
Panoramica
E2EAuth è una specifica di autenticatore open-source e multipiattaforma progettata per fornire una gestione sicura, privata e affidabile delle credenziali di autenticazione a più fattori su dispositivi desktop e mobili. Supporta le password monouso basate sul tempo (TOTP) e le password monouso basate su HMAC (HOTP), con sincronizzazione crittografata end-to-end, archiviazione locale-first e recupero sociale tramite contatti fidati.
E2EAuth è progettata attorno alla proprietà da parte dell'utente, a un'architettura zero-knowledge, all'interoperabilità, a pratiche di sicurezza trasparenti e all'assenza di vincoli verso un fornitore. I segreti di autenticazione rimangono sotto il controllo dell'utente, e i servizi di sincronizzazione o recupero non devono ottenere un accesso indipendente alla cassaforte delle credenziali dell'utente.
Principi fondamentali
- Sicurezza innanzitutto: Proteggere i segreti di autenticazione durante l'archiviazione, la sincronizzazione, il recupero e l'utilizzo.
- Crittografia end-to-end: Garantire che solo i dispositivi autorizzati dell'utente possano decifrare la cassaforte delle credenziali.
- Funzionamento locale-first: Consentire agli utenti di generare codici di autenticazione senza una connessione a Internet.
- Proprietà da parte dell'utente: Dare agli utenti il controllo su credenziali, dispositivi, chiavi di crittografia, backup e modalità di recupero.
- Compatibilità multipiattaforma: Supportare l'accesso sicuro in ambienti desktop e mobili.
- Architettura zero-knowledge: Impedire a server, operatori di servizi e contatti di recupero di leggere autonomamente il contenuto della cassaforte.
- Trasparenza open source: Consentire la revisione pubblica della specifica, dell'implementazione, dei controlli di sicurezza e delle modifiche.
- Interoperabilità: Supportare gli standard di autenticazione consolidati e la migrazione portabile delle credenziali.
- Recupero resiliente: Fornire opzioni di recupero sicure senza introdurre accessi non autorizzati o backdoor di recupero centralizzate.
- Operazioni verificabili: Mantenere registrazioni trasparenti delle azioni rilevanti per la sicurezza senza esporre inutilmente i segreti di autenticazione.
Moduli principali
Gestione delle credenziali di autenticazione
- Supportare le credenziali TOTP in conformità con RFC 6238.
- Supportare le credenziali HOTP in conformità con RFC 4226.
- Consentire agli utenti di aggiungere credenziali scansionando codici QR compatibili.
- Supportare l'inserimento manuale di nomi dell'emittente, identificatori dell'account, segreti condivisi, algoritmi, lunghezze delle cifre e altri parametri richiesti.
- Convalidare i parametri delle credenziali importate e identificare le configurazioni non supportate.
- Generare codici di autenticazione localmente utilizzando l'algoritmo e i parametri delle credenziali appropriati.
- Visualizzare indicatori di conto alla rovescia per i codici basati sul tempo.
- Tenere traccia dello stato del contatore HOTP e sincronizzare in modo sicuro gli aggiornamenti del contatore tra i dispositivi autorizzati.
- Supportare nomi delle credenziali, informazioni sull'emittente, etichette dell'account, icone, categorie, tag e note.
- Fornire ricerca, ordinamento, filtraggio e preferiti.
- Visualizzare chiaramente lo stato di scadenza e rigenerazione dei codici.
- Supportare la copia sicura dei codici di autenticazione con un comportamento configurabile di svuotamento degli appunti.
- Ridurre al minimo l'esposizione di segreti e codici nei log delle applicazioni, nelle notifiche, nei report di crash e nell'output diagnostico.
- Identificare chiaramente credenziali non valide, scadute, non supportate o potenzialmente in conflitto.
- Preservare la funzionalità delle credenziali quando il dispositivo è offline.
Cassaforte sicura e archiviazione locale
- Archiviare le credenziali di autenticazione in un vault locale protetto.
- Cifrare i dati sensibili delle credenziali a riposo.
- Separare le chiavi di cifratura del vault dai dati delle credenziali memorizzati.
- Utilizzare le strutture sicure della piattaforma per proteggere il materiale chiave specifico del dispositivo, quando disponibili.
- Supportare un meccanismo di sblocco del vault controllato dall'utente.
- Supportare una forte derivazione della chiave basata su password, ove vengano utilizzate password.
- Fornire uno sblocco biometrico opzionale tramite le strutture di sicurezza supportate dal sistema operativo.
- Applicare un blocco automatico configurabile dopo inattività o passaggio dell'applicazione in background.
- Richiedere la riautenticazione per le operazioni sensibili in base alle politiche di sicurezza definite dall'utente.
- Proteggere dall'esposizione accidentale tramite anteprime delle applicazioni, screenshot ove supportati, cronologia degli appunti e contenuto delle notifiche.
- Fornire un blocco sicuro del vault e la terminazione della sessione.
- Evitare di memorizzare segreti di autenticazione in chiaro nei log, nei file temporanei o nei backup non protetti.
- Comunicare i limiti della protezione a livello di dispositivo e i rischi dei sistemi operativi compromessi.
Cifratura end-to-end e gestione delle chiavi
- Cifrare il contenuto del vault prima che lasci il dispositivo di origine.
- Garantire che i fornitori di sincronizzazione non possano decifrare autonomamente i dati delle credenziali.
- Utilizzare algoritmi e protocolli crittografici consolidati e sottoposti a revisione indipendente.
- Definire i requisiti di cifratura autenticata, derivazione sicura delle chiavi, gestione dei nonce e rotazione delle chiavi.
- Stabilire identità autenticate dei dispositivi e uno scambio sicuro delle chiavi per l'accoppiamento dei dispositivi.
- Impedire a dispositivi non autorizzati di unirsi alla rete di sincronizzazione di un utente.
- Proteggere i dati sincronizzati da manomissioni, replay e modifiche non autorizzate.
- Vincolare i record cifrati ai metadati contestuali appropriati per prevenire sostituzioni indesiderate tra vault o record.
- Separare le responsabilità di autenticazione, cifratura, identità del dispositivo e recupero.
- Impedire che password, chiavi di cifratura, quote di recupero e segreti di autenticazione compaiano nella telemetria o nell'output diagnostico.
- Supportare la revoca dell'accesso ai dispositivi e la rotazione delle chiavi di cifratura pertinenti.
- Comunicare chiaramente che dispositivi precedentemente autorizzati o compromessi potrebbero conservare informazioni che hanno già decifrato.
- Documentare le ipotesi crittografiche, i modelli di minaccia, i cicli di vita delle chiavi e i limiti del recupero.
Sincronizzazione tra dispositivi