Shaun McCance
shaunm@gnome.org 2011

This work is licensed under a Creative Commons Attribution-Share Alike 3.0 United States License.

As a special exception, the copyright holders give you permission to copy, modify, and distribute the example code contained in this document under the terms of your choosing, without restriction.

Безопасное хранение паролей и других данных

# Secret

GNOME uses libsecret as a secure keyring manager, to store users' passwords and other sensitive data. Applications can use the keyring manager library to store and access passwords, and users can manage their passwords using GNOME's Seahorse application.

Менеджер брелоков предоставляет несколько брелоков, каждый из которых может содержать любое количество элементов. Элементы брелока содержат какую-либо информацию, чаще всего пароли. Каждый брелок блокируется индивидуально, и для разблокирования необходимо указать пароль для каждого брелока. После разблокирования брелока пользователю становятся доступны все его элементы.

Менеджер брелоков поддерживает список контроля доступа для каждого элемента брелока, контролируя доступ приложений только к своим элементам. Если неизвестное приложение пытается получить доступ к элементу брелока, менеджер брелоков запросит у пользователя разрешить или запретить доступ для данного приложения. Этот механизм предотвращает доступ к важным данным пользователя вредоносных или плохо написанных программ.

Данные брелока хранятся в файловой системе и шифруются с помощью блочного алгоритма шифрования AES, а хэш атрибутов содержимого шифруется с помощью SHA1. Хэш атрибутов используется для поиска элементов, запрошенных приложением без разблокировки брелока. Брелок необходимо будет разблокировать, когда нужный элемент найден и к нему будет разрешён доступ.

Менеджер брелоков содержит брелок сеанса, содержимое которого никогда не записывается на диск и теряется при окончании сеанса пользователя. Обычно он используется для хранения паролей, которые могут использоваться только в текущем сеансе.

If you use GIO to access remote servers, you automatically get the benefits of the keyring manager. Whenever GIO needs to authenticate the user, it provides the option to store the password, either in the default keyring or in the session keyring.

You should use libsecret's keyring manager whenever your application needs to store passwords or other sensitive data for users. Using the keyring manager provides a better user experience while still keeping user data safe and secure.

GNOME used a library called gnome-keyring before version 3.6 was released. In version 3.6 onward, libsecret is used instead. This allows sharing the keyring service between GNOME and other desktop environments and applications.

Libsecret Reference Manual