Shaun McCance
shaunm@gnome.org 2011
Säker lagring för lösenord och andra data
Daniel Nylander
po@danielnylander.se 2007
Anders Jonsson
anders.jonsson@norsjovallen.se 2017, 2018

# Secret

GNOME använder libsecret som en säker nyckelringshanterare, för att lagra användares lösenord och andra känsliga data. Program kan använda nyckelringshanteraren för att lagra och komma åt lösenord, och användare kan hantera sina lösenord med GNOME-programmet Seahorse.

Nyckelringshanteraren tillhandahåller ett valfritt antal nyckelringar, där varje nyckelring kan innehålla ett valfritt antal nyckelringsobjekt. Objekt i en nyckelring lagrar en datamängd, ofta ett lösenord. Varje nyckelring låses individuellt, och användare måste tillhandahålla ett lösenord för att låsa upp nyckelringen. Då en nyckelring har låsts upp har användaren åtkomst till alla objekt i den nyckelringen.

Nyckelringshanteraren tillhandahåller åtkomstkontrollistor för varje nyckelringsobjekt, vilket styr vilka program som har tillåtelse att komma åt det objektet. Om ett okänt program försöker komma åt ett nyckelringsobjekt kommer nyckelringshanteraren att fråga användaren om att tillåta eller neka det programmet åtkomst. Detta hjälper till att skydda från att program som är dåligt skrivna eller som har illvilliga avsikter kommer åt användarens känsliga data.

Nyckelringsdata lagrade på filsystemet krypteras med AES-blockchiffret, och SHA1 används för hashvärden på objektets attribut. Med attributhashen kan nyckelringshanteraren slå upp objekt som begärs av program utan att behöva låsa upp nyckelringen. Nyckelringen måste vara upplåst då ett matchande objekt hittas och koms åt.

Nyckelringshanteraren tillhandahåller också en sessionsnyckelring. Objekt i sessionsnyckelringen lagras aldrig på disk, och förloras så fort som användarens session avslutas. Sessionsnyckelringen kan endast användas för att lagra lösenord som ska användas i den aktuella sessionen.

Om du använder GIO för att komma åt fjärrservrar så får du automatiskt fördelarna med nyckelringshanteraren. Närhelst GIO behöver autentisera användaren tillhandahåller det alternativet att lagra lösenordet, antingen i standardnyckelringen eller i sessionsnyckelringen.

Du bör använda libsecrets nyckelringshanterare närhelst ditt program behöver lagra lösenord eller andra känsliga data åt användare. Att använda nyckelringshanteraren tillhandahåller en bättre användarupplevelse medan det ändå håller användardata trygga och säkra.

GNOME använde ett bibliotek med namnet gnome-keyring före version 3.6 släpptes. I version 3.6 och framåt används istället libsecret. Detta tillåter delning av nyckelringstjänsten mellan GNOME och andra program och skrivbordsmiljöer.

Libsecret-referenshandbok