En algunas ocasiones, cuando se está desarrollando un programa que accede a información sensible, como por ejemplo una contraseña o algún dato que provenga de una operación de descifrado, es conveniente asegurarnos que ese dato está suficientemente protegido en memoria.
Un problema clásico con la memoria y la seguridad son los sistemas de paginamiento (swap) que extienden la memoria física del sistema empleando el HD del equipo. Es obvio que cuando vamos a gestionar un dato sensible se debería evitar a toda costa que ese dato fuese copiado a la memoria swap del equipo.
Para asegurarnos de estar usando variables que se almacenan sus datos en memoria RAM, vamos a usar dos funciones, en el caso de Linux mlock() y en el caso de Windows VirtualLock()
Ejemplo de como usar mlock() en Linux
Como se puede ver se crean dos funciones lock_memory y unlock_memory que sirven para 'meter' y 'sacar' variables en memoria RAM
Ejemplo de uso de VirtualLock() en Windows:
Es interesante mantener estas buenas prácticas a la hora de diseñar programas que gestionan contraseñas o datos sensibles.









