Qual è il punto di crittografia dei miei file (su un server); se posso decrittografarli perché un hacker non può farlo anche tu?

2

Aiuto a mantenere un server web che gli utenti usano. Memorizzano i dati sul nostro server. La maggior parte dei dati non è sensibile, ma alcuni sono altamente sensibili. Quindi, sembra che vogliamo crittografarlo in modo che se qualcuno compromette il nostro server, troverà solo i dati crittografati. Tuttavia, per offrire i dati agli utenti sul sito Web, il codice è essenzialmente come (pseudocodice)

encryptedFile=getEncryptedFile();
decryptedFile=decrypt(encryptedFile);
serve up decrypted file

Quindi, se il nostro server è compromesso, cosa deve impedire al cattivo attore di trovare questo codice e semplicemente eseguire l'algoritmo di decrittografia da solo? Sembra che manchi qualche passo su come impedire a un utente malintenzionato di trovare la chiave di decodifica anche se il server è compromesso.

In sostanza si riduce a: Se io come amministratore di sistema che crea il sistema di decrittografia per il sito web può crittografare / decrittografare i file, che cosa deve fermare l'hacker che compromette il mio server con l'accesso a livello di root dal fare la stessa cosa?

    
posta chiliNUT 07.04.2017 - 00:46
fonte

2 risposte

1

Non so che cosa fa decrypt() , ma probabilmente intendi l'API di crittografia specifica per il sistema operativo. Su Windows, questo è protetto con la password del tuo account. Se i dati vengono scaricati o rubati, sarà molto più difficile da leggere, anche conoscendo la password. Quando il tuo server è root, tutte le puntate sono disattivate, questo lo offusca.

    
risposta data 07.04.2017 - 01:44
fonte
0

Ci sono due modi in cui si cripta tutti i dati memorizzati su un server:

  1. Utilizzo di un backed che crittografa i dati in qualche modo, es. Qualsiasi tipo di deposito che sblocca sblocchi, ecc. Se non automatizzi lo sblocco o richiedi una sorta di autenticazione per ogni chiamata per recuperare i dati e se questo non è automatizzato, dovresti essere in grado di forzare la possibilità di accedere ai tuoi dati lontano dal server (ad esempio se solo una chiave client può decifrare la risposta, allora sei al sicuro perché non puoi decrittografarlo e quindi nemmeno un utente malintenzionato

    1. Utilizzare qualcosa come LUKS per crittografare il server. Questo è un approccio simile a quello sopra, ma lo sblocco iniziale sta praticamente avviando il server.

Idealmente dovresti sempre crittografare i dischi in modo che i tuoi dati non possano essere compromessi da chiunque abbia accesso al server.

A seconda del tuo ruolo nel fornire dati sensibili (ad esempio, lo possiedi?), allora probabilmente vale anche la pena che i clienti autorizzino il proprio accesso fornendo le chiavi come parte della richiesta o fornendo le chiavi come parte della loro applicazione locale per decodificare i dati restituiti.

Davvero, tranne il caso in cui un client deve non solo autenticarsi per accedere al tuo sistema, ma devono anche conoscere qualche altro segreto per decrittografare i dati una volta recuperati (dove la chiave di decrittografia è not memorizzato sul server, ma è univoco per ogni client), se qualcuno ottiene l'accesso root alla scatola mentre è online, puoi praticamente considerare tutti i dati compromessi.

    
risposta data 09.04.2017 - 06:41
fonte

Leggi altre domande sui tag