How to encrypt backups

January 8th, 2007

Voor het backup project ben ik aan het kijken hoe ik mijn data kan encrypteren vooraleer ik ze naar dreamhost stuur. Er zit wat informatie tussen waarvan ik liever niet heb dat mij onbekende (doch ongetwijfeld zeer discrete) sysadmins inzage in hebben -- bijvoorbeeld mijn bankafschriften in pdf-formaat. Momenteel lijkt mijn voorkeur uit te gaan naar ccrypt:
  • het is secret-key, dus geen gezever met het bijhouden van public/private key pairs (wat als de HD waar mijn keystore op staat, crasht? Vaarwel, data.) Enkel een paswoord dat ik zou moeten onthouden.
  • het is beschikbaar onder cygwin
  • het is een Belgisch algoritme (Rijndael) :)
  • het lijkt redelijk snel te werken (hoewel snelheid voor mijn nachtelijke backups niet echt een hinderpaal is)
  • je kan het gebruiken in scripts zonder dat je het paswoord in het script moet zetten (mijn backup scripts worden natuurlijk méé gebackupt)
Maar ik heb nog een aantal probleempjes:
  • de originele files worden overschreven door de geëncrypteerde versie. Dat zou me verplichten om elke keer mijn files te decrypteren vooraleer ik ze kan bekijken -- neen, liever niet.
  • dezelfde originele file twee keer encrypten (dus encrypt-decrypt-encrypt) geeft niet twee keer dezelfde geëncrypteerde file. Zo'n scenario (encrypt vóór de backup, decrypt erna, en doe hetzelfde de volgende dag) gaat een beetje voorbij aan de added value van rsync.
Een ietwat aanvaardbare oplossing lijkt me nog te zijn: kopieer de originelen naar een copy-directory, encrypteer de files in die copy-directory, en stuur die mee met rsync. Niet vergeten de originelen in de exclude-file te zetten :) En daarmee heb ik nog maar één probleem over: hoe maak ik bash wijs dat ie file X.pdf moet kopiëren van directory A naar directory B, maar alleen als X.pdf.cpt nog niet bestaat in directory B? Zorgen voor morgen, Emma is allang gedaan en ik lig nog niet in bed. Alternatieve ideeën zijn natuurlijk altijd welkom :-)

Leave a Reply