Questo libro Bianco sulla Sicurezza, è stato in precedenza pubblicato sul wickr.com/security da Chris Howell, Wickr CTO
Wickr di sicurezza è costruito sul concetto di dubbia server. In altre parole, miriamo a fornire sicurezza anche in caso di violazione del server “worst case”, in cui un utente malintenzionato onnipotente ha il pieno controllo delle risorse del server, per includere la capacità di leggere e modificare il codice e i dati dell’applicazione back-end e passare inosservati per un po’ di tempo.
di Terze parti, gli esperti hanno continuamente controllati del nostro fine-per la crittografia e la protezione dall’inizio. Come parte delle nostre promesse di sicurezza dei clienti recentemente rilasciate, una società di sicurezza indipendente leader ha convalidato che il contenuto dei messaggi non è leggibile sui nostri componenti del server back-end. Questo documento esamina la questione della sicurezza e del compromesso del server in modo più ampio. Riassume gli elementi chiave dell’architettura di sicurezza di Wickr che forniscono resilienza al compromesso del server back-end e discute l’evento in termini di capacità di attacco effettive o impatto nel mondo reale.
Obiettivi dell’attaccante
Per capire cosa può fare un attaccante con un compromesso del server Wickr , dobbiamo capire il ruolo del server nell’architettura Wickr e considerare il valore dei dati contenuti nei componenti e nei database di back-end. Il server Wickr svolge un ruolo chiave nella consegna dei messaggi a supporto della comunicazione sincrona e asincrona. Fornisce inoltre servizi di directory utente centralizzati, set di autorizzazioni e sincronizzazione di profili e impostazioni.
Gli attacchi che tentano di sfruttare il server Wickr possono essere generalmente classificati come segue:
- Attacchi finalizzati alla sicurezza dei messaggi, o all’accesso al contenuto di messaggi in chiaro;
- Attacchi finalizzati a informazioni e metadati, o alla raccolta e all’armamento di informazioni sensibili sul sistema o sui suoi utenti;
- Attacchi finalizzati alla disponibilità o alla distruzione dei dati.
Discutiamo ogni tipo di attacco nelle sezioni che seguono.
Message security
Compromettendo il server, l’utente malintenzionato ottiene l’accesso ai messaggi crittografati e ai pool di chiavi effimere pubblici . Tuttavia, i messaggi vengono crittografati end-to-end e sia i messaggi crittografati che le chiavi nei pool di chiavi vengono autenticati end-to-end. Ciò significa che gli aggressori non hanno la capacità di leggere o modificare i messaggi crittografati mentre passano attraverso il server e non possono manipolare i pool di chiavi per eseguire attacchi man in the middle.
Con queste protezioni in atto, gli aggressori che sperano di ottenere l’accesso al contenuto del messaggio devono cercare di prendere il controllo di un’identità Wickr. Le identità Wickr sono radicate in coppie di chiavi asimmetriche che vengono utilizzate per firmare e verificare digitalmente i dati. La fiducia viene stabilita verificando la catena di firma da un determinato oggetto o componente crittografico all’identità radice o all’utente (ad esempio, messaggio all’app, app all’utente).
Per produrre una chiave autentica (o un messaggio), un utente malintenzionato dovrebbe eseguire una delle seguenti operazioni:
1. Ottieni il componente privato della chiave di identità di un utente, che potrebbe essere utilizzato per autenticare le app Wickr registrate nell’account.
2. Ottieni il componente privato della chiave di identità di un’app, che potrebbe essere utilizzata per produrre chiavi di messaggistica effimere autentiche e autenticare i messaggi inviati dall’app.
3. Ingannare un utente ad accettare una chiave di identità falsa per un utente di destinazione, che avrebbe lo stesso effetto di ottenere la chiave di identità esistente dell’utente.
I componenti privati delle chiavi di identità delle app sono protetti in un archivio dati crittografato lato client e fuori dalla portata di un utente malintenzionato lato server. I componenti pubblici sono memorizzati sul server, ma sono firmati dalla chiave di identità (privata) dell’utente, proteggendoli da manomissioni. Indurre gli utenti ad accettare chiavi di identità false è più un attacco di ingegneria sociale che un attacco tecnico e ha poco a che fare con un punto d’appoggio lato server . Pertanto, la capacità dell’attaccante lato server di compromettere una fonte di autenticità — e in realtà la loro unica via tecnica di attacco per influire sulla sicurezza dei messaggi — si riduce alla loro capacità di compromettere la chiave di identità di un utente.
Per vari motivi legati principalmente all’usabilità del sistema, le chiavi di identità dell’utente sono memorizzate sul server Wickr e protette con una forte crittografia simmetrica. La protezione di questi dati è in definitiva una chiave a 256 bit che è una forte derivata crittografica della password dell’utente. Questa chiave non viene mai memorizzata o inviata al server, quindi un utente malintenzionato che tenta di compromettere la chiave di identità di un utente dovrebbe eseguire un attacco di indovinare la password contro la versione memorizzata utilizzando un algoritmo di generazione derivata della password specificamente progettato per rendere il processo il più possibile dispendioso in termini di risorse e tempo. Per le password non banali, potremmo aspettarci che questo processo richieda molti anni fino a molte migliaia o milioni di anni se l’utente sceglie semplicemente una password di qualità di soli 8 caratteri. Per compromettere più account, l’attaccante avrebbe bisogno di spendere lo stesso sforzo ancora e ancora. Questo livello di protezione significa che gli attacchi lato server contro le chiavi di identità degli utenti non sono fattibili contro tutti tranne gli account più deboli. Vedi il White Paper di Wickr sulla protezione con password.
Informazioni e metadati
Con il controllo del server Wickr, l’attaccante ha accesso a tutte le informazioni che il servizio ha sui suoi utenti. Nel progettare per questa minaccia, Wickr limita la quantità di informazioni utente che memorizziamo a ciò che è minimamente necessario per fornire un servizio di qualità. Il seguente è un elenco di account utente informazioni disponibili per Wickr servizi al momento della stesura di questo:
Wickr Me:
- Data un account stato creato
- Tipo di dispositivo(s) in cui il conto è stato utilizzato (ad esempio, iOS, Android)
- Data dell’ultimo utilizzo
- numero Totale di messaggi inviati/ricevuti
- Numero di ID (numeri di telefono) e ‘ collegato al conto (non il testo di riferimento esterni Id stessi)
- Limitata record di recenti modifiche alle impostazioni dell’account (ad esempio, l’aggiunta o la rimozione di un dispositivo; non include il contenuto del messaggio o di routing e le informazioni di consegna)
- Wickr numero di versione
Wickr Pro:
- Wickr Pro ID (indirizzo email)
- Rete di affiliazione
- numero di Telefono, se fornito dall’amministratore di rete come una seconda forma di autenticazione
- Data un account stato creato
- Tipo di dispositivo(s) su che un account è stato usato
- Data dell’ultimo utilizzo
- numero Totale di messaggi inviati/ricevuti
- Numero di ID (numeri di telefono) e ‘ collegato al conto (non il testo di riferimento esterni Id stessi)
- Limitata record di recenti modifiche alle impostazioni dell’account (ad esempio, l’aggiunta o la rimozione di un dispositivo; non include il contenuto del messaggio o le informazioni di routing e consegna)
- Numero di versione Wickr
- Informazioni relative al pagamento
- Impostazioni di rete incluse registrazioni limitate di recenti modifiche alle impostazioni di rete (ad esempio, abilitazione o disabilitazione della federazione)
Wickr Enterprise (distribuzione controllata dal cliente):
- Wickr ID Enterprise (con maniglia)
- Rete di affiliazione
- Data un account stato creato
- Tipo di dispositivo(i) di cui account è stato usato
- Data dell’ultimo utilizzo
- numero Totale di messaggi inviati/ricevuti
- Limitata record di recenti modifiche alle impostazioni dell’account (ad esempio, aggiunta o rimozione di una periferica; non include il contenuto del messaggio o di instradamento e consegna informazioni)
- Wickr numero di versione
- impostazioni di Rete, compresi limitata record di recenti modifiche alle impostazioni di rete (ad es., abilitando o disabilitando la federazione)
Quanto sopra sarebbe quindi a rischio di divulgazione in caso di compromissione del server. Le nostre linee guida sui processi legali e l’informativa sulla privacy contengono discussioni più dettagliate su come limitiamo la raccolta e l’uso delle informazioni degli utenti sulla nostra piattaforma.
Il controllo del server fornisce anche a un utente malintenzionato la possibilità di raccogliere informazioni e metadati che il servizio ignora. I due migliori esempi di questo in Wickr sono gli indirizzi IP del client e il tracciamento dei messaggi.
Wickr as a service è completamente disinteressato all’indirizzo IP dei client Wickr. Non li registriamo nei registri delle applicazioni di configurazione standard o li memorizziamo nei record utente. Essi sono, tuttavia, a disposizione di alcuni componenti dell’infrastruttura di back-end, e supponendo che l’attaccante controlla il componente giusto e conduce il traffico giusto e analisi di correlazione, queste informazioni sarebbero a rischio.
Wickr è anche disinteressato a chi sta comunicando con chi sulla rete. Non registriamo queste informazioni nei registri delle applicazioni di configurazione standard. Tuttavia, supponendo che l’attaccante investa una quantità sufficiente di tempo e fatica nel processo, il numero, i tempi, i tipi di messaggi inviati e ricevuti e gli ID Wickr di origine e destinatario sarebbero a rischio. Gli ID Wickr in chiaro non sono disponibili negli archivi dati Wickr Me, quindi questo tipo di analisi sarebbe molto più difficile (anche se non impossibile) da fare in Wickr Me.
Disponibilità
Anche se forse non è la forma di attacco più interessante che si possa immaginare contro un servizio di messaggistica sicuro, gli attacchi mirati alla disponibilità dei servizi hanno probabilità molto reali e impatti abbastanza evidenti. Non c’è molto da discutere su questo argomento in questo documento diverso da riconoscere il rischio, ma un utente malintenzionato con il controllo dei server Wickr avrebbe il potere di disabilitare i servizi e cancellare i dati, se semplicemente causare il caos o negare il servizio agli utenti legittimi.
Sommario
Speriamo che questo documento sia informativo per i clienti che desiderano comprendere l’impatto reale di una violazione del server Wickr. In sintesi, un tale evento se sfruttato da un avversario capace metterebbe potenzialmente a rischio quanto segue:
1. La sicurezza dei messaggi futuri di account con password deboli.
2. La riservatezza delle informazioni e dei metadati dell’account limitati.
3. La disponibilità dei servizi.
Scegli password di qualità.
Se vengono utilizzate password di qualità, un compromesso del server Wickr (noto o sconosciuto) può essere considerato un evento a basso o nessun impatto.
Considera il rekeying periodico.
La creazione periodica di una nuova coppia di chiavi e la nuova verifica con altre (ad esempio, annualmente, semestralmente) possono ridurre ulteriormente il rischio di un attacco riuscito di indovinare la password per compromettere la chiave di identità di un utente. È anche un metodo efficace per riabilitare un account utente che ritieni sia già stato compromesso tramite l’ipotesi della password o il compromesso sul lato client. Gli utenti possono riattivare il proprio account completando il flusso “Password dimenticata” in Wickr Pro e Wickr Enterprise o creando un nuovo ID in Wickr Me.