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.