Bestanden versleutelen en ontsleutelen
Op deze pagina:
- Bestanden versleutelen en ontsleutelen via Dolphin
- Bestanden versleutelen en ontsleutelen met gpg
- Bestanden versleutelen en ontsleutelen met mcrypt
- Bestanden versleutelen en ontsleutelen met age
- Age installeren
- Wachtwoordzin gebruiken
- Publieke en private sleutel gebruiken
- Raak je sleutels niet kwijt
- Meer info over age
Het versleutelen van bestanden is steeds belangrijker geworden om gevoelige gegevens te beschermen die in de cloud worden bewaard of vias het internet worden verzonden. Bestanden versleutelen kan via de opdrachtregel (commandline), maar ook via de GUI.
Bestanden versleutelen en ontsleutelen via Dolphin
Dolphin is een bestandsmanager in de KDE desktop.
Via rechtsklikken op een bestand kan gekozen worden voor Comprimeren, Comprimeren naar...
Je kan dan kiezen voor zip-archief en je kan het vinkje aanzetten bij "Het archief met een wachtwoord beschermen".
Je krijgt dan een archief met daarin het bestand dat met een wachtwoord is beschermd.
Door het wachtwoord in te voeren wordt het weer leesbaar.
Bestanden versleutelen en ontsleutelen met gpg
Losse bestanden bestanden en weer ontsleutelen kan eenvoudig met gpg (GNU Privacy Guard).
Het versleutelen gaat met de -c optie, je wordt dan tweemaal om een wachtwoord/zin gevraagd.
gpg -c test.pdf
Bovenstaande opdracht maakt het bestand test.pdf.gpg aan, dit is het versleutelde bestand, het oorspronkelijke onversleutelde bestand bestaat ook nog (de -c is voor conventionele symmetrische versleuteling). Bij symmetrische versleuteling wordt er slechts 1 sleutel gebruikt om het bestand te versleutelen en te ontsleutelen. Bij Assymetrische versleuteling worden er 2 sleutels gebruikt, een Public key en een Private key. Assymetrische versleuteling is veiliger, maar omslachtiger.
ls test.*
test.pdf test.pdf.gpg
Bij het ontsleutelen hoef je je wachtwoord/zin slechts eenmaal op te geven.
gpg test.pdf.gpg
gpg: AES versleutelde gegevens
gpg: versleuteld met 1 wachtwoordzin
Bestand `test.pdf' bestaat. Overschrijven? (j/N) n
Voer een nieuwe bestandsnaam in: test2.pdf
ls test*
test2.pdf test.pdf test.pdf.gpg
Na het ontsleutelen bestaat het versleutelde bestand ook nog, je hebt bij het ontsleutelen de keuze om het oorspronkelijke onversleutelde bestand, als dat nog aanwezig is, te overschrijven, of om het nieuwe ontsleutelde bestand een nieuwe naam te geven.
Meer over de opties van gpg kun je opvragen via:
gpg --help
of via
man gpg
GPG heeft erg veel opties: GPG Key related options.
Bestanden versleutelen en ontsleutelen met mcrypt
Typ mcrypt in een terminal om te zien of het geinstalleerd is:
Het programma ‘mcrypt’ is momenteel niet geïnstalleerd. U kunt het installeren door het volgende te typen:
sudo apt install mcrypt
Als het wel is geinstalleerd, krijg je:
mcrypt: Encrypted data will not be written to a terminal.
Redirect the output instead.
Use the --help parameter for more help.
De Help opvragen geeft een flinke lijst met mogelijkheden, je kunt o.a. keyfiles gebruiken.
Het gebruik van mcrypt is eenvoudig, om te versleutelen geef je de bestanden op die versleuteld moeten worden:
mcrypt mijnbestand1.txt mijnbestand2.txt
Enter the passphrase (maximum of 512 characters)
Please use a combination of upper and lower case letters and numbers.
Je moet het wachtwoord 2x invoeren.
De versleutelde bestanden krijgen de extensie .nc.
Het ontsleutelen gaat met de -d optie:
mcrypt -d mijnbestand1.txt.nc mijnbestand2.txt.nc
Bestanden versleutelen en ontsleutelen met age
Het programma age is een open source en cross platform gereedschap waarmee je bestanden kunt versleutelen en ontsleutelen. Deze tool in gemaakt met de programmeertaal Go. Met age kun je bestanden via de opdrachtregel versleutelen en ontsleutelen met een wachtwoordzin, of met een publieke sleutel.
Age installeren
Het installeren van age is eenvoudig en werkt net zo als het installeren van andere programma's die aanwezig zijn in de repository van je Linux distrubutie.
# Debian/Ubuntu
sudo apt install age
# Arch Linux/Manjaro
pacman -S age
# Fedora 33+
dnf install age
# openSUSE
zypper install age
Voor Ubuntu is age beschikbaar in de repositories vanaf release 21.04. Als je een oudere release van Ubuntu gebruikt, dan kun je age toch installeren, door de bestanden op te halen van Github:
# Nagaan wat de laaste versie is van age en dit opslaan in een variabele
AGE_VERSION=$(curl -s "https://api.github.com/repos/FiloSottile/age/releases/latest" | grep -Po '"tag_name": "v\K[0-9.]+')
# Kijken of het versienummer inderdaad is opgeslagen in de variabele
echo $AGE_VERSION
# Je krijgt dan bijvoorbeeld:
1.0.0
# Download het tar.gz bestand met gebruik van de zojuist opgeslagen variabele voor de versie
curl -Lo age.tar.gz "https://github.com/FiloSottile/age/releases/latest/download/age-v${AGE_VERSION}-linux-amd64.tar.gz"
# Mogelijke uitvoer:
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
100 3815k 100 3815k 0 0 3258k 0 0:00:01 0:00:01 --:--:-- 8274k
# Het bestand age.tar.gz is nu aanwezig, dit kun je uitpakken met:
tar xf age.tar.gz
# Je krijgt dan een map 'age' met daarin 3 bestanden: age, age-keygen en LICENSE
# De bestanden age en age-keygen verplaatsen naar /usr/local/bin om age voor het hele systeem beschikbaar te maken
sudo mv age/age /usr/local/bin
sudo mv age/age-keygen /usr/local/bin
# Kijken of alles goed is gegaan door de versie op te vragen
age -version
# Je krijgt dan bijvoorbeeld:
v1.0.0
# Het opruimen van de installatie bestanden
rm -rf age.tar.gz
rm -rf age
Wachtwoordzin gebruiken
Als je een bestand versleuteld met een wachtwoordzin (passphrase), dan heet dat symmetrische versleuteling omdat de sleutel waarmee je versleuteld gelijk is aan de sleutel waarmee je ontsleuteld. Voor het gebruik van een wachtwoordzin wordt de -p optie gebruikt.
Een bestand versleutelen, je wordt tweemaal om de wachtwoordzin (passphrase) gevraagd:
age -p test.txt > test.txt.age
Enter passphrase (leave empty to autogenerate a secure one):
Confirm passphrase:
Een bestand ontsleutelen, hiervoor wordt de -d optie gebruikt:
age -d test.txt.age
Enter passphrase:
Na het ingeven van de wachtwoordzin (passphrase) wordt het bestand niet alleen ontsleuteld, maar de inhoud ervan wordt ook op het scherm getoond.
Versleutelen met een automatisch aangemaakte wachtwoordzin kan ook. Wanneer je geen wachtwoordzin opgeeft, zal age een wachtwoordzin voor je genereren, deze wachtwoordzin moet je dan gebruiken om het bestand weer te ontsleutelen. Voor het gebruik van een wachtwoordzin wordt de -p optie gebruikt.
age -p test.txt > test.txt.age
Enter passphrase (leave empty to autogenerate a secure one):
Using the autogenerated passphrase "raw-robot-calm-assume-traffic-push-spawn-bargain-undo-win".
Publieke en private sleutel gebruiken
Om bestanden te versleutelen en te ontsleutelen met een publieke sleutel heb je zowel een publieke als een private sleutel nodig. De private sleutel hou je geheim en gebruik je om een bestand te ontsleutelen, de publieke sleutel gebruik je om het bestand te versleutelen, deze publieke sleutel, de naam zegt het al, is openbaar.
#### Publieke en private sleutel aanmaken
Om een publierke en private sleutel aan te maken kun je age-keygen gebruiken.
age-keygen -o sleutels.txt
# De uitvoer is bjvoorbeeld:
Public key: age1p49h6nqxxga0y2x7gdm2d9qlkqgk5xauv6wyuuw4ryff90dceq9q0snepg
# De inhoud van het bestand sleutels.txt opvragen:
cat sleutels.txt
# Voorbeeld van de uitvoer:
# created: 2022-06-17T12:48:17+02:00
# public key: age1p49h6nqxxga0y2x7gdm2d9qlkqgk5xauv6wyuuw4ryff90dceq9q0snepg
AGE-SECRET-KEY-1NHM0UKYSXDSC4E6N60NJVHWMMJ6TAEM5V8TSNZW3VKD3HZTPRD2QGPEQDC
Het bestand sleutels.txt bevat nu zowel de publieke als de private sleutel.
Nu een bestand versleutelen en weer ontsleutelen met de zojuist aangemaakte sleutels:
# Versleutelen met de publieke sleutel:
age -r age1p49h6nqxxga0y2x7gdm2d9qlkqgk5xauv6wyuuw4ryff90dceq9q0snepg test.txt > test.txt.age
# Ontsleutelen met de private sleutel uit sleutels.txt:
age -d -i sleutels.txt test.txt.age > test_ontsleuteld.txt
Raak je sleutels niet kwijt
Een bestand dat is versleuteld met een sleutel, kan alleen worden ontsleuteld met een sleutel. Raak je sleutels daarom niet kwijt, anders heb je niets meer aan je versleutelde bestanden.
Meer info over age
Meer informatie over age vind je op Github.