Le chiavi e gli accessi non crittografati possono essere tenuti fuori dalla memoria del programma?

2

Indipendentemente dalla tecnica utilizzata per archiviare chiavi di crittografia e amp; login, sembra che tutte le strade riportino alla memoria del programma (per quanto ne so), come una versione non cifrata dei tasti & gli accessi verranno memorizzati lì per eseguire la crittografia e l'accesso e un utente malintenzionato può leggere fisicamente dalla RAM.

È vero? Se è così, c'è un modo per prevenire le chiavi e l'amp; gli accessi non vengono memorizzati nella memoria in modo non crittografato?

    
posta 29.05.2013 - 17:38
fonte

2 risposte

7

Come sottolinea DeerHunter, le informazioni che non dovrebbero mai essere lette da un insieme di istruzioni cablate possono essere memorizzate in un Modulo di sicurezza hardware .

Gli HSM sono in possesso della chiave e possono eseguire attività che utilizzano la chiave, ad esempio la generazione di firme, senza che la chiave sia mai nota al di fuori dell'HSM. Un HSM non è una casella in cui si tiene una chiave di crittografia, da caricare quando viene utilizzata: la chiave rimane nella scatola, l'HSM è progettato per non uscire mai dalla chiave.

Tuttavia, se il tuo modello di minaccia include aggressori che hanno accesso fisico alla RAM, non hai speranza. È come chiedere se è possibile tenere i ladri fuori casa mentre li si lascia entrare in tutte le stanze.

Se tutto quello che stai cercando di ottenere non è mai avere la chiave di crittografia presente nella RAM nella sua interezza, potresti immaginare uno schema di crittografia che non ha usato l'intera chiave in una sola volta, magari inserendo la chiave un byte alla volta in un algoritmo iterativo. Il risultato di questa iterazione sarebbe una funzione di blocco del codice.

Come al solito, l'orso ha fornito un'ottima risposta che copre questo argomento e non è necessario io a ripetere i suoi sforzi.

    
risposta data 29.05.2013 - 17:49
fonte
2

Se qualcuno che non desideri sapere che la tua password ha accesso diretto alla memoria di un computer su cui è nota una password in testo semplice, hai fallito completamente nella sicurezza delle informazioni.

A un certo punto, da qualche parte, le informazioni di accesso semplicemente devono esistere in testo semplice. Non deve essere lì a lungo, e non dovrebbe mai essere persistere nella memoria non volatile a lungo termine in questo modulo, ma è semplicemente irrealizzabile progettare un sistema utilizzabile di accesso alle credenziali statiche che è invulnerabile allo snooping "white box" (dove si presume che l'attaccante abbia accesso illimitato alle informazioni di stato della macchina e possa analizzare l'esecuzione passo dopo passo). L'utente deve essere in grado di digitare la sua password in una casella di testo, che memorizza chiaramente quella password in memoria (anche se ciò che mostra sullo schermo è una serie di punti elenco), e quindi il programma deve essere in grado di recuperarlo chiaramente prima di codificarlo per il trasporto al sistema di autenticazione.

Allo stesso modo, qualcosa da qualche parte deve conoscere la chiave che stai usando per crittografare o decifrare. Questo, tuttavia, non deve essere il tuo computer reale. HSM sono stati suggeriti; questi sono moduli di elaborazione dati progettati per generare e memorizzare le chiavi in un modo che non richiede la partecipazione diretta della CPU o della memoria del computer a cui è collegato; una scatola nera ideale. Sono inoltre progettati per resistere a ogni sforzo per entrare in questa scatola, da qualsiasi fonte incluso il computer a cui è connesso. Il computer è solo un proxy e una fonte di comandi e dati di input per HSM. Tuttavia, quel computer deve ancora essere considerato affidabile, nella misura in cui in qualsiasi momento un utente malintenzionato può vedere e / o controllare ciò che viene inviato tra il computer e HSM, non ha davvero bisogno dei dati nell'HSM per compromettere la comunicazione o persino la tua chiave; ha un oracolo di decifrazione seduto proprio lì per lui da sfruttare.

Se sei preoccupato per i keylogger o altri sistemi che potrebbero leggere una password statica, non usarne uno; invece, investire in keytags RSA o dispositivi simili. Questi dispositivi utilizzano un algoritmo con un seme iniziale per generare una sequenza di numeri, ognuno valido per un minuto circa. Lo stesso algoritmo, dato lo stesso valore di inizializzazione, sta generando gli stessi numeri sul lato server. Inserisci il numero che vedi sul tag (aspettando il prossimo se l'attuale sta per aggiornare) come password. Non importa se digiti quel codice su un dispositivo che sta ovviamente inviando le tue battiture a un ragazzo con un laptop a pochi metri di distanza; quel codice funzionerà solo per un minuto, e, a livello tattico, ha una possibilità infinitesima di indovinare correttamente il prossimo codice, anche se conoscesse ogni codice che il generatore ha mai prodotto.

    
risposta data 30.05.2013 - 22:03
fonte

Leggi altre domande sui tag