Shaun McCance
shaunm@gnome.org 2011
Armazenamento seguro para senhas e outros dados
Enrico Nicoletto
liverig@gmail.com 2009
Rafael Fontenelle
rafaelff@gnome.org 2013, 2014, 2016, 2017
Isaac Ferreira Filho
isaacmob@riseup.net 2018

# Secret

O GNOME usa libsecret como um gerenciador de chaveiros moderno para armazenar as senhas e outros dados sensíveis do usuário. Os aplicativos podem utilizar a biblioteca do gerenciador de chaveiros para armazenar e acessar senhas e os usuários podem gerenciar suas senhas usando o aplicativo Gerenciador de chaveiros do GNOME.

O gerenciador de chaveiros oferece uma porção de chaveiros, onde cada chaveiro pode conter qualquer quantidade de itens de chaveiro. Os itens em um chaveiro armazenam alguma porção de dados, geralmente uma senha. Cada chaveiro é trancado individualmente e os usuários precisam fornecer uma senha para destrancá-lo. Uma vez que o chaveiro seja destrancado, o usuário possui acesso a todos os itens daquele chaveiro.

O gerenciador de chaveiros oferece acesso a listas de controles para cada item do chaveiro, controlando quais aplicativos possuem permissão para acessar aquele item. Se um aplicativo desconhecido tenta acessar um item do chaveiro, o gerenciador de chaveiros irá avisar ao usuário para permitir ou negar o acesso daquela aplicação. Isto ajuda prevenir programas maliciosos ou mal escritos de acessarem os dados sensíveis dos usuários.

Os dados dos chaveiros armazenados no sistema de arquivos é criptografado com o cifrador de bloco AES e o SHA1 é utilizado para “hashear” os atributos do item. Usando os atributos de hash, o gerenciador de chaveiros é capaz de consultar os itens solicitados pelos aplicativos sem nunca ter que destrancar o chaveiro. O chaveiro tem que ser destrancado quando um item correspondente é encontrado e acessado.

O gerenciador de chaveiros também oferece uma sessão de chaveiro. Itens na sessão de chaveiro nunca são armazenados no disco e são perdidos assim que a sessão do usuário seja encerrada. A sessão de chaveiro pode ser usada para armazenar senhas que serão utilizadas apenas na sessão atual.

Se você usa GIO para acessar servidores remotos, você automaticamente obterá os benefícios do gerenciador de chaveiros. Toda vez que o GIO precisa autenticar o usuário, ele fornece a opção de armazenar a senha, tanto no chaveiro padrão quanto na sessão do chaveiro.

Você deveria usar o gerenciador de chaveiros do libsecret toda vez que seu aplicativo precisar armazenar senhas ou outros dados sensíveis para o usuários. Ao usar o gerenciador de chaveiros oferece-se uma melhor experiência de usuário enquanto ainda mantém os dados do usuário à salvo e em segurança.

GNOME usava uma biblioteca chamada gnome-keyring antes da versão 3.6 ser lançada. A partir da versão 3.6, libsecret passou a ser usada. Isso permite compartilhar o serviço de chaveiro entre o GNOME e outros ambientes e aplicativos.

Manual de referência do libsecret