Quanto sono sicure le variabili locali?

4

Sto scrivendo una specie di programma dinky in c che richiede all'utente di inserire un nome utente e una password. So che non è veramente necessario, ma mi piace pensare al lato della sicurezza delle cose. Ho cancellato la password prima di salvarla in un file, ma è possibile che un altro programma trovi la password immessa in memoria durante l'esecuzione? C'è qualche differenza se la password è memorizzata nello stack rispetto all'heap? Esiste una vulnerabilità intrinseca nel restituire la password da una funzione non-hash invece di eseguirne l'hashing non appena viene immessa?

Scusa se questo è un po 'fuori tema, solo uno studente curioso:)

    
posta Justin Sanders 20.03.2017 - 05:01
fonte

1 risposta

5

is it possible for another program to find the inputted password in memory during run-time?

Sì, se quel programma ha il permesso di guardare la memoria del tuo programma. (Su Windows e Linux, significa che deve essere in esecuzione come account utente o amministratore)

Si noti che se un programma è in esecuzione come su Windows o Linux, in teoria potrebbe già ottenere la password (ad esempio rendendosi simile al programma e chiedendo per la password).

Is there any difference if the password is stored in the stack versus the heap?

Potrebbe essere un po 'più difficile da trovare sullo heap, ma è possibile trovare entrambi i metodi.

Is there any inherent vulnerability in returning the password from a function un-hashed rather than hashing it as soon as it is inputted?

Non intrinsecamente - ma più passaggi tra l'immissione della password e l'hashing, maggiore è la probabilità che tu commetta un errore e in qualche modo esporre accidentalmente la password.

    
risposta data 20.03.2017 - 05:06
fonte

Leggi altre domande sui tag