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
- 1 Doel
- 2 Beleid
- 2.1 Algemeen
- 2.2 Data in Motion (DIM)
- 2.2.1 Symmetrische versleuteling
- 2.2.2 Asymmetrische versleuteling
- 2.2.3 HTTP Encryptie
- 2.2.4 VPN
- 2.2.5 SFTP & FTPS
- 2.2.6 SMTP over TLS
- 2.3 Data at Rest (DAR)
- 2.4 Data in Use (DIU)
- 2.5 Certificaten en sleutels
- 2.5.1 Beschikbaarheid
- 2.5.2 Sleutelbeheer
- 2.5.3 Certificaatbeheer
- 3 Appendix
- 4 Document status
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.
DOELSTELLINGENHet beleid draagt bij tot de realisatie van volgende informatieveiligheidsdoelstellingen van de organisatie:
|
DREIGINGENHet beleid draagt bij om de volgende dreigingen te verminderen, te mitigeren of te voorkomen: |
Beleid
Algemeen
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).
Volgens NIST is AES-128 bit versleuteling de minimale norm om sensitieve data te gaan beveiligen tot en met 2030.
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 gebruik 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 = Internet Key Exchange):
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 meerdere 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’ versleutelt, 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.
Om ‘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 (intern) gebruik. Dit zijn zogenaamde “self-signed certificates”.
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 3.1. Minimale maatregelen - Cryptografie voor meer informatie.
Document status
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 publiek gebruik.