Gæstebloggen

Kan man stole på den krypterede sky?

Det er måske ikke alle, der forstår, hvad det egentlig indebærer, når man lægger sine data 'op i skyen'; og begrebet 'skyen', som så ofte bruges, hjælper ikke ligefrem.

Der er nemlig ikke noget i ordet 'skyen', der hentyder til, at ens data i sidste ende havner på en anden persons server, for det er, hvad der i bund og grund sker, når man bruger for eksempel Google Drive eller Dropbox.

Med andre ord så overgiver man kontrollen af sine data til udbyderen.

Anders Dalskov er ph.d.-studerende ved Aarhus Universitet med fokus på kryptografi. Hans nuværende forskning fokuserer på sikre krypteringsprotokoller, der involverer passwords, samt effektive implementeringer af sikre flertalsberegningsprotokoller (såkaldt Secure Multiparty Computation). Illustration: Privatfoto

Hvis man stoler på udbyderen, så kan dette tab af kontrol dog være acceptabelt - at bruge en sådan 'Cloud Storage'-tjeneste er jo trods alt nemmere end at køre og vedligeholde en server derhjemme.

Men hvad skal denne tillid så indebære?

Kan jeg for eksempel tilfælde af, at jeg opsiger min konto, stole på, at udbyderen sletter mine data på en måde, så det ikke kan gendannes?

(I 2017 var en bug i Dropbox skyld i, at filer, der var slettet for op til 7 år siden, blev gendannet.)

Hvad nu, hvis udbyderen bliver solgt til et andet firma, som jeg ikke har nær så meget tillid til? Når først man har fragivet kontrollen over sine data, så er den meget svær at få tilbage igen.

Der findes dog alternativer baseret på såkaldt 'end-to-end'-kryptering - altså kryptering, hvor den eneste, der har nøglen, er dataejeren - som ikke har samme problem.

Kort fortalt så krypterer man sin data før det sendes op i skyen, og man kan på denne måde sikre sig, at andre ikke har adgang til ens data.

Med andre ord så kan man nu (eller det er i hvert fald ideen) sikkert overgive sine data til en Cloud Storage-udbyder, uden at man behøver at stole på, at de kan håndtere ens data forsvarligt. Dette er også mere eller mindre 'salgstalen', der gives af diverse udbydere af krypterede Cloud Services-hjemmesider. For eksempel:

»We built our products from the ground up with end-to-end encryption because we believe: You shouldn’t have to blindly trust your vendors.«

Vi har altså her et produkt, der efter sigende ikke kræver nogen form for tillid for at kunne garantere sikkerheden af vores filer. Men et sådant udsagn er tæt koblet til krypteringen, der bliver brugt: Vi behøver ikke stole på udbyderen fordi der bruges kryptering.

Det skal selvfølgelig nævnes, at jeg her snakker udelukkende om cloud-storage og ikke general Cloud Computing. Her kan normal kryptering ikke bruges, da det ikke er muligt at lave beregninger på det.

(Alt efter hvilken type beregninger der er tale om, kan det faktisk godt lade sig gøre at beregne på krypteret data. Men så er der ikke længere tale om standardkrypteringsmetoder, og emnet bliver meget hurtigt meget avanceret.)

Ikke et spørgsmål om hvad, men om hvordan

Bemærk at bare fordi der bliver brugt kryptering, så betyder det ikke, at ens filer automatisk er sikret mod alle, der ikke har nøglen. De fleste programmer, vi bruger i dag, er yderst komplekse, og kryptering er ikke bare noget, man kan tilføje, og så bliver alting sikkert.

For eksempel så er det formelle sikkerhedsbevis for beskedtjenesten Signals måder at lave krypteringsnøgler på næsten 20 tætskrevne A4-sider langt.

Af denne grund så betyder det heller ikke meget, at udbyderen påstår, at de bruger krypteringsalgoritmer som AES, SHA-256 til at hashe data med eller PBKDF2 til at hashe passwords med; eller om, hvorvidt der bruges TLS eller ej.

Min pointe er, at det ikke er et spørgsmål om, hvad der bliver brugt, men hvordan det bruges.

For godt et års tid siden foretog jeg en sikkerhedsanalyse af et af disse krypterede Cloud Storage-produkter, navnlig SpiderOak ONE (det er også SpiderOak, som citatet ovenfor stammer fra).

Målet med analysen var som sådan simpelt: Hvilke trusselsmodeller bliver brugt, og er deres program sikkert i disser modeller (hvad end de så er)?

Fordi der ikke bliver specificeret nogen konkret sikkerhedsmodel, så var vi tvunget til at lave nogle kvalificerede gæt. Kort fortalt så stillede vi følgende to spørgsmål, der motiverer de to trusselsmodeller, vi betragtede:

  1. Er programmet sikkert, hvis serveren opfører sig pænt, men er nysgerrig?

  2. Er programmet sikkert, hvis serveren ikke nødvendigvis opfører sig pænt?

Det burde være klart, at programmet som minimum bør opfylde punkt 1: Hvis ikke, så er der ikke nogen grund til at bruge det her produkt i stedet for fx et produkt, hvor ens filer ikke bliver krypteret.

Punkt 2 derimod er en slags 'worst case scenario' og kan selvfølgelig diskuteres. Ikke desto mindre er det illustrativt, at inkludere det, selvom det måske er overkill.

Vores analyse fandt at:

  • Hvis den første trusselsmodel antages (nysgerrig server), så kan serveren stadig læse ens filer i nogle tilfælde, fordi fildeling i programmet ikke virker som forventet.
  • Hvis den anden trusselsmodel antages (ond server), så bryder sikkerheden totalt sammen.

De specifikke detaljer er ikke så vigtige, men det er værd at bemærke ,at ingen af problemerne, vi fandt, havde noget at gøre med hvilke krypteringsalgoritmer der blev brugt, men udelukkende hvordan de blev brugt.

Hvad kan man så lære af det?

Når det gælder sikkerhed, så er åbenhed en af de vigtigste aspekter efter min mening. Et udsagn som: »Vi bruger sikker kryptering« er næsten altid meningsløst, hvis det ikke samtidig understøttes af en klar beskrivelse af systemet samt de antagelser, der ligger til grund for det sikkerhedsargument, der nu bliver præsenteret.

Med andre ord så er det vigtigt, at der er en klar beskrivelse af hvordan disse primitiver bruges, og hvilken slags angreb man forventer, de beskytter en imod.

Desuden så kan man håbe på, at et åbent design gør det nemmere for andre at analysere og forbedre det.

Protonmail er et godt eksempel på hvordan dette kan gøres. Her beskrives klart hvad der beskyttes imod, og nok lige så vigtigt hvad der ikke beskyttes imod.

Til sidst skal det nævnes, at SpiderOak var meget imødekommende overfor vores analyse, og fiksede alle de sikkerhedshuller vi fandt. Dette indlæg er ikke rettet mod nogen bestemt service, og SpiderOak blev her brugt som et (forhåbentlig) illustrativt eksempel.

Dette indlæg er baseret på Anders Dalskovs kandidatspeciale skrevet sidste år. Det blev for nylig kåret til årets speciale 2017 af DSfD.

Relateret indhold

Kommentarer (6)
sortSortér kommentarer
  • Ældste først
  • Nyeste først
  • Bedste først
Heino Svendsen

Er et rungende "NEJ!"...

Man kan tillægge sig holdningen, at man stoler på leverandør X ( og diverse 3 bogstavsinstanser, som har "backup" af kommunikation etc. ) i det øjeblik, man indgår aftalen. EULA'en kan jo skifte lige så hurtigt, som politikere skifter standpunkt...

Og kan man stole på leverandør X i morgen?

Bjarne Nielsen

Fra artiklen:

Hvis man stoler på udbyderen, så kan dette tab af kontrol dog være acceptabelt - at bruge en sådan 'Cloud Storage'-tjeneste er jo trods alt nemmere end at køre og vedligeholde en server derhjemme.

Men er det så meget mere sikkert, at holde det "der hjemme"?

Og svaret er et klart: Måske, for det kommer an på.

Og derfor er den vigtigste pointe i ovenstående efter min mening, at man skal gøre sig overvejelser som sin trusselsmodel.

Robert Winther

Og kan man stole på leverandør X i morgen?

Såfremt der er tale om ægte og sikker end-to-end-kryptering (kun du har nøglen og krypteringen er så stærk at den ikke kan brydes i praksis), så behøver du streng taget ikke bekymre dig om leverandøren i forhold til sikkerheden.

Hvis de kan få adgang til dine data i morgen, bare ved at ændre i EULA'en, så kunne du heller ikke stole på leverandøren i dag eller i går, for så har sikkerheden aldrig været høj nok.

Om du kan få fat i dine data er naturligvis en anden sag.

Jarle Knudsen

Der findes dog alternativer baseret på såkaldt 'end-to-end'-kryptering - altså kryptering, hvor den eneste, der har nøglen, er dataejeren - som ikke har samme problem.

Lad os lige slå fast at "end-to-end" kryptering betyder ikke at data ligger i krypteret form hos udbyderen, i skyen. Det betyder blot at data krypteres under transport f.eks. HTTPS, FTPS, WebDAVS...

Jeg går ud fra at Anders Dalskov mener "zero-knowledge cloud storage/service".

Jeg vil hermed mene at han kunne lave en bedre research til sin kandidatspeciale. :O)

Han kunne starte her:
https://www.cloudwards.net/best-zero-knowledge-cloud-services/

Henning Wangerin

Lad os lige slå fast at "end-to-end" kryptering betyder ikke at data ligger i krypteret form hos udbyderen, i skyen. Det betyder blot at data krypteres under transport f.eks. HTTPS, FTPS, WebDAVS...

Ud fra din definition er blandt andet facebook-messages krypteret end-to-end. De kører jo https til deres servere.

Nej det er de ikke. "end-to-end" er når KUN afsender og modtager kan læse data eller har det intet med end-to-end at gøre.

I mine ører har “zero-knowledge”-udbydere så heller ikke nogen ide om hvem der har krypterede data liggende på deres servere, hvor end-to-end godt ved hvem der har noget liggende, men ikke hvad der ligger på deres servere.

/Henning

Log ind eller Opret konto for at kommentere