Almacenamiento seguro para contraseñas y otros datos
Daniel Mustieles
daniel.mustieles@gmail.com 2011-2015
Jorge González
jorgegonz@svn.gnome.org 2007-2010
Mario Carrión
mario@monouml.org 2006

# Secreto

GNOME usa libsecret como depósito de claves seguro para almacenar las contraseñas y otros datos sensibles del usuario. Las aplicaciones pueden usar la biblioteca del gestor del depósito de claves para almacenar y acceder a las contraseñas, mientras que los usuarios pueden gestionar sus contraseñas usando la aplicación de GNOME Seahorse.

El gestor del depósito de claves proporciona cualquier número de depósitos donde cada depósito puede contener cualquier número de elementos. Los elementos en un depósito almacenan una información, generalmente una contraseña. Cada depósito está bloqueado individualmente y los usuarios deben proporcionar una clave para desbloquear el depósito. Una vez que el depósito está desbloqueado, el usuario tiene acceso a todos los elementos de ese depósito.

El gestor del depósito de claves proporciona una lista de control para cada elemento del depósito, controlando a qué aplicaciones se permite el acceso a ese elemento. Si una aplicación desconocida trata de acceder a un elemento del depósito, el gestor del depósito preguntará al usuario si quiere permitir o denegar el acceso de esa aplicación. Esto ayuda a prevenir que programas maliciosos o pobremente escritos accedan a información sensible del usuario.

Los datos del depósito de claves almacenados en el sistema de archivos están cifrados con el cifrado de bloques AES, mientras que el SHA1 se usa para el «hash» de los atributos del elemento. Usando atributos «hash», el gestor del depósito de claves es capaz de mirar elementos que piden las aplicaciones sin necesidad de desbloquear el depósito. El depósito se desbloquea cuando se encuentra un elemento coincidente y se accede a él.

El gestor del depósito de claves también proporciona un depósito de claves para la sesión. Los elementos en el depósito de la sesión nunca se almacenan en el disco y se pierden cuando termina la sesión del usuario. El depósito de la sesión se puede usar para almacenar contraseñas que sólo van a usarse en la sesión actual.

Si usa GIO para acceder a servidores remotos, automáticamente obtiene los beneficios del gestor del depósito de claves. Siempre que GIO necesite autenticar al usuario, proporciona la opción para almacenar la contraseña, ya sea en el depósito de claves predeterminado o en el depósito de claves de la sesión.

Debería usar el gestor del depósito de claves de libsecret siempre que su aplicación necesite almacenar contraseñas u otros datos sensibles de los usuarios. Al usar el gestor del depósito de claves se proporciona una mejor experiencia al usuario a la vez que se mantienen seguros los datos del mismo.

Antes de la versión 3.6, GNOME usaba una biblioteca llamada gnome-keyring. A partir de la versión 3.6, se usa libsecret en su lugar. Esto permite compartir el servicio de depósito de claves entre GNOME y otros entornos de escritorio y aplicaciones.

manual de referencia de Libsecret