Mostrando entradas con la etiqueta c. Mostrar todas las entradas
Mostrando entradas con la etiqueta c. Mostrar todas las entradas

16 marzo 2012



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.
Leer más...