Shaun McCance
shaunm@gnome.org 2011
Secure storage for passwords and other data

# 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