Crittografia RAM. È possibile? [duplicare]

4

Senza aggiungere altro hardware, è possibile la crittografia RAM? In tal caso, esistono implementazioni note e attualmente utilizzate per sistemi Linux o Windows? E se questo è qualcosa che è possibile senza hardware aggiuntivo, c'è qualche software disponibile in grado di eseguire questa attività senza la necessità di reinstallare il sistema operativo?

    
posta mk444 07.01.2016 - 15:31
fonte

2 risposte

6

Without adding any additional hardware, is RAM encryption possible?

Certo.
Puoi crittografare qualsiasi cosa ti piaccia nella RAM, proprio come fai con criptare tutto il resto.
La domanda più interessante è "dove sono le chiavi". Puoi anche lasciare le chiavi nella RAM o darle al sistema operativo che le memorizzerà anche nella RAM.
Puoi applicare alcune delle fantasiose tecniche proposte da Schneier et. al. in Cryptography Engineering , cioè one-time-pad crittografare la chiave dei dati, archiviare il pad nella RAM e decrittografare i dati solo quando necessario.

If so are there any known and currently used implementations for Linux or Windows systems

Windows offre l'API Data Protection (DPAPI) , consentendo di crittografare i dati utilizzando le credenziali di accesso dell'utente. So che almeno alcuni gestori di password (come KeePass ) lo usano per proteggere le preziose password nella RAM.

Utilizzo di un Modulo piattaforma affidabile (TPM, che diventa sempre più popolare quando Windows richiede ora loro) o qualche altro hardware dedicato risolverebbe davvero il problema scaricando la chiave in un posto di cui ti fidi nel caso in cui la RAM sia compromessa.

Tuttavia c'è una soluzione che sta uscendo proprio ora: Intel Guard estensioni software (SGX), spedizione con Skylake e CPU più recenti. Ti permettono di caricare un programma nel tuo processore, verificare che lo stato sia corretto - da remoto - e quindi proteggerne l'esecuzione. La CPU crittograferà automaticamente tutto ciò che lascia il processore (cioè tutto ciò che viene scaricato in RAM) e garantirà quindi la sicurezza per te. L'unico problema per la distribuzione di massa è che SGX richiede che tu abbia un codice firmato che il tuo processore accetterà, cioè Intel ti deve rilasciare un certificato per questo scopo.

    
risposta data 07.01.2016 - 16:50
fonte
4

Assolutamente, in particolare se si utilizza la RAM come memoria non persistente, nel qual caso è possibile crittografarlo come qualsiasi disco, file o directory dopo averlo partizionato e montato nello spazio dei nomi.

Tuttavia, i dati del programma eseguibile devono esistere come "testo normale" in memoria a un certo punto, quindi è inefficace cercare di proteggere il kernel e la memoria del programma in questo modo.

Gli strumenti necessari sono semplici e onnipresenti (openssl, ecc.)

    
risposta data 07.01.2016 - 16:01
fonte

Leggi altre domande sui tag