• FINAAL CONCEPT
  • Document toolboxDocument toolbox


    Digitaal Vlaanderen | Team Informatieveiligheid (TIV)

    Cryptografie

    Het beleid voor cryptografie beperkt de inzet van cryptografische technologieën tot alleen die algoritmen die zowel krachtig als efficiënt zijn en bestand zijn tegen bekende aanvallen. Dit beleid is bedoeld om gegevens en informatieprocessen te beschermen. De gebruikte componenten en algoritmen zijn gebaseerd op publiekelijk geteste en bewezen veilige richtlijnen. Het beleid zorgt ook voor naleving van alle wettelijke en contractuele eisen met betrekking tot cryptografie.

    Inhoud

     

     

    Doel

     

    Cryptografie juist en doeltreffend gebruiken in overeenstemming met wet- en regelgeving om de vertrouwelijkheid, authenticiteit, onweerlegbaarheid en/of integriteit van informatie te beschermen. Dit beleid is van toepassing voor alle medewerkers, leveranciers, partners en alle ander personeel of entiteiten in eender welke relatie met Vlaamse Overheid.

    DOELSTELLINGEN

    Het beleid draagt bij tot de realisatie van volgende informatieveiligheidsdoelstellingen van de organisatie:

    • Page:
      OD.03

      We beschermen informatie door een correct en doeltreffend gebruik van cryptografische maatregelen.

    DREIGINGEN

    Het beleid draagt bij om de volgende dreigingen te verminderen, te mitigeren of te voorkomen:

    Beleid

     

    Algemeen

     

    Implementatiemaatregel

    Het gebruik van versleuteling MOET gebaseerd zijn op het risico van ongeoorloofde toegang en de informatieclassificatie van de te beschermen gegevens of informatiesystemen.

    • Cryptografische diensten MOETEN formeel worden goedgekeurd en MOETEN voldoen aan relevante regelgevende en wettelijke vereisten.

    • Gebruikers MOGEN NIET enige andere vorm van versleuteling gebruiken buiten de formeel goedgekeurde en geïmplementeerde encryptiemechanismen.

    • Versleuteling MOET gebeuren volgens common practices, crypto-algoritmes en protocollen, indien een encryptiestandaard niet langer als veilig wordt bevonden MOETEN na risicoanalyse de nodige mitigerende maatregelen genomen worden.

    Data in Motion (DIM)

     

    Data in Motion zijn gegevens die wordt verzonden of ontvangen over een netwerk. Dit kan zijn tussen twee computers, tussen een computer en een server, of tussen een computer en een mobiel apparaat. Data in motion is het meest kwetsbare type data, omdat het zich in transit bevindt en dus gemakkelijk kan worden onderschept door een aanvaller.

    Dit document gebruikt TLS, SSL en SSL/TLS door elkaar, maar zijn om praktische redenen, tenzij daar waar expliciet vermeld, synoniemen van elkaar.

    Symmetrische versleuteling

    Bepaling van de sleutelsterkte

    De sleutel tot het kiezen van een veilig symmetrisch algoritme zit vervat in: 

    • De grootte/lengte van de cryptografische sleutel 

    • De grootte van de cryptografische blokken 

    • De gekozen encryptie blok modus (CBC/ECB/CTR/GCM/...) 

    Als vuistregel voor het kiezen van een sterk symmetrisch encryptie algoritme kan bovenstaande tabel gebruikt worden. Het meest gebruikte algoritme vandaag en ook de de facto standaard sinds een aantal jaar is de Advanced Encryption Standard (AES). Dit is de opvolger van de Data Encryptie Standaard (DES). 

    Asymmetrische versleuteling

    Bepaling van de sleutelsterkte

    Het security aspect van asymmetrische versleuteling zit hem net zoals bij symmetrische versleuteling in de lengte van de sleutel, maar ook met specifieke focus op: 

    • Sleutel uitwisselingsprotocol 

    • Hashing protocol 

    • Authenticatie 

    • Grootte/lengte van de encryptie sleutel

    HTTP Encryptie

    HTTP (Hypertext Transfer Protocol) is een protocol dat communicatie tussen verschillende systemen mogelijk maakt. Meestal wordt het gebruikt voor het overbrengen van gegevens van een webserver naar een browser om webpagina's te bekijken, maar het kan ook gebruikt worden als webservice (SOAP/REST/XML-RPC) om automatische interactie tussen twee machines over het netwerk mogelijk te maken. 

    Het probleem bij HTTP is dat standaard gegevens niet worden versleuteld en dat deze door derden kunnen worden onderschept wanneer gegevens worden doorgegeven tussen verschillende systemen. 

    Om dit te vermijden kan er gebruik gemaakt worden van HTTPS waarbij de “S” staat voor Secured. 

    Als een site gebruik maakt van HTTPS is dit aangegeven in de adresbalk van de browser, door bijvoorbeeld een hangslot en de aanduiding https:// aan het begin van de URL (Uniform Resource Locator).

    SSL/TLS Protocol

    Er zijn zes protocollen in de SSL/TLS-familie: SSL v2, SSL v3, TLS 1.0, TLS 1.1, TLS 1.2 en TLS 1.3

    TLS 1.2 is vrijgeven in 2008 en zorgt ervoor dat SHA-2 hashing en AES-encryptie kan gebruikt worden. Het laat ook gebruik van geauthenticeerde encryptie modi toe zoals GCM (Gallois Counter Mode) 

    TLS 1.3 is een vrij recent protocol dat dateert van begin 2018. Het grote voordeel van TLS 1.3 is dat het ten opzichte van TLS 1.1/1.2 veel sneller is. Ook worden de facto oude “gebroken” encryptie protocollen (RC4/MD5/SHA-1/DH groepen 1/2/5/14) niet meer aangeboden t.o.v. TLS 1.2 

    Cipher suites 

    Om de overdracht van gegevens te beveiligen, gebruikt TLS/ SSL één of meer cipher suites. Een cipher suite is een combinatie van algoritmen voor authenticatie, codering en Message Authentication Code (MAC). Ze worden gebruikt tijdens het onderhandelen over beveiligingsinstellingen voor een TLS/SSL-verbinding en voor de overdracht van gegevens. 

    Het is de server die aan de client de mogelijke cipher suites gaat aanbieden en afhankelijk van de browser/OS versie waarvan de client gebruikt maakt, wordt steeds de zo hoog mogelijkste cipher suite onderhandeld die haalbaar is voor de client. 

    Een cipher suite ziet er als volgt uit: 

    TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 

    TLS: HTTPS-protocol in gebruik 

    ECDHE: Sleutel uitwisselingsalgoritme – Asymmetrisch/Publiek aspect 

    RSA: Authenticatie (duidt het type certificaat aan) - Asymmetrisch/Publiek aspect 

    AES_256_GCM: Private AES 256 bit sleutel met 128 bit GCM geauthenticeerd blok cijfer. 

    SHA384: Hash algoritme gebruikt voor MAC (Message Authentication Code) authenticatie. 

    PFS (Perfect Forward Secrecy) 

    Perfect Forward Secrecy is een protocol dat voorkomt dat met het verkrijgen van de private sleutel informatie die in eerste instantie versleuteld is verzonden, alsnog ontcijferd kan worden. Dit omdat er gebruik wordt gemaakt van unieke sessie sleutels. 

    Wanneer dit protocol gebruikt wordt, wordt er een tijdelijke sleutel aangemaakt voor elke verbinding. Als beide partijen de sessie sleutel vernietigen na afloop van de sessie, is deze later niet meer met de private sleutel te achterhalen. Dit zou betekenen dat iemand die de server zou hacken iedere sessie apart zou moeten ontcijferen. 

    TLS ondersteunt twee soorten algoritmes waarmee Perfect Forward Secrecy gebruikt kan worden: het standaard Diffie-Hellman algoritme en de speciaal voor het gebruik van Elliptic Curve cryptografie hiervoor aangepaste versie, ECDHE. 

    Nadeel van PFS is dat het niet werkt met RSA en dat het merkbaar langzamer werkt dan andere soorten encryptie. Door het combineren met ECDHE wordt dit snelheidsnadeel bijna te niet gedaan en is het enorme verbetering ten opzichte van het standaard DHE-algoritme. 

    HSTS (HTTP Strict Transport Security) 

    HSTS is een HTTP-header die bij het tot stand brengen van de verbinding de client vertelt dat de opgevraagde site enkel en alleen via https mag worden benaderd. Het is een beveiligingsmaatregel om man-in-the-middle (MitM) aanvallen te voorkomen, specifiek stripping aanvallen. Bij stripping aanvallen kan een MitM de client doorsturen naar een onversleutelde (http) versie van de website in plaats van de https-versie.

    De HSTS-header is in het leven geroepen om ervoor te zorgen dat de browser deze header respecteert en de website alleen via https benadert. Dit helpt bij het voorkomen van beveiligingsrisico's die kunnen ontstaan door het gebruik van onversleutelde verbindingen.

    VPN 

    VPN (Virtual Private Network) wordt voornamelijk gebruikt om een beveiligde verbinding op te zetten tussen: 

    • Een eindgebruiker en een server/gateway – Client VPN 

    • Twee kantoorgebouwen of locaties – Site-to-Site VPN 

    Om de beveiligde verbinding tot stand te brengen worden volgende protocollen het meest courant gebruikt: IPsec en TLS. Voor de totstandkoming van de verbinding wordt er zowel gebruik gemaakt van symmetrische als asymmetrische encryptie protocollen. 

    IPsec VPN bestaat uit 2 distinctieve fases: 

    • IKE phase 1
      Deze fase maakt gebruik van een wederzijdse authenticatie van de partijen die een VPN willen opzetten. Ook wordt in deze fase gebruik gemaakt van een gedeelde sleutel (preshared key) of van een digitaal certificaat. 

    • IKE phase 2
      Nadat IKE fase 1 succesvol is afgerond en de VPN-tunnel beveiligd en geauthentiseerd is, staat deze fase in voor het encrypteren van data dat door de VPN-tunnel dient te gaan. 

    Er bestaan 2 versies van het IKE protocol, nl IKEv1 en IKEv2, niet te verwarren met de 2 verschillende fases die binnen het protocol in gebruik zijn.

    Dit omdat het IKEv2 protocol over betere beveiligingsmogelijkheden (bvb. tegen DoS aanval op VPN-infrastructuur) beschikt dan het v1 protocol en ook performanter is. 

    SFTP & FTPS 

    Zowel SFTP (FTP over SSH) als FTPS (FTP over SSL) zijn file protocollen die gebruikt kunnen worden om bestanden veilig te versturen tussen 2 partijen over een onbeveiligd medium.

    Beide protocollen hebben hun eigen toepassingsgebied (zo wordt SFTP vaak gebruikt in technische en development omgevingen, terwijl FTPS meer geschikt is voor productie en schaalbare omgevingen). Qua encryptiesterkte is er geen onderscheid, ze zijn allebei even krachtig en moeten allebei rekening houden met de informatieklasse toepasselijke maatregelen, afhankelijk van het type encryptie (asymmetrisch of symmetrisch).

    SFTP en FTPS zijn allebei even veilig, mits ze correct worden geconfigureerd. Beide protocollen kunnen echter een beveiligingsrisico vormen als ze niet volgens de best practices geïnstalleerd worden.

    FTP over SSH is ontstaan als een extra functionaliteit voor systeembeheerders om software upgrades, beveiligde transfers of development omgevingen te ondersteunen. Dit protocol gebruiken in een productie omgeving kan enkele gevaren inhouden, namelijk:

    • SFTP maakt vooral gebruik van publieke/private sleutels waarbij er voor elke tegenpartij een sleutel moet worden aangemaakt en gehost. Dit kan operationeel lastig zijn.

    • SFTP is weliswaar zeer eenvoudig op te zetten omdat het gebaseerd is op het SSH-protocol, maar een goed geconfigureerde FTPS biedt veel meer en fijnere controle.

    • SFTP heeft standaard een aantal opties ingeschakeld, zoals “PermitRootLogin”

    Ook FTP over SSL vereist enkele configuraties om dit protocol te beveiligen tot het minimaal verwachte niveau. FTPS is namelijk niet altijd versleuteld: dit moet expliciet in de configuraties worden aangegeven. Volgende parameters moeten worden afgedwongen:

    • Door de FTPS te koppelen met de VO PKI (Certificate Authorities) heb je een gegarandeerde vertrouwensrelatie en kan je zelfs de extra functionaliteit zoals CRL (Certificate Revocation Listing) gebruiken. Dit geeft je de mogelijkheid om met 1 klik de certificaten in te trekken als er ergens een certificaat of sleutel als gecompromitteerd wordt beschouwd.

    • Voor FTPS moeten een aantal extra configuraties worden gedaan zoals:

      • Implicit FTP over SSL (geen mogelijkheid bieden voor onversleutelde verbindingen)

      • Passive FTP-versie gebruiken (het sturen van controle en datakanaal in een standaard client-server model op 1 enkele TCP-poort), zodat geen dynamische portranges moeten toegelaten worden op de firewalls.

      • Elke gebruiker mag alleen toegang hebben tot zijn eigen omgeving (duidelijke toegangs- en gebruikersrechten configureren)

      • Koppelen van FTP user management aan een Radius of Identity & Access Management platform voor centraal gebruikersbeheer.

    SMTP over TLS

    SMTP over TLS wordt gebruikt voor het beveiligen van e-mailverkeer tussen mailserver en cliënt of tussen mailservers onderling. In deze opzet wordt de Simple Mail Transfer Protocol (SMTP) verbinding versleuteld via TLS om de integriteit en vertrouwelijkheid van de verzonden informatie te waarborgen.

     

    Data at Rest (DAR)

     

    Voor dataopslag is de primaire controle tegen ongeautoriseerde toegang versleuteling, wat helpt om de vertrouwelijkheid te waarborgen. Beschikbaarheid en integriteit worden gecontroleerd door het gebruik van redundante opslag op meerdere fysieke locaties in de publieke cloud en/of privaat datacenter. 

    Volgende methoden voor de encryptie van ‘data at rest’ kunnen onderscheiden worden: 

    Versleutelen van de volledige instance

    Een methode voor het versleutelen van alle gegevens die zijn gekoppeld aan de werking en het gebruik van een virtuele machine, zoals de gegevens die in rust zijn opgeslagen op het volume, schijfinvoer en uitvoer (I/O), alle snapshots gemaakt op basis van het volume, evenals alle gegevens die worden verzonden tussen de virtuele machine en het opslagvolume. 

    Versleutelen van een volume

    Een methode voor het versleutelen van een enkel volume op een schijf. Bepaalde onderdelen van de harde schijf zijn niet-versleuteld gelaten bij het gebruik van deze methode. Volledige schijfversleuteling moet worden gebruikt om de volledige inhoud van de schijf te coderen. 

    Versleutelen van bestanden of mappen 

    Een methode voor het versleutelen van één enkel bestand of map. Deze manier van versleutelen wordt veelal gebruikt om data te gaan versleutelen in SaaS omgevingen. 

    Voor het versleutelen van gestructureerde data, data die opgeslagen zit in een databank zijn er verschillende mogelijkheden. Deze hangen voornamelijk af van de capaciteiten van de applicatie en onderliggende hardware, cloud vendor (AWS vs Azure). 

    Versleutelen van databanken

    Voor de versleuteling van databanken zijn er meerder mogelijkheden maar dit document beperkt zich tot de twee meest gebruikte methodes: 

    TDE (Transparante Database Encryptie)

    TDE versleutelt de hele databank door een AES-coderingsalgoritme waarbij ontwikkelaars geen wijzigingen in bestaande applicaties hoeven aan te brengen. 

    TDE voert in realtime I/O-versleuteling en ontsleuteling van de gegevens en logbestanden uit. Nadat de databank in het geheugen is geladen, zijn de gegevens toegankelijk voor beheerders (DBA's).

    Als een databank gevoelige gegevens in specifieke kolommen bevat die moeten worden beschermd tegen databankbeheerders en gecodeerd in het geheugen moeten blijven (data in use), moet het gebruik van ‘Altijd Versleutelen’ worden geëvalueerd naast TDE. 

    Altijd versleutelen 

    Is een versleutelingsmethode ontworpen om gevoelige gegevens te beschermen in een Publieke Cloud SQL database. Deze methode van databankversleuteling zorgt ervoor dat sensitieve data in de databank niet door beheerders kan geconsulteerd worden omdat deze versleuteld is in de databankkolommen zelf en de encryptie sleutels op zichzelf versleuteld worden bewaard in de databank. 

    Deze methode heeft als nadeel dat het niet volledig transparant is voor de bovenliggende applicatie en de functionaliteit van de databank beperkt blijft. 

    Een belangrijk voordeel is dat deze methode ook ‘data in use’ versleuteld, waarbij databankinstructies die zich nog in het geheugen bevinden ook versleuteld worden zodat er geen informatie kan gelekt worden uit het geheugen (door een ‘dump’ van de inhoud). 

    Beide methodes kunnen gecombineerd gebruikt worden op een databankinstantie en het is dan ook aangeraden de ‘altijd versleutelen’ methode enkel te gebruiken om bepaalde delen van de databank die gevoelige data bevatten af te schermen. 

    Voor ‘data at rest’ te versleutelen kan er enkel beroep gedaan worden op symmetrische encryptie. 

     

    Data in Use (DIU)

     

    Het implementeren van Data in Use encryptie technieken kunnen duur en complex zijn en daarom niet altijd haalbaar of verantwoord om te implementeren.

     

    Certificaten en sleutels

     

    Beschikbaarheid

    Beschikbaarheid van crypto-apparatuur

    De beschikbaarheid van apparatuur en oplossingen voor versleuteling en ontcijfering is essentieel voor de beveiliging van gevoelige gegevens en informatiesystemen.

    Beschikbaarheid van cryptografische sleutels en certificaten

    Cryptografische sleutels en certificaten zijn nodig om gegevens te versleutelen en ontcijferen. Als deze sleutels verloren gaan of verlopen, is de versleutelde informatie niet meer toegankelijk. Daarom is het belangrijk om de levenscyclus van sleutels en certificaten goed te beheren en te documenteren. Dit helpt om onvoorziene omstandigheden te voorkomen.

    Sleutelbeheer

    Om encryptie effectief te kunnen gebruiken, moeten de encryptiesleutels minstens net zo zorgvuldig en veilig worden beheerd als de gegevens die door die sleutels worden versleuteld, en dat gedurende de hele levensduur van die sleutels. Sleutelbeheer omvat de handelingen en taken die nodig zijn om cryptografische sleutels aan te maken, te beschermen en het gebruik ervan te controleren. Het proces van aanmaak tot vernietiging van de encryptiesleutel wordt beschreven als de sleutelbeheerlevenscyclus.

    Sleutelbeheerlevenscyclus

    Juridische en ontsluitingsprocedures

    Assetbeheer van sleutels en certificaten

    Sleuteldistributie en -configuratie

    Verstrekken van publieke sleutels en certificaten

    Publieke sleutels worden gebruikt voor het versleutelen van gegevens die alleen toegankelijk moeten zijn voor de ontvanger. De publieke sleutel is beschikbaar voor iedereen, terwijl de private sleutel geheim moet blijven.

    Er zijn verschillende manieren om publieke sleutels te verstrekken. Een veelgebruikte manier is om ze te publiceren op een publieke website of in een publieke directory. Een andere manier is om ze te verstrekken via een beveiligd kanaal, zoals een e-mailbericht of een persoonlijke overhandiging.

    Bij het verstrekken van publieke sleutels is het belangrijk om ervoor te zorgen dat ze veilig worden opgeslagen en verspreid. Publieke sleutels kunnen worden gecompromitteerd als ze in verkeerde handen vallen.

    Register van encryptie-algoritmen

    Certificaatbeheer

    Aanvragen van certificaten

    Een certificaat is een digitaal document dat een koppeling bevat tussen een openbare sleutel en een identiteit, zoals een persoon, organisatie of apparaat. Certificaten worden gebruikt om de authenticiteit en integriteit van gegevens te verifiëren. Er zijn verschillende manieren om certificaten aan te vragen. Een veelgebruikte manier is om ze aan te vragen bij een certificate authority (CA). Een CA is een betrouwbare derde partij die certificaten uitvaardigt en beheert.

    Het beheer van overkoepelende certificaten (rootcertificaten)

    Een overkoepeld certificaat, ook wel een rootcertificaat genoemd, is een certificaat dat wordt uitgegeven door een betrouwbare derde partij, zoals een certificate authority (CA). Rootcertificaten worden gebruikt om andere certificaten te ondertekenen.

    Optreden als certificaat autoriteit (CA)

    Het zelf optreden als certificate authority (CA) is een manier om certificaten uit te geven voor eigen (interne) gebruik.

    Certificaatbeheer

     

    Appendix

     

    Relatie van het beleid met richtlijnen en standaarden

     

    Regelgeving en standaarden (L1)

    ISO 27001:2022 (Annex A)

    Informatieclassificatieraamwerk van de Vlaamse overheid (L2)

    Zie https://vlaamseoverheid.atlassian.net/wiki/spaces/ICR/pages/6375964680 voor meer informatie.

     

    Document status

     

    Titel

    Auteur

    Datum

    Versie

    Status

    Opmerkingen

    Titel

    Auteur

    Datum

    Versie

    Status

    Opmerkingen

    Beleid cryptografie

    Philippe Michiels

    22/04/2020

    1.0

    GEVALIDEERD

     

    Beleid sleutelbeheer

    Philippe Michiels

    10/06/2021

    1.0

    GEVALIDEERD

     

    Beleid cryptografie

    Fabrice Meunier

    1/10/2023

    2.0

    IN REVIEW

    Consolidatie en revisie van beleidsdocumenten

    Beleid cryptografie

    Fabrice Meunier

    17/06/2024

    2.0

    finaal concept

     

     

    Dit is een document voor intern gebruik.