Modo sicuro per inviare file al server, archiviare e quindi recuperare

0

Oggi cerco idee.

Il problema: I file sensibili vengono inviati tramite REST (su SSL, ovviamente) a un server di terze parti. Non riesco a toccarli a livello di codice finché non arrivano al server. Questi file vengono memorizzati lì fino a quando gli utenti li scaricano tramite SFTP e li cancellano dal server. Ogni file risiederà per circa una settimana su questo server.

L'obiettivo: Proteggi i file ad ogni passaggio finché non si trovano sui computer degli utenti.

Il mio piano: Poiché non riesco a crittografare i file finché non arrivano al server di terze parti, la mia unica speranza per la sicurezza è una connessione SSL. Vorrei assicurarmi che solo i miei file vengano salvati sul server, quindi penso che dovrei inviare una password insieme ai file. Cosa c'è di meglio di una password statica? Vorrei utilizzare password univoche, ma non sono sicuro da dove cominciare.

Quando un file viene scaricato sul server, copierò il flusso nella memoria temporanea e crittograferò i dati con RSA. Posso mantenere la chiave privata sui computer degli utenti e memorizzare solo la chiave pubblica sul server. (Si noti che il server non ha crittografia hardware.) Quando un utente si connette tramite SFTP, può scaricare il file crittografato e decrittarlo solo sulla propria macchina quando è offline. C'è un modo migliore per mantenere i file finché un utente non può accedervi?

Qualsiasi altro suggerimento sarebbe molto apprezzato!

Aggiorna Dopo aver armeggiato e riflettuto, ho trovato questa soluzione più adatta dato il mio controllo limitato sul server di partenza: link

In breve, invia i file da A a B tramite SSL. Utilizzare la crittografia AES-256 con una chiave generata casualmente quando il file arriva in B. Cripta quella chiave casuale con RSA 2048 (la chiave pubblica). Salva tutto sul server fino a quando non può essere scaricato. Una volta che i file si trovano sul computer degli utenti, decrittografare la chiave casuale con la chiave privata di RSA (archiviata solo offline) e quindi utilizzare tale chiave per decodificare la crittografia AES sul file. La ragione per la crittografia ibrida Symmetric / Asymmetric è perché voglio il formato della chiave public-private ma RSA limita la dimensione dei dati a 256 bit (per 2048, è solo 128 bit per 1024). Quindi crittografiamo i dati e la chiave separatamente, quindi inviamo entrambi. Sì, questo risulta nei tasti 3 : uno generato casualmente ogni volta, una chiave pubblica e una chiave privata (che non vede mai la luce di Internet).

Nihvel lo ha inchiodato con ancora più sicurezza crittografando il file prima di inviare e salvare la chiave casuale crittografata sul Server A. Quindi i due non erano mai sullo stesso server. Grazie per tutto il tuo aiuto!

    
posta Zachary Terlizzese 09.02.2018 - 08:03
fonte

2 risposte

1

Sto già facendo la stessa identica cosa ma il contest della mia crittografia è diverso. Ti darò il mio punto di vista.

Hai il server A. L'host di servizio di terze parti Server B. L'utente (n) è utente [n].

You will create a random key, with this, you will encrypt your file X.
You will encrypt the random key with your public-key.
You will create a HASH that links the encrypted file with the random-key.
You will send only the encrypted file X from A to B using HTTPS (use a second certificate, of course).

B will store your encrypted until the user[n] will download it with the HASH file.
User[n] will reach your server A through a webgui (why not), after a login(why not..) and after he uploads the HASH file, your system can decrypt the file and let the user download it.

No one will know your private-key, of course, and no one will be given the public key file.
Even if they will, you will store in A the random key you used to encrypt the file.

Questo riassume la mia idea e l'80% di esso è applicato nel mio ambiente (il 20% di riposo è altri assegni).

Certo, c'è del lavoro da fare, ma neanche tanto. L'ho costruito in 1 giorno e non sono nemmeno così bravo.

Modifica : Recentemente ho terminato il mio script per il backup e la crittografia di un database postgresql. Qui troverai tutto ciò di cui hai bisogno, ma creare l'HASH. Almeno la parte di crittografia / decrittografia è ciò che puoi desiderare. link

    
risposta data 09.02.2018 - 16:45
fonte
-3

È possibile utilizzare un software opensource Veracrypt per eseguire tutte le operazioni relative alla crittografia. Veracrypt è disponibile sia per riga di comando che per gui. Inoltre, in Veracrypt puoi usare un particolare file per l'autenticazione piuttosto che usare una password.

link

    
risposta data 09.02.2018 - 08:34
fonte

Leggi altre domande sui tag