Online gegevensbeveiliging is altijd belangrijk geweest, maar nu meer dan ooit. Nu steeds meer van onze gegevens in de cloud worden opgeslagen, moeten gebruikers op zoek naar de beste beveiligingsoplossingen om ervoor te zorgen dat hun vertrouwelijke informatie veilig is. Hoewel alle onderdelen van online gegevensbeveiliging nodig zijn om gegevens te beschermen, is dataversleuteling wellicht het belangrijkste onderdeel.
Daarom gebruiken steeds meer clouddiensten een type versleuteling dat Format-Preserving Encryption (FPSE) heet.
Wat is formaatbehoudende encryptie?
Als uw bedrijf meerdere 16-cijferige creditcardnummers in een database heeft opgeslagen, maar de versleutelde tekst na versleuteling ook 16 cijfers lang moet zijn, dan is Format-Preserving Encryption (FPE) de oplossing. FPE versleutelt platte tekst van een bepaalde lengte en produceert een versleutelde tekst die dezelfde lengte heeft als de platte tekst en dezelfde waarden gebruikt. In het vorige voorbeeld van een 16-cijferig creditcardnummer met een platte tekst van 1483920193402918, zou de met FPE gegenereerde versleutelde tekst bijvoorbeeld 1483666666662918 kunnen opleveren.
Door FPE te gebruiken, kunt u zien dat de versleutelde en platte tekst dezelfde lengte hebben en alleen numerieke waarden gebruiken voor de encryptie. Een cloudprovider die gebruikers de mogelijkheid biedt FPE in hun encryptie te implementeren, is Google Cloud.
Opmaakbehoudende encryptie in Google Cloud
Google Cloud biedt gebruikers toegang tot een techniek voor het anonimiseren van gegevens, genaamd pseudonimisering. Pseudonymisering is een techniek waarbij gevoelige gegevens worden vervangen door cryptografisch gegenereerde tokens. Google Cloud ondersteunt drie verschillende pseudonimiseringstechnieken:
- Deterministische encryptie met behulp van AES-SIV
- Formaatbehoudende encryptie
- cryptografische hashing
Alle drie de technieken gebruiken cryptografische sleutels voor datatransformatie, maar wij zullen ons concentreren op de Formaatbehoudende encryptie.
Google Cloud gebruikt een type FPE genaamd FPE-FFX. FFX richt zich op twee verschillende FPE-methoden, FF1 en FF3, om gegevens te versleutelen. Op het moment van schrijven is FF1 de enige methode die momenteel wordt ondersteund voor versleuteling. FF2 was ten tijde van de ontwikkeling van FFX nog niet gepubliceerd. Afgeleide versies van FF2 en FF3 worden opnieuw ingediend, maar na een cryptoanalytische aanval in 2017 werd FF3 als te onveilig beschouwd.
FFX gebruikt meerdere ronden van een Feistel-functie op de platte tekst, samen met een sleutel, om de versleutelde tekst te creëren. Een Feistel-functie splitst de platte tekst in tweeën en voert elke ronde een permutatie uit op elke helft van de platte tekst, waarna de linkerhelft van de tekst naar de rechterhelft wordt verwisseld en vice versa. De FF1-methode gebruikt 10 ronden van de Feistel-functie en FF3 8 ronden van de Feistel-functie. FPE-FFX heeft verschillende stappen nodig om gegevens te versleutelen. Om de versleuteling te starten, moet het alfabet dat wordt gebruikt om de gegevens te anonimiseren, op een van de volgende drie manieren worden opgegeven:
- Gebruik een van de vier waarden die de meest voorkomende tekensets/alfabetten vertegenwoordigen
- Gebruik een radixwaarde om de grootte van het alfabet aan te geven. Als u 2 opgeeft, krijgt u een alfabet bestaande uit de cijfers 0 en 1, terwijl u met 95 een alfabet krijgt met alleen numerieke tekens, hoofdletters, kleine letters en symbolen.
- Door een alfabet te bouwen dat de exacte tekens bevat die gebruikt moeten worden
Bij gebruik van FPE-FFX in Google Cloud worden de gegevens versleuteld zoals eerder beschreven, maar er kan ook een surrogaatannotatie aan worden toegevoegd, wat resulteert in een definitief token. Het token heeft de volgende vorm wanneer een surrogaatannotatie is opgenomen: surrogate_infotype(surrogate_length): surrogate_value. De surrogaatannotatie is surrogate_infotype(surrogate_length). Het infotype wordt door de gebruiker gedefinieerd en de surrogaatwaarde is de resulterende versleutelde tekst. Als er geen surrogaatannotatie is opgegeven, is het definitieve token alleen de surrogaatwaarde. Om ongestructureerde gegevens opnieuw te identificeren, is het volledige token, inclusief een surrogaatannotatie, nodig, terwijl voor gestructureerde gegevens alleen de surrogaatwaarde nodig is.
Conclusie
Formaatbehoudende encryptie is uiterst belangrijk voor gebruikers die willen dat de versleutelde tekst na encryptie dezelfde lengte heeft als de onversleutelde tekst. Van de verschillende FPE-FFX-methoden die op Google Cloud worden gebruikt, is FF1 de beste methode vanwege de extra rondes van de Feistel-functie die deze doorloopt.
Gestructureerde data vereist dat er een surrogaatannotatie aan de versleutelde tekst wordt toegevoegd om heridentificatie van de data mogelijk te maken. Google Cloud heeft een robuuste implementatie van FPE beschikbaar voor klanten. Voor diegenen die platte tekst en versleutelde tekst van dezelfde lengte nodig hebben, is Google Cloud FPE-FFX de beste keuze.
