En introduktionsguide och fallstudie för Google Cloud

By rik

Låt oss tillsammans utforska molnkryptografi, dess olika typer och hur det implementeras i Google Cloud.

Molndatorer, en del av IaaS, har passerat stadiet av att bara vara ett modeord. Det är numera en dominerande kraft där privatpersoner, företag och myndigheter använder molntjänster för att förenkla hanteringen av lokal teknisk infrastruktur.

Molnet representerar bekvämlighet, ekonomiska fördelar och skalbarhet.

Enkelt uttryckt, molndatorer innebär att man hyr datorkraft som lagring, RAM, CPU, etc., via internet utan att behöva fysiskt äga hårdvaran.

Ett vardagligt exempel är Google Drive eller Yahoo Mail. Vi anförtror dessa företag vår data, ibland känslig personlig eller affärsrelaterad information.

Ofta bryr sig den genomsnittlige användaren inte så mycket om integritet eller säkerhet i molntjänster. Men alla som är medvetna om historien kring övervakning eller dagens sofistikerade cyberattacker bör vara vaksamma, eller åtminstone informera sig om läget.

Vad innebär molnkryptering?

Molnkryptografi minskar känslan av osäkerhet genom att kryptera data som lagras i molnet, vilket förhindrar obehörig åtkomst.

Kryptering är en teknik som använder en algoritm (chiffer) för att omvandla vanlig information till kodad form. Även om den kodade informationen skulle exponeras blir den obegriplig för utomstående.

Det finns olika former av kryptering beroende på användningsområde. Därför är det viktigt att använda ett starkt chiffer för att skydda molndata.

Kan du exempelvis förstå den här texten?

Iggmhnctg rtqfwegu jkij-swcnkva vgejpqnqia & hkpcpeg ctvkengu, ocmgu vqqnu, cpf CRKu vq jgnr dwukpguugu cpf rgqrng itqy.

Nej, förmodligen inte!

Det kan vara ett mysterium för den mänskliga hjärnan, men med en Caesar-dekoder knäcks den på ett par sekunder:

Även de som har en grundläggande förståelse för Caesar-chiffret ser direkt att varje bokstav är förskjuten två steg framåt i alfabetet.

Detta understryker vikten av att använda ett robust chiffer, som AES-256.

Hur fungerar kryptering i molnet?

De sista raderna i förra avsnittet kan ha gett intrycket att man manuellt väljer ett chiffer för att kryptera data.

Det kan fungera så i teorin, men i praktiken erbjuder molntjänstleverantörer ofta inbyggd kryptering, eller så använder man krypteringstjänster från en extern part.

Vi delar därför upp detta i två huvudkategorier för att se hur implementeringen ser ut.

#1. Kryptering på molnplattformen

Detta är den enklaste metoden där den etablerade molntjänstleverantören sköter krypteringen.

Vanligtvis gäller följande:

Data i vila

Detta innebär att data lagras i krypterad form antingen innan den överförs till lagringsutrymmena eller direkt efteråt.

Eftersom molnkryptografi är ett relativt nytt område finns det ingen standardmetod för hur det ska göras. Det finns många forskningsstudier som utvärderar olika tillvägagångssätt, men det viktigaste är tillämpningen i praktiken.

Så hur skyddar ett ledande företag inom molninfrastruktur som Google Cloud data i vila?

Enligt Googles dokumentation, delas data upp i små grupper om några gigabyte som sprids över deras lagringsutrymmen på olika maskiner. Ett enskilt utrymme kan innehålla data från samma eller olika användare.

Varje datapaket krypteras individuellt, även om de finns i samma utrymme och tillhör samma användare. Om krypteringsnyckeln för ett paket komprometteras kommer andra filer alltså att förbli säkra.

Källa: Google Cloud

Krypteringsnyckeln byts dessutom ut vid varje datauppdatering.

Data i detta lagringssteg krypteras med AES-256, förutom vissa beständiga diskar som skapades före 2015 som använder AES-128-bitars kryptering.

Detta är alltså det första krypteringsskiktet – på nivån av enskilda paket.

Hårddiskarna (HDD) eller SSD-enheterna som rymmer dessa databitar krypteras med ytterligare ett lager av AES-256-bitars kryptering, där vissa äldre HDD-enheter fortfarande använder AES-128. Krypteringsnycklarna på enhetsnivå skiljer sig från de på lagringsnivå.

Alla dessa datakrypteringsnycklar (DEK) krypteras sedan ytterligare med nyckelkrypteringsnycklar (KEK), som hanteras centralt av Googles Key Management Service (KMS). Samtliga KEK använder AES-256/AES-128-bitars kryptering, och minst en KEK är kopplad till varje Googles molntjänst.

Dessa KEK roteras minst en gång var 90:e dag med hjälp av Googles gemensamma kryptobibliotek.

Varje KEK säkerhetskopieras, spåras vid varje användning och kan endast nås av behörig personal.

Därefter krypteras alla KEK igen med AES-256-bitars kryptering, vilket skapar en KMS-huvudnyckel som lagras i en annan nyckelhanteringsanläggning, kallad Root KMS, som hanterar ett begränsat antal sådana nycklar.

Root KMS hanteras på dedikerade maskiner i varje Google Cloud-datacenter.

Denna Root KMS är i sin tur krypterad med AES-256, vilket skapar en enda KMS-rotnyckel som lagras i en peer-to-peer-infrastruktur.

En Root KMS-instans körs på varje root KMS-huvudnyckeldistributör och håller nyckeln i direktminnet.

Varje ny instans av root KMS-huvudnyckeldistributören godkänns av redan aktiva instanser för att förhindra eventuella fel.

För att hantera situationen där alla distributörsinstanser behöver starta samtidigt, säkerhetskopieras rot-KMS-huvudnyckeln även på två fysiska platser.

Endast ett tjugotal Google-anställda har tillgång till dessa högsäkerhetsplatser.

Detta är alltså hur Google praktiserar molnkryptografi för data i vila.

Om du vill ha större kontroll kan du själv hantera nycklarna, eller lägga till ytterligare ett lager av kryptering och hantera nycklarna själv. Kom dock ihåg att om du tappar dessa nycklar kan du bli utelåst från ditt eget webbprojekt.

Man bör inte förvänta sig denna detaljnivå från alla andra molnleverantörer. Eftersom Google tar ut ett premiumpris kan du dra nytta av en annan leverantör som är billigare men som ändå passar din specifika hotbild.

Data under överföring

Detta handlar om data som överförs inom molnleverantörens datacenter eller utanför dess gränser, exempelvis när du laddar upp data från din egen dator.

Det finns inte heller någon fast metod för att skydda data under överföring, så vi ska titta på Googles molnimplementering.

Enligt Googles whitepaper om kryptering under överföring finns det tre åtgärder för att skydda data i rörelse: autentisering, kryptering och integritetskontroll.

Inom sitt datacenter skyddar Google data under överföring med hjälp av autentisering av slutpunkter och integritetsbekräftelse med valfri kryptering.

Användare kan vidta ytterligare åtgärder, men Google garanterar säkerheten i sina anläggningar med strängt övervakad åtkomst som endast ges till ett fåtal anställda.

Utanför sina fysiska gränser har Google en differentierad policy för sina egna molntjänster (som Google Drive) och alla kundapplikationer som finns i molnet (som webbplatser som körs i deras beräkningsmotor).

I det första fallet passerar all trafik först en kontrollpunkt som kallas Google Front End (GFE) via Transport Layer Security (TLS). Därefter DDoS-skyddas, lastbalanseras och skickas trafiken till den avsedda Google Cloud-tjänsten.

I det andra fallet ligger ansvaret för att skydda data under överföring till stor del på infrastrukturägaren, om de inte använder en annan Google-tjänst (som deras Cloud VPN) för dataöverföring.

Generellt används TLS för att säkerställa att data inte har manipulerats under överföringen. Det är samma protokoll som används som standard när du ansluter till en webbplats med HTTPS, vilket symboliseras av en hänglåsikon i webbläsarens adressfält.

TLS används vanligtvis i alla webbläsare, men kan även användas i andra applikationer som e-post, ljud- och videosamtal, meddelandeappar etc.

För maximal säkerhet finns virtuella privata nätverk (VPN) som erbjuder ytterligare säkerhetslager med avancerade krypteringschiffer som AES-256.

Att implementera molnkryptografi på egen hand är dock svårt, vilket leder oss till…

#2. Kryptering som en tjänst

Detta är ett alternativ när säkerhetsstandarderna på din molnplattform är bristfälliga eller saknas för specifika användningsfall.

En lösning är att själv övervaka allt och säkerställa datasäkerhet i företagsklass. Det är dock lättare sagt än gjort, och tar bort den enkla och problemfria hanteringen som lockar många med molntjänster.

Detta gör att vi kan överväga att använda Encryption-as-a-service (EAAS), exempelvis från CloudHesive. På samma sätt som att använda molntjänster ”hyr” du kryptering snarare än CPU, RAM, lagring etc.

Beroende på EAAS-leverantören kan du använda kryptering för både data i vila och under överföring.

För- och nackdelar med molnkryptering

Den största fördelen är uppenbar: säkerhet. Genom att använda molnkryptografi kan du skydda dina användares data mot cyberbrott.

Även om molnkryptografi inte kan förhindra alla hack, handlar det om att göra sitt bästa och ha en bra beredskap om något skulle gå fel.

Nackdelarna är att det kostar både tid och pengar att uppgradera det befintliga säkerhetssystemet. Det finns heller inte mycket man kan göra om man förlorar åtkomsten till sina krypteringsnycklar när man hanterar dem själv.

Eftersom detta är en relativt ny teknik är det inte heller enkelt att hitta en beprövad EAAS-leverantör.

Sammanfattningsvis är det bäst att använda en välrenommerad molntjänstleverantör och förlita sig på deras inbyggda krypteringsmekanismer.

Sammanfattning

Vi hoppas att denna artikel har gett dig en inblick i molnkryptografi. Sammanfattningsvis handlar det om datasäkerhet relaterad till molnet, inklusive dataöverföring.

De flesta stora molninfrastrukturföretag som Google Cloud, Amazon Web Services etc. har tillräcklig säkerhet för de flesta användningsområden. Det skadar dock inte att läsa på lite om den tekniska aspekten innan man lägger verksamhetskritiska applikationer hos någon.

PS: Ta gärna en titt på några lösningar för att optimera molnkostnader för AWS, Google Cloud, Azure m.fl.