Projekt Geselnik (to besedo je našel Lumo in sem se odločil, da jo bom uporabljal 😀) ali po domače Password Manager sem začel graditi leta 2021, ko sem se učil SQL bazo podatkov. Takrat sem odkril AES-256 Military Grade enkripcijo in začel graditi projekt — saj sem se vse učil tako, da sem zraven delal projekte.
V tistem času pa sem delal tudi mojo glavno platformo vadnica.org, zato sem posvetil nadaljevanju le-te, Password Manager pa pospravil za nedoločen čas.
Sedaj, ko sem vadnica.org zaključil, je bil čas, da nadaljujem s projektom. S pomočjo novih AI orodij sem projekt dokaj hitro dokončal — uporabljam namreč Proton Lumo in JetBrains Junie.
🔐 Kaj je vadnica-pass?
Vadnica-pass je spletni upravljalnik gesel (geselnik), ki deluje v brskalniku in shranjuje gesla, uporabniška imena, e-poštne naslove, 2FA kode, Wi-Fi podatke in kartice. Podatki so razdeljeni v kategorije — banke, spletne trgovine, e-pošta, omrežja, igre in druge — vsak vnos pa ima lahko poleg gesla tudi dodatna polja.
- AES-256 šifriranje občutljivih podatkov
- Zero-knowledge arhitektura — glavno geslo nikoli ne gre na strežnik
- TOTP podpora (2FA kode)
- Generator gesel
- Izvoz v CSV in XML format (uvoz v KeePass)
- Koš — izbrisani vnosi niso takoj trajno odstranjeni
- Temni in svetli način
- Dvojezični vmesnik (slovenščina / angleščina)
- Obnovitveni ključ za primer izgube glavnega gesla
🔒 Kaj pomeni zero-knowledge?
Glavno geslo se nikoli ne pošlje na strežnik in se tam tudi ne shrani. Geslo se ob registraciji zapiše le kot nepovratna zgoščena vrednost (hash), iz katere originalnega gesla ni mogoče rekonstruirati. Vsa občutljiva vsebina — gesla, e-poštni naslovi, 2FA ključi — pa se šifrira AES-256 že v brskalniku, preden se pošlje na strežnik. Strežnik tako hrani samo šifrirane podatke, do katerih dostopa nimajo niti administratorji.
To pomeni: če bi kdorkoli izpraznil bazo, bi v rokah imel le šifrirane nize brez ključa. Edini ključ je v glavi uporabnika.
📂 Odprta koda
Projekt je objavljen pod licenco AGPL v3 na GitHubu, kjer si lahko vsak ogleda, prenese in uporablja kodo: https://github.com/vadnica/vadnica-pass
Ker je šifriranje smiselno le, če ga je mogoče preveriti, je odprta koda pri geselniku naravna odločitev. Vsak lahko preveri, kaj se v kodi dogaja in kaj se pošilja na strežnik.
🚀 Živi demo
Geselnik je na voljo za preizkus na naslovu: https://pass.vadnica.org
Gre za testno različico: vsak ustvarjen račun se samodejno izbriše po treh dneh. V demo različici prosim ne shranjujte dejanskih gesel ali občutljivih podatkov.
🛣️ Kaj sledi?
To še ni konec. Projekt nameravam še izboljševati — med drugim z boljšim upravljanjem velikih zbirk vnosov in dodatnimi funkcijami. Geselnik je del ekosistema vadnica.org, kamor sodijo tudi učna platforma in blog, kjer pišem o tehnologijah, ki jih pri razvoju uporabljam.