Se progetti per la privacy e non hai alcun controllo sull'host remoto, devi considerare l'host come potenzialmente compromesso.
L'unico modo per garantire la privacy è gestire solo i dati già crittografati dal lato client (crittografia end-to-end).
Ovviamente, questo limita seriamente i servizi che potrebbero essere forniti dal lato server (dal lato server i dati sarebbero inintelligibili. Quindi potresti anche optare per un mix, crittografando solo i dati sensibili.
SSL o TLS proteggono solo il canale tra client e host. Non dà alcuna garanzia se l'host è di per sé a rischio.
Ultimo ma non meno importante, è estremamente difficile garantire la sicurezza dell'host e prevenire l'hacking: ogni settimana c'è una nuova storia che ricorda quanto siamo vulnerabili. Se si utilizza questo approccio end-to-end, tuttavia, si protegge la privacy anche in caso di un hack: l'utente malintenzionato potrebbe rubare i dati, ma senza la chiave di decrittografia che sarebbe mantenuta sul lato client, non potrebbe fare molto .
Sfortunatamente, questo tipo di design è così sicuro da spingere gli attaccanti al prossimo punto debole: potrebbero quindi provare a corrompere il software distribuito per ottenere una copia dei dati prima che vengano crittografati (approccio trojan)