Seks ting å bruke GnuPG + Crypto Stick til

Spørsmålet «men hva trenger jeg GnuPG til?» dukker stadig opp når GnuPG/OpenPGP blir samtaleemne blant ingeniører. Hvorvidt hver enkelt teknolog trenger det skal jeg la ligge. Selv synes jeg kombinasjonen GnuPG og Crypto Stick er nyttig, og her er et knippe eksempler på mer eller mindre dagligdagse problemer de løser.

Sende og motta passord på epost

Sensitiv informasjon som f.eks. passord må ende-til-ende-krypteres hvis det skal sendes per epost. Selv bedriftsinternt, hvor eposten aldri forlater egen tjener, er det praktisk at passord ikke ligger i klartekst i innboksen dersom noen klarer å bryte seg inn på en arbeidsstasjon. Dessuten vet du ikke hvem som videresender eposten sin, og hvor.

På genomikk-kjernefasiliteten ved NTNU blir vi fremover nødt til å sende en del sekvenseringsdata med sneakernet til Radiumhospitalet. Da er det praktisk å kunne bruke f.eks. tcplay/TrueCrypt for å kryptere diskene og sende diskens passord med kryptert epost.

Selv bruker jeg mutt (som har innebygget gpg-støtte) privat og Thunderbird med Enigmail til jobb-epost, men for de fleste vanlige epostprogrammer finnes det fungerende GnuPG-støtte.

Lagre passordene dine med pass

Alle som er på nett begynner etter hvert å få et utall passord å huske på, og dataingeniører har flere enn mange andre. Siden gjenbruk av passord er et stort problem bør selv lavsikkerhetspassord til uviktige nettsider være unike. Pass er et lettvektsprogram for å holde styr på passord. Det passer godt inn i Unix-tradisjonen og er i prinsippet bare er et overbygg over GnuPG og spiller derfor bra sammen med f.eks. Crypto Stick. Samtidig er det ingen fare for passordene dine selv om programmet skulle forsvinne, siden det er trivielt å hente ut passordene manuelt med gpg. Enkelt, lettbrukt og anbefalt. Debian-pakken heter pass, og kommandoene er «pass» for å liste hvilke passordfiler du har, «pass edit navn-på-passordfil» for å redigere den, og «pass navn-på-passordfil» for å dekryptere den og vise innholdet i terminalvinduet. Jeg satte opp systemet med en katalog for web-passord, og egne kataloger med passordfiler for jobb, pvv og andre steder jeg har mange ulike passord for ulike tjenester. Pass har også rudimentær støtte for git push og pull, for å lettere kunne synkronisere passord mellom ulike maskiner. (For andre git-kommandoer må du bruke git direkte i ~/.password-store/)

Signere endringer i git

Git har støtte for signering av endringer. Siden både offentlige og private endringslagere ofte ligger på vevtjenere eller andre relativt usikre steder er det kjekt å være sikker på at ingen har vært inne og fiklet med koden som ligger der. For internt bruk er det greit å signere git-repositories som brukes på tvers av ulike sikkerhetsnivåer, for eksempel når man skal ha kode fra en kontor-PC og inn på sikrede nettverk gjennom git på en server uten spesielle sikkerhetskrav.
Etter å ha kjørt følgende (med din egen nøkkel-ID til slutt, ikke min):
git config --global user.signingkey 8B584606
kan du gjøre ting som:
git commit -S
git log --show-signature

Bruke Crypto Stick som ssh-nøkkel

Crypto Stick, en maskinvareimplementasjon av RSA med GnuPG-støtte, kan brukes som ssh-nøkkel. Det skjer iblant ved datainnbrudd at noen kommer seg inn på kontor-PCene til administratorer, og derfra har relativt fri tilgang fordi det ligger ssh-nøkler der som kan brukes til resten av nettverket. For alle som administrerer tjenere er det derfor greit å ha ssh-nøkkelen på dedikert maskinvare hvor den ikke kan stjeles, og som må være koblet til datamaskinen når ssh-forbindelser opprettes. Dessverre er det fortsatt litt manuelt oppsett før man har sømløs bruk, siden man må la gpg-agent emulere ssh-agent, så jeg har bare satt det opp på mine egne maskiner, og kan ikke uten videre stikke Crypto Stick-en i en vilkårlig USB-port og ha ssh-nøkkeltilgang fra den maskinen.

Signere deb-pakker

Linux-distribusjonene signerer pakker med GnuPG for å hindre at innbrudd eller falske speil kan brukes for å distribuere rootkit eller andre typer sikkerhetshull. Hvis du pakker debian- eller rpm-pakker til internt bruk, og særlig hvis du gjør det for offisiell distribusjon av programmer bør du signere pakkene. For Debian og Ubuntu foretar dpkg-buildpackage automatisk en signering dersom du har GnuPG satt opp. I motsatt fall får du en feilmelding, men like fullt en fungerende (men usignert) pakke. Apt liker imidlertid ikke usignerte pakker, og tjeneradministrasjon ved hjelp av f.eks. puppet vil for ikke installere pakkene dine om du ikke signerer dem.

Kryptert backup med duplicity

Om du vil lagre private sikkerhetskopier i en offentlig nettsky slik som Ubuntu One, Dropbox, Google Drive eller lignende er det greit å kryptere sikkerhetskopien først. Duplicity er et enkelt og lettbrukt backup-program som kan kryptere alle sikkerhetskopier med GnuPG. Duplicity støtter både symmetrisk kryptering med passord eller asymmetrisk kryptering med et nøkkelpar. Den private nøkkelen i nøkkelparet trengs ikke for å ta sikkerhetskopier, heller ikke inkrementelt (tidspunktet for forrige sikkerhetskopi lagres i filnavnet).

Et enkelt eksempel:
duplicity full --encrypt-key 8B584606 /home/ file:///media/backup/
duplicity incr --encrypt-key 8B584606 /home/ file:///media/backup/

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>