BLOG

Achtergronden, Databeveiliging

Wat is encryptie?

24 februari 2016

Encryptie is de procedure van coderen en decoderen. Het gaat om data die niet ‘gewoon’ verstuurd wordt maar versleuteld. Die versleuteling wordt bereikt tijdens het encryptieproces. Als encryptie toegepast is, heeft er een algoritme gewerkt dat de gegevens gecodeerd heeft. Zo hebben de gegevens niet meer hun oorspronkelijke vorm en kunnen ze niet meer gelezen worden. Kort gezegd zijn er twee typen encryptie: symmetrische encryptie en asymmetrische encryptie. Daarover verderop in dit artikel meer.

Meer dan wachtwoorden alleen

Het eerste waar men aan denkt bij gevoelige data zijn waarschijnlijk wachtwoorden. Maar encryptie wordt voor veel meer gebruikt dan dat. Whatsapp berichten bijvoorbeeld worden ook versleuteld verzonden, zodat niet zomaar iedereen die kan lezen of ‘onderscheppen’. Maar ook als je een website bezoekt, maak je verbinding met een server die het mogelijk maakt dat je de website kunt bekijken. De informatie wordt in kleine beetjes opgedeeld die afzonderlijk worden versleuteld.

Encryptie werkt op verschillende niveaus; niet alleen de pakketjes met data maar ook de router en de netwerkkaart zijn apart beveiligd. De belangrijkste momenten van encryptie zijn als de computer met de server communiceert en de data encrypt. De internetbrowser die je gebruikt zorgt voor een adres voor de datapakketjes en een encryptievorm die de server dan weer kan ontcijferen.

In principe kan allerlei data versleuteld worden en dat versleutelen kan dus ook weer op veel verschillende manieren gebeuren, even als het ‘ontsleutelen’ of te wel decrypten.

Decryptie

Sommige encryptingstechnieken kunnen gegevens hun originele vorm teruggeven door ze te decrypten. Daarvoor heb je de juiste decryptiesleutel nodig. Een voorbeeld van zo’n techniek is SHA1 (ontwikkeld door de NSA). Die wordt veel gebruikt in databeveiliging. Daarnaast bestaan er technieken waarbij ook encrypting en decrypting mogelijk is maar waarvoor je bij het decrypten niet 1 maar 2 sleutels nodig hebt. Ook zijn er nog technieken die je wel kunt encrypten maar niet meer kunt decrypten, zoals MD5. Die laatste techniek is echter achterhaald omdat die makkelijk te kraken was en je met twee verschillende woorden dezelfde hash kunt genereren.

security13 (1)

Niet alle encryptie methoden zijn even betrouwbaar… Tekening door Randy Glassbergen

Symmetrische encryptie

Bij symmetrische encryptie wordt voor het versleutelen en ontsleutelen dezelfde sleutel gebruikt. Het nadeel van deze methode is dat de sleutel voor de decryptie veilig bij de ontvanger moet zien te komen. Als deze immers in verkeerde handen valt kan dat grote gevolgen hebben.

Asymmetrische encryptie

Doordat het symmetrische encryptie niet zo veilig is, is men begonnen met asymmetrische encryptie, ook wel public key encryption genoemd. Het algoritme in de public key encryption maakt hierbij voor elke gebruiker 2 sleutels aan. Het gaat om een publieke sleutel die je met al je contacten deelt en een privé sleutel die je voor jezelf houdt. De sleutels zijn aan elkaar gekoppeld. Als iemand jou bijvoorbeeld een bericht wil sturen, versleutelt hij of zij het bericht met je publieke sleutel. Alleen jij kunt het decrypten met je privé sleutel. Het niveau van veiligheid hangt af van de kwaliteit van het algoritme en de lengte van de sleutels. Het nadeel van asymmetrische encryptie is het feit dat het ontcijferen daar veel rekenkracht en daarmee tijd kost.

De oplossing om de nadelen van symmetrische en asymmetrische encryptie weg te nemen is deze twee methoden combineren. Dit wordt onder andere gedaan bij TLS (Transport Layer Protocol) en is bij de meeste browsers standaard ingebouwd. Als je bijvoorbeeld Facebook bezoekt, dan communiceert de computer met de server. Hoe die communicatie dient te verlopen is gestandaardiseerd in een protocol: het HTTP of HTTPS protocol. HTTPS is een met TLS beveiligde verbinding en tegenwoordig de standaard voor websites waar gevoelige gegevens de revue passeren, zoals het geval is bij banken, de overheid en webshops.

Hash en Salt

Hashing is een manier om bijvoorbeeld wachtwoorden met een hash op te slaan in een database. Als je dan opnieuw inlogt, vergelijkt het systeem jouw ingetypte combinatie met je eerder als hash opgeslagen wachtwoord en kijkt of de twee hashes gelijk zijn. Hashes zijn niet terugrekenbaar. Helaas is ook hashing niet waterdicht; je kunt het dan misschien niet direct terug rekenen, er zijn wel andere methoden om achter de wachtwoorden te komen. Het gaat dan bijvoorbeeld om zogenaamde ‘rainbow tables’: grote databases met woorden en daarachter de bijbehorende hashes. Er wordt dan eigenlijk omgekeerd gezocht of in die database de betreffende hash te vinden is en dan is dus het bijbehorende ‘woord’ het wachtwoord. De hashes zijn allemaal vooraf berekend en daarmee kunnen dus relatief snel veel wachtwoorden gekraakt worden. Alleen een hash van een wachtwoord is dus onvoldoende. Daarom is er ‘salt’ bedacht. Salt is het toevoegen van random informatie aan een wachtwoord voordat je er een hash van maakt. De kans op mensen met hetzelfde wachtwoord is normaal altijd aanwezig, maar als je unieke random informatie meestuurt met een wachtwoord, krijgt iedereen een unieke salt en is de kans op dubbele hashes voorbij. De unieke random info is de salt. En het wachtwoord met salt samen krijgt het algoritme, zoals SHA1, over zich heen en die twee heten daarna samen de salted hash of passphrase.

Gebruikersnaam Wachtwoord Hash
Peter1987 123456 Ef3N563udebh7893g9y98724
Jaap Hallo Vu892437839db929134791
Francien1 123456 Ef3N563udebh7893g9y98724

Voorbeeld van een hash zonder salt. Peter1987 en Francien1 hebben hetzelfde wachtwoord en dus dezelfde hash. Als het wachtwoord wordt gecombineerd met een salt, levert dit geen dubbele versleuteling meer op, wat het minder gevoelig voor kraak maakt.

Two-way authentication

Bij two-way authentication, het woord zegt het al, wordt er op twee manieren gecontroleerd om je door de toegangspoort te laten.  Voorbeeld hiervan is een bank die niet alleen een gebruikersnaam en wachtwoord van je vraagt maar een extra identificatievorm gebruikt via bijvoorbeeld een TAN code of een identifier. Ook Digi-D maakt gebruik van two-way authentication middels gebruikersnaam, wachtwoord en sms-code.

Blijven ontwikkelen

Coderingstechnieken zijn essentieel voor databeveiliging. Het is ook geen kwestie van een goede techniek ontdekken en er daarna nooit meer naar omkijken. Het vakgebied blijft zich ontwikkelen en dat geldt ook voor hackers. Het is dus altijd zaak om te blijven evalueren en verbeteren op het gebied van databeveiliging.

Wilt u meer weten over encryptie mogelijkheden, databeveiliging of zoekt u een veilige applicatie? Neem zeker even contact met ons op en onze experts praten u graag bij.

Interesse in een gesprek?

neem contact op met Geurt Jan van Ek

Neem contact op

Zie onze privacyverklaring.