web analytics

Cryptografie en stegografie – versleutel je bestanden

Print Friendly, PDF & Email

Wat is cryptografie?

Cryptografie of geheimschrift (uit het Grieks, κρυπτει kryptei “verborgen,” en γράφω gráfo “schrijven”) houdt zich bezig met technieken voor het verbergen of zodanig versleutelen van te verzenden informatie, dat het voor een cryptoanalist, een persoon die toegang heeft tot het kanaal tussen zender en ontvanger, en dus als het ware ‘mee kan luisteren’, onmogelijk is om tegen aanvaardbare inspanning uit de getransporteerde data af te leiden welke informatie er door de zender was verzonden en welke partijen daarbij betrokken waren. Cryptografie wordt gebruikt om gegevens over te dragen die niet leesbaar mogen zijn door andere partijen. Enkel de zender en ontvanger beschikken over de juiste sleutel om de gegevens terug om te zetten in hun originele vorm.
Bron: Wikipedia

Met behulp van tools zoals GnuPG, Bcrypt, Ccrypt kan je in Linux bestanden versleutelen.

Wat is Stegografie?

Steganografie is het verbergen van informatie in onschuldig ogende objecten en is onderdeel van cryptografie. Steganos betekent in het oud-Grieks verborgen, en graffein schrijven.
Bron: Wikipedia

Met behulp van tools zoals steghide kan je teksten in bestanden zoals afbeeldingen of muziek verbergen.

Waarom cryptografy of stegografie gebruiken?

In onze digitale wereld worden we regelmatig geconfronteerd met berichten van hacking naast big-brother toestanden door overheidsinstellingen om maar te zwijgen van organisaties zoals de Amerikaanse CIA, NSA en andere alfabet-overheidsdiensten.
Dat betekent feiteilijk dat je nooit meer zeker bent dat je persoonlijke gegevens niet door één of andere organisatie gelezen en misbruikt kunnen worden.
Simpel voorbeeld: Je wil de pin-code van je bankkaart doorgeven aan je vriend(in), ouders, … Hoe ga je dat doen als zij in het zuiden van Frakrijk op vakantie zijn en jij hier?
Telefonisch… hmmm de muren kunnen hebben oren hebben.
Via e-mail? Ach nee, want die mail kan jaren lang bewaard blijven op obscure servers.
SMS? Ook niet veel beter.
Snail-mail dan maar? In hoeverre is het briefgeheim nog echt geheim…

OK. We zijn hier wel echt paranoia aan het worden, maar hoe kan je dan wel belangrijke informatie naar de andere kant van de wereld sturen?

Cryptografie

Van de mogelijk cryptografische tools zal ik enkel GpG behandelen.

GPG ((GNU Privacy Guard)

GNU Privacy Guard (GPG) is een applicatie die vooral bedoeld is voor versleuteling van data met behulp van een publieke cryptografische sleutel. Het bevat echter ook de mogelijkheid om gegevens te versleutelen middels een door de gebruiker vertrekt wachtwoord en het bevat diverse versleutelingsalgoritmes.
Standaard zou het pakket geïnstalleerd moeten zijn, maar indien niet kun je het installeren via:

$ sudo apt-get install gnupg

Versleutelingsalgoritmes

GnuPG bevat diverse versleutelingsalgoritmes. Deze krijg te zien door onderstaand commando:

$ gpg –version

Terminal_052mod

Bestand versleutelen

Ik heb in een mapje ~/hacking enkele bestanden. Eentje ervan is het bestand README , met volgende tekst.
Terminal_057
Om dat bestand te versleutelen tik je onderstaand commando in:

$ gpg -c <bestandsnaam>

Je gaat 2 maal om een wachtwoord gevraagd worden.
Voer wachtwoordzin in_053
Dan wordt een NIEUW bestand aangemaakt met als extentie .gpg.
README word dus README.gpg (README.txt zou README.txt.gpg worden)

Je mag dus niet vergeten om je origineel bestand, zonder de gpg extentie te verwijderen!

hacking_059
Als je de inhoud van het tekstbestand README.gpg bekijkt, zie je iets dergelijks:
Terminal_056
De vercijfering is dus wel degelijk gelukt.

Ontsleutelen van een bestand

Om een met GnuPG versleuteld bestand te ontsleutelen, gebruik je onderstaand commando:

$ gpg <bestandsnaam>

Daarbij word je naar de vercijferingssleutel waarmee het bestand versleuteld is, gevraagd.

Sleutels

Standaard versleutelt gpg met het “cast5” versleutelingsalgoritme. Wens je een ander versleutelingsalgoritme gebruiken dan voeg je de -crypto-algo parameter toe gevolgd door het gewenste algoritme. Bv:  “-crypto-algo=3DES

Het commando wordt dan:

$ gpg -crypto-algo=<versleutelingsalgoritme> <bestandsnaam>

Om ons bestand met AES256 te versleutelen zou het commando er als volgt uitzien:

$ gpg -crypto-algo=AES256 README

Stenografie

Waarom stegografie

In tegenstelling tot volledige versleuteling van het bestand, zoals hierboven uitgelegd, waarbij de gegevens in die mate worden aangepast dat het voor iedereen zichtbaar is dat het om een versleuteld bestand gaat, ga je bij het gebruik van stego technieken geen enkele tip aan de buitenstaanders geven dat er mogelijks verborgen data in het bestand aanwezig is. Je kan het ongeveer vergelijken met het verbergen van je juwelen in een koekendoos.

Steghide

Om teksten in bestanden te kunnen verstoppen, gaan we gebruik maken van het programma steghide.
Als het bestand nog niet geïnstalleerd is op je systeem, kun je het installeren als volgt:

$ sudo apt-get install steghide

Meer info over steghide vind je op http://steghide.sourceforge.net/index.php

Er zijn wel wat voorwaarden aan verbonden:

  • De cover file – dat is het bestand dat je tekst zal verbergen – moet wel groot genoeg zijn om het bestand (embedded file) te kunnen verbergen.
  • Enkel .jpg en .bmp bestanden kan je als grafische cover file gebruiken
  • Enkel .wav bestanden kan je gebruiken als audio cover file

Voor deze tutorial maken we gebruik van volgende bestanden
hacking_062

Teksten verbergen in een ander object

Het commando is :

$ steghide embed -cf <cover file> -ef <embedfile>
  • <cover file> is het bestand dat als container voor je verborgen bestand zal dienen
  • <embedfile> is het te verbergen bestand

In ons geval wordt dat:
Terminal_063

Het leuke is dat beide bestanden er nadien identiek uit lijken en nog volledig te gebruiken zijn.

Verborgen teksten terughalen

Om het bestand terug uit de <cover file> te kunnen halen, moet je natuurlijk het wachtwoord kennen.

Het commando is:

$ steghide extract -sf <coverfile>

In mijn voorbeeld wordt dat:

Terminal_064

Hoe er rekening mee dat steghide geen bestanden kan overschijven. Je moet dus na het terughalen van het bestand uit ons .wav-bestand fol.txt hernoemen/verwijderen als je het tweede voorbeeld met het.jpg bestand direct erna wil uitvoeren. Dat is natuurlijk niet vlot werken daar je feitelijk niet weet hoe het verborgen bestand heet en je wil voorkomen dat je eigen bestanden overschreven zouden worden.

Informatie over het ingesloten bestand

Via onderstaand commando, kun je informatie opvragen over het bestand waarin een verborgen bestand zit:

steghide info <ontvangen_bestand>

Terminal_065

Voorbeeldbestand

Hieronder de jpg die ik gebruik heb. Daarin zit het bestand fol.txt versleuteld.

Het wachtwoord is: wamukota
328

Beoordeling

Geef een reactie

%d bloggers liken dit: