Crittografia file strong per dati sensibili [chiuso]

-3

La mia prima domanda:

La nostra nuova app funzionerà con i file che contengono dati sensibili (ad esempio le finanze). Questi file verranno memorizzati sul client prima di essere sincronizzati con il nostro server.
Ho bisogno di un metodo per ...

  • prevenire la presenza di virus di phishing sul PC client per raccogliere queste informazioni
  • rendere i dati utente non rintracciabili - impedendo a chiunque di sapere quali dati appartengono a quale persona.

So, what are the well-established methods to do this?

La mia seconda domanda:

Ho sentito parlare di alcuni algoritmi crittografici come AES, ma non so se è sufficiente usare questo (voglio dire AES256 almeno).

Is AES good for encrypting files or could you suggest me better?

    
posta NagyDani 19.10.2017 - 11:55
fonte

3 risposte

1

fight against phishing malwares may be exist on client PC

Fondamentalmente questo è impossibile. Se la macchina client viene compromessa in un punto in cui il codice può essere eseguito come root o come utente che intende accedere alla tua applicazione, allora dovresti assumere che un attore abbastanza determinato sia in grado di leggere qualsiasi cosa possa fare la tua applicazione.

making user data untraceable - preventing anybody to know what data belong to what person.

Quindi in che modo la tua applicazione saprà quali dati fornire all'utente? Puoi fare in modo che gli utenti eseguano l'accesso con un alias, ma è il caso di qualsiasi sistema di nome utente / password che non verifica l'identità dell'utente.

Is AES good for encrypting files or could you suggest me better?

AES-256 (nelle modalità corrette per l'utilizzo) è considerato sicuro. "Più sicuro" e "Meno sicuro" non sono davvero una cosa. O qualcosa viene visto come "improbabile che possa essere facilmente infranto in tempi brevi con la prevista evoluzione della tecnologia" oppure no.

Tuttavia, è necessario decidere dove crittografare questi dati (client o server), dove verranno archiviate le chiavi per la crittografia e se si crittograferà la comunicazione con il server. Qual è il sistema di comunicazione tra client e server? Quasi certamente vorrai usare una qualche forma di SSL.

Se i dati sono crittografati con chiavi o password fornite dall'utente (supponendo che non vengano archiviati), saranno completamente irrecuperabili nel caso in cui dimenticassero la loro password. Se si utilizza il server archiviato, se l'architettura del server dovesse essere compromessa è probabile che otterrà le chiavi e i dati e sarà in grado di ripristinarlo.

Suggerirei di avere bisogno di più letture / apprendimento finché non comprenderete pienamente questi argomenti e le rispettive conseguenze nelle decisioni prima di procedere ulteriormente.

    
risposta data 19.10.2017 - 12:17
fonte
0

I miei consigli:

ESSENTIAL -Utilizzare un certificato TLS server per proteggere la connessione (riservatezza, integrità e autenticità del server)!

LA PRIMA QUESTIONE: - Utilizza l'autenticazione multifactor, all'autenticazione o quando si verifica un'operazione cruciale.

  • Usa pseudonimi per associare gli utenti ai dati, invece dirige le associazioni. Deve essere imprevedibile e di dimensioni protette a lungo (usa i valori hash)

SECONDO:

  • Sì, AES è una buona opzione. Sebbene dipenda dal tuo sistema, dalla modalità di crittografia che usi (ECB, CBC, ...), come generi e memorizzi la chiave simmetrica. l'opzione migliore in questo caso è utilizzare AES-GCM (autenticato crittografato con dati associati (AEAD).

  • Puoi usare anche RSA, che funziona come crittografia asimmetrica. Cercalo.

Spero che questo aiuti

    
risposta data 19.10.2017 - 12:12
fonte
0

Ti suggerisco di non scrivere il tuo codice di crittografia. Avresti sicuramente sbagliato. I tuoi utenti dovrebbero utilizzare alcuni software di crittografia esistenti in modo tale che GPG (e qualsiasi altro front-end grafico preferisca) per crittografare i file. (Oppure puoi semplicemente scrivere il tuo front-end per GPG se hai bisogno di questo per integrarlo perfettamente nella tua app.)

    
risposta data 19.10.2017 - 12:22
fonte

Leggi altre domande sui tag