I know client side encryption is generally not seen as ideal.
Non penso che sia vero; potresti mescolare alcune cose diverse.
Una delle regole canoniche nella progettazione di software sicuro è quella di non fidarsi mai dell'utente . Ciò significa che ogni volta che si esegue, ad esempio, la convalida che un campo modulo è nel formato corretto, è deve farlo sul server, altrimenti un utente malintenzionato può alimentare l'applicazione con un payload di attacco. Ciò vale anche per alcune forme di crittografia, purché sia qualcosa in cui l'applicazione interagirà con i dati risultanti.
Ciò di cui stai parlando è crittografia end-to-end . In queste situazioni, i dati crittografati vengono trattati sempre solo nell'applicazione lato server come un blob binario. Questo è utile solo in alcune situazioni, come le app di archiviazione cloud e di messaggistica, e si rinuncia alla possibilità di fornire funzionalità che molti utenti desiderano, come una ricerca sofisticata.
Quindi per rispondere alla tua domanda,
Thus, if you were trying to build a company where even if the government forced you at gun point to give up the data of a certain user, wouldn't client side encryption provide you, the server owner, with better protection from such an ultimatum?
Sì, la crittografia end-to-end lo fa.
Ci sono ulteriori cose da considerare, però. L'applicazione client è closed source? Quindi, in che modo l'utente può verificare che non stai inviando i dati non crittografati ai tuoi server (o al governo)? L'applicazione client è installata tramite un app store? In che modo l'utente può verificare di non aver inserito una nuova versione dell'app che apporta modifiche significative rispetto a quella verificata? L'applicazione client è installata come un file binario? Come può l'utente verificare che il file binario che stai fornendo provenga dalla sorgente non modificata che ha letto? La recente polemica dell'FBI Apple ha risolto alcuni di questi problemi.
Anche il tema correlato è l'argomento inoltrare la segretezza , in cui una chiave che è stata consegnata al governo non permetti loro di decifrare le conversazioni passate .