Alasjo ha già fornito una buona risposta, ma penso che alcune informazioni aggiuntive potrebbero aiutarti a comprendere le difficoltà che hai e come affrontarle.
Nella tua domanda hai suggerito la crittografia. La sola crittografia dei dati caricati non può essere sufficiente per proteggerli. Poiché i dati crittografati sono inutili senza un mezzo per decrittografarli, l'applicazione dovrebbe fornire un modo per decrittografarli. Se l'utente malintenzionato è in grado di impersonare un utente con diritti di accesso ai dati, potrebbe consentire alla tua applicazione di decrittografarlo per lui. Questo problema è ancora maggiore se tutti gli utenti collegati al tuo sistema possono accedere ai dati caricati.
Ciò di cui hai veramente bisogno è un buon processo di autenticazione combinato con una buona autorizzazione (gestione dei diritti di AKA):
1) L'autenticazione serve a garantire che nessuno stia usurpando l'identità di un utente legittimo. Puoi iniziare assicurando che l'utente stia utilizzando password difficili da indovinare (ad esempio utilizzando zxcvbn ) e NON richiedendo che lo modificino regolarmente (gli svantaggi sono molto maggiori dei benefici). Dovresti quindi seguire la guida di OWASP sull'autenticazione.
2) L'autorizzazione è garantire che l'utente possa accedere solo ai dati a cui ha diritto. Ci sono molti modi per definire e controllare i diritti, e dovresti fare attenzione a separarli dai concetti. Di solito viene seguito il modello RBAC , ma l'applicazione potrebbe richiedere un controllo più preciso, quindi scegli saggiamente. RBAC consiste nel mettere l'utente nel gruppo s (o ruoli) e dare diritti ai gruppi (e non agli utenti). Nel tuo caso puoi consentire solo l'uploader e il destinatario dei dati caricati per accedervi. Il destinatario può essere implicitamente un gruppo. OWASP ha anche una lista di controllo per l'autorizzazione .
Puoi crittografare i dati caricati, ma non aspettarti di ottenere un significativo aumento della sicurezza da esso. Spiegare come farlo correttamente richiederebbe un'altra risposta o guida. Ovviamente, i processi di caricamento e download stessi devono essere protetti utilizzando TLS.
Non dimenticare di seguire i consigli forniti da Alasjo anche nella sua risposta.