Spring naar hoofdtekst

Wachtwoordbeheer met kpcli (KeePass)

Geplaatst op door ,
Laatste aanpassing op .

Inleiding

Tijdens het computergebruik van alledag komt een gebruiker continu in aanraking met wachtwoorden. Een wachtwoord om de computer te bedienen, een wachtwoord voor het ophalen van e-mails, een wachtwoord voor internetbankieren… Gelukkig bieden de meeste programma's een mogelijkheid om het ingevoerde wachtwoord te onthouden, en zo het telkens opnieuw invoeren te vermijden.

Een gebruiker zou er vanuit gemakzucht voor kunnen kiezen om bij al deze programma's, accounts en systemen dan maar hetzelfde of een licht afwijkend wachtwoord te gebruiken. Dit is echter funest voor de veiligheid - één gekraakt wachtwood zou betekenen dat alle anderen ook gevaar lopen.

Wachtwoordbeheer

Als het dan zo verstandig is, om verschillende en liefst lange en complexe wachtwoorden te gebruiken, hoe is dit dan nog gebruiksvriendelijk te realiseren? Met een wachtwoordbeheer applicatie. Het is een programma dat alle verschillende wachtwoorden onthoudt in een database, en deze na invoer van slechts één wachtwoord toegankelijk maakt.

KeePass

Er zijn talloze programma's en diensten beschikbaar om een gebruiker dit werk uit handen te nemen. Voor mij waren de volgende eigenschappen van bepalend belang:

  • beschikbaarheid voor GNU/Linux, Android, Windows
  • toegankelijkheid voor schermlezers

Ik koos voor KeePass, een open source applicatie die inderdaad voor meerdere platformen beschikbaar is. Ten tijde van mijn eerste stappen met KeePass was versie 1.x actueel. Onder GNU/Linux kon ik gebruik maken van KeePassX, een grafisch programma dat de wachtwoorddatabase kan beheren en voorziet in globale sneltoetsen om makkelijk te kunnen inloggen.

Toen kwam versie 2.x van het KeePass-formaat, en kon KeePassX daar niet (meer) mee overweg. Ik moest op zoek naar een alternatief, maar wilde wel bij KeePass blijven. Ik experimenteerde met KeePass2, de officiële opvolger van KeePass. De GNU/Linux-versie bleek gebouwd te zijn met het Mono-framework, dat van huis uit onder GNU/Linux (nog) niet toegankelijk is. Mijn schermlezer bleef stil en ik zocht verder.

KPCLI

Uiteindelijk kwam ik terecht bij kpcli, een commandline programma dat via de terminal mijn wachtwoorden kan beheren en naadloos samenwerkt met Orca, mijn schermlezer. Het kan overweg met zowel KeePass-bestanden van versie 1.x als 2.x en biedt de mogelijkheid om naar het klembord te kopiëren. Dit laatste was echter nog wel een uitdaging, toen ik niet lang geleden mijn besturingssysteem opnieuw installeerde.

XClip

Met het commando xp kopiëert kpcli het aangegeven wachtwoord naar het klembord. Welk klembord? Zijn er meerdere klemborden, dan? Onder GNU/Linux' grafische omgeving X11 wel. Het onderdeel van kpcli dat de daadwerkelijke interactie met de klemborden afhandelt is XClip, een in Perl geschreven programma voor werken met klemborden onder X11.

De wachtwoorden van kpcli bleken standaard naar het primary klembord van X te worden gekopiëerd. Het gekopiëerde is daarna met behulp van een klik op de middelste muisknop te plakken. Maar dat is niet wat ik gewend ben als slechtziende computergebruiker. Ik ben volledig getraind op Ctrl + V en Ctrl + Shift + V.

Open source

Dankzij het feit dat de broncode van XClip gewoon is in te zien, ging ik in perl5/lib/perl5/Clipboard/XClip.pm op zoek naar de plek waar het te gebruiken klembord werd geselecteerd. En waarempel, ergens rond regel 33 vond ik onderstaand commentaar met bijbehorende definitie:

# This ordering isn't officially verified, but so far seems to work the best:
sub all_selections { qw(primary buffer clipboard secondary) }
sub favorite_selection { my $self = shift; ($self->all_selections)[0] }
# ...

Ik herkende de keuze van item 0 uit een array, lees het eerste item uit de lijst - in dit geval primary. Ik veranderde het naar item 2, het derde item, lees clipboard:

# This ordering isn't officially verified, but so far seems to work the best:
# Preferred clipboard set to 'clipboard' instead of 'primary'
sub all_selections { qw(primary buffer clipboard secondary) }
sub favorite_selection { my $self = shift; ($self->all_selections)[2] }
# ...

Vanaf dat moment verschenen de wachtwoorden, gebruikersnamen en URLs van kpcli op het 'gewone' klembord van X en kon ik naar hartelust met Ctrl + V en Ctrl + Shift + V werken.

Inhoudsopgave

Doorzoek de onderstaande categorieën om de lijst met artikelen te filteren.