Funzionalità di crittografia / decrittografia sicura dei file

4

Come prefazione alla mia domanda, lasciatemi dire che sono un neofita relativamente nel campo della sicurezza.

Lavoro per un fornitore di software finanziario di back-office incaricato di elaborare, generare e scambiare migliaia di file con centinaia di terze parti ogni giorno. Secondo i nostri più recenti audit di sicurezza, questi file devono essere crittografati quando non sono in uso.

Posso risolvere quel problema semplicemente usando la crittografia PGP quando riceviamo / costruiamo il file e lo decifriamo quando abbiamo bisogno di leggerlo / consegnarlo.

Quello a cui sto lavorando è come farlo in modo sicuro, dato che lo stesso ambiente ha bisogno sia di crittografare che di decodificare i file. Capisco il paradosso di ciò che sto cercando di fare ... Mi piacerebbe che lo stesso server fosse crittografato e decrittografato, ma non permettere a un utente che accede a quel server di fare lo stesso. Ho pensato all'idea di avere un amministratore che immette la password di decodifica all'avvio del servizio, ma sembra clunky.

Ho bisogno di un'altra strada?

EDIT:

Ecco lo scenario esatto di cui mi sto interrogando ... Mi rendo conto che è contro-intuitivo, ma spero che la comunità della sicurezza sia abbastanza brillante da aver risolto questo problema.

08:15 - Business Partner consegna un file di transazioni per l'elaborazione. 08:16 - Il file viene decodificato utilizzando la coppia di chiavi assegnata a quel business partner. 08:17 - Mentre la finestra di elaborazione batch è scaduta, il file viene crittografato fino a quando richiesto in seguito. 20:00 - La finestra di elaborazione batch è attiva, il file viene decrittografato e le transazioni vengono elaborate.

Ci chiediamo se c'è un modo per far sì che un'applicazione gestisca tutti quelli (che abbiamo già) e allo stesso tempo impedisca a Joe User di accedere all'ambiente e decrittografare il file alla (ad esempio) 14:03?

Il motivo per cui mi sembra controintuitivo è che se l'applicazione / server / ambiente ha tutte le informazioni necessarie per crittografare e decifrare, sembrerebbe che qualsiasi utente che può entrare nell'ambiente avrebbe anche accesso a tale informazione. Spero che ci sia un modo elegante per evitarlo.

Ha senso?

    
posta user12529 29.08.2012 - 04:38
fonte

3 risposte

2

Stai parlando di sicurezza nei livelli, che è grandioso.

Il primo problema è come proteggere i dati a riposo e in transito, cosa che si sta facendo con PGP. Il tuo prossimo numero è la messa in sicurezza del sistema su cui sono archiviati i dati.

Sembra che tu stia parlando del seguente problema: stai crittografando le informazioni appena prima del trasferimento, ma normalmente non è sicuro sul suo sistema.

Il problema qui è che mentre si stanno proteggendo i dati in transito, non è necessariamente sicuro sul proprio sistema. Per contrastare questo, ti assicuri che il tuo disco rigido sia crittografato e che tu abbia una buona sicurezza logica e controlli di accesso - richieda password complesse / complesse, imposta permessi file appropriati, non condivida password, non condivida password di root o di amministratore, ecc. Non dovresti permettere a troppi utenti di accedere al sistema e inoltre applicare l'accesso basato sui ruoli (ad esempio, solo determinati gruppi o utenti specifici possono accedere a dove è archiviato il file).

Potresti anche preoccuparti che, dal momento che la tua chiave privata è archiviata nel sistema, se il sistema è compromesso, lo stesso vale per la tua chiave privata. È possibile memorizzare la chiave privata su un supporto rimovibile per combattere questo o implementare tecniche di crittografia hardware.

Se i dati sono altamente sensibili, dovrebbero essere decifrati solo se necessario e la chiave privata non dovrebbe essere facilmente accessibile.

C'è un altro problema che ti preoccupa che puoi chiarire?

Aggiorna Immagino che il vero problema è perché l'utente di Joe ha i privilegi di sistema che gli permettono di accedere alla parte sicura del file system? Se stai usando questo server per questo processo automatico, sembra che poche persone, se qualcuno dovrebbero avere accesso a questo server. Se lo fanno, le loro autorizzazioni di gruppo non dovrebbero consentire loro di accedere ai file protetti quando crittografati o non crittografati.

Devi pensare alla sicurezza a strati. Innanzitutto, eseguiamo la crittografia completa del disco nel caso in cui il disco venga fisicamente rubato in un punto in cui il file non è crittografato a livello logico. Successivamente, assicuriamo che il file sia decodificato solo quando è necessario. Le chiavi di decodifica sono archiviate in un luogo sicuro che solo gli utenti root o predeterminati possono avere accesso. È possibile accedere ai file solo quando non crittografati da root e dall'account utente di elaborazione batch utilizzando le autorizzazioni a livello di file system. L'unico problema che hai è se Joe User è anche root o Administrator. Per risolvere questo problema, è necessario implementare alcuni software costosi o creare una soluzione di homebrew per il check-out e il check-out delle password, noto anche come gestione dell'identità privilegiata (PIM).

Un sistema PIM è protetto e memorizza i segreti condivisi. Di solito cambia le password frequentemente in base al tempo e ogni volta che qualcuno vuole accedere o disconnettersi. Ad esempio, si desidera accedere a un sistema: il sistema PIM utilizza script o altre funzionalità per modificare la password sul sistema remoto a cui si desidera accedere, quindi fornisce la password e impedisce ad altri utenti di accedere mentre la password è selezionata su. Al termine della sessione, il sistema PIM cambia nuovamente la password in modo da non poter tornare indietro senza fare un'altra voce di registro che mostri la password. Questi prodotti sono un po 'costosi e potrebbero essere eccessivi per la tua situazione se puoi limitare adeguatamente l'accesso root o limitare la root alla console fisica e usare un po' di sicurezza fisica per impedire l'accesso non autorizzato alla console fisica.

    
risposta data 29.08.2012 - 04:52
fonte
1

We are wondering if there's a way to have an application handle all those (which we already have) and at the same time prevent Joe User from logging into the environment and decrypting the file at (e.g.) 14:03?

Controlli di accesso obbligatori. In particolare, l'ambiente dell'applicazione può essere impostato per leggere la chiave mentre viene bloccato anche da root, a meno che il sistema non esegua un ciclo di riavvio.

Vedi questi documenti Fedora per un buon esempio di questa tecnica con SELinux come viene comunemente usata per / etc / shadow.

    
risposta data 29.08.2012 - 19:54
fonte
0

L'approccio facile è utilizzare la crittografia completa del disco (FDE). In questo modo i dati verranno crittografati mentre sono memorizzati sul tuo disco rigido. Scegli una passphrase lunga e strong e assicurati di bloccare il computer (o di spegnerlo) prima di lasciarlo incustodito; in questo modo, se qualcuno lo ruba, non sarà in grado di accedere ai dati sul sistema senza indovinare la passphrase.

Se stai cercando un software di crittografia del disco completo, ecco alcuni consigli. TrueCrypt è ben rispettato. PGP ha anche un buon prodotto.

Questo soddisferà i requisiti di conformità per l'utilizzo della crittografia e consentirà di spuntare la casella di controllo per la verifica. Se fornirà un'adeguata sicurezza per le vostre esigenze è una domanda diversa, e non avete fornito abbastanza informazioni per farmi un'opinione strong su quell'argomento. (Il modo per capire se fornirà una sicurezza adeguata inizia chiedendo quali risorse hai, quali minacce potrebbero affrontare e quali sono i requisiti della tua azienda e continua a valutare i rischi, identificare possibili controlli e attenuazioni e valutare in base ai loro costi e benefici.)

    
risposta data 29.08.2012 - 07:29
fonte

Leggi altre domande sui tag