Er AI-chatten din kryptert? ChatGPT, Lumo og DentroChat

For en stund siden tok en bruker av DentroChat kontakt med oss:
Lumo sier at de krypterer alle samtaler. Gjør DentroChat det samme, eller har dere en annen tilnærming?
Spørsmålet fikk meg til å tenke litt, fordi jeg skrev bacheloppgaven min om kryptografi for en stund siden, og jeg ville endelig skrive ned tankene mine ordentlig. Svaret mitt ble ganske langt og teknisk, så hvis noe av det blir for tett, kan det kanskje være best å lime inn denne artikkelen i Lumo eller DentroChat og la en AI forklare det enklere :-)
For å gi et skikkelig svar på hvordan kryptert AI-chat fungerer, ser vi først på hvordan krypteringen til Proton fungerer, deretter på Lumo, og til slutt på hvordan DentroChat og ChatGPT gjør det.
Hvordan Protons zero-knowledge-kryptering fungerer
Vi er store fans av Proton-økosystemet og har brukt det aktivt i årevis til VPN, e-post, videosamtaler og mye mer.
Det store pluss-punktet med Proton er zero-knowledge-oppsettet. Offentlige og private nøkkelpar utledes fra kontopassordet ditt og er unike for hver bruker. Den private nøkkelen brukes til å kryptere e-postene våre, filene i Drive osv. Bare brukeren, altså vi, kan dekryptere våre egne data på den lokale enheten. Ansatte hos Proton kan ikke dekryptere dataene våre, fordi de aldri får tilgang til den private nøkkelen vår.
Fordelen er at selv om NSA «sitter» inne på en Proton-server, får de ikke tilgang til dataene våre (så lenge alle andre sikkerhetsforutsetninger holder). Ulempen er at hvis vi noen gang mister Proton-passordet og sikkerhetskodene, uten at vi har satt opp en gjenopprettingsmetode, kan Proton ikke gjenopprette dataene våre.
Hvis du vil forstå hvordan offentlig-privat nøkkelkryptering fungerer fra grunnen av, er denne YouTube-videoen om offentlig nøkkelkryptografi fantastisk. Da jeg så den på første året mitt på universitetet, blåste den meg fullstendig av pinnen!
Lumo: hvorfor en LLM endrer bildet
Lumo er grunnleggende annerledes enn andre Proton-tjenester på grunn av måten store språkmodeller (LLM-er) fungerer på. For å få et svar fra en AI-/LLM-modell må du mate inn teksten i klartekst, altså dekryptert. (Det finnes måter å gjøre dette mer krypterte på, mer om dette nedenfor.)
Hvis du kjørte en LLM lokalt på din egen datamaskin, ville den klassiske Proton-krypteringen over fortsatt fungert: dekrypter dataene lokalt på maskinen, mat dem inn i den lokale LLM-en, få svar og krypter dataene på nytt lokalt. Slik gjør du det når du kjører lokale modeller med verktøy som Ollama.
Problemet er at de beste LLM-ene krever svært kraftige maskiner, noe som rett og slett ikke er realistisk på en vanlig forbrukerdatamaskin. Derfor må LLM-en kjøre på en Proton-server, og dataene dine må dekrypteres før de mates inn i Protons LLM.
Hva som skjer når du sender en melding til Lumo
Når du bruker Lumo, fungerer det slik (som dokumentert i Protons sikkerhetsmodell for Lumo):
- Du dekrypterer meldingshistorikken din lokalt på enheten.
- Du legger til en ny brukermelding.
- Hele meldingshistorikken, sammen med den nye meldingen, krypteres med den offentlige nøkkelen til Proton-serveren der LLM-en kjører.
- De krypterte dataene kommer frem til Proton-serveren og dekrypteres med serverens private nøkkel. De dekrypterte dataene mates inn i LLM-en, og et svar genereres.
- Svaret krypteres på nytt og sendes tilbake til deg.
- Du dekrypterer det på enheten din og leser svaret.
Dette er en svært solid løsning gitt rammene.
Det eneste er: tilnærmingen er ikke lenger zero-knowledge under inferens. Hvis den sveitsiske politiet, NSA eller en useriøs ansatt hos Proton lytter inne på Proton-serveren der dataene dine dekrypteres før de mates inn i LLM-en, kan de lese dataene dine. Lumo bruker ikke ende-til-ende-kryptering (E2EE) slik de andre Proton-tjenestene gjør, men noe de kaller User-to-Lumo-kryptering (U2L). Der Lumo fortsatt skinner, er at den lagrede samtalehistorikken din er kryptert med nøkkelen din i ro, så ingen hos Proton kan lese de gamle samtalene dine senere.
Hvordan DentroChat gjør det
Vi prøvde å finne en måte å sikre ekte ende-til-ende-kryptering for DentroChat på, og kom frem til en arkitektur som ligger svært nær. Men dessverre var det ikke økonomisk realistisk for oss å bygge den (ennå).
Vår nåværende tilnærming er den klassiske krypteringen de fleste moderne apper bruker: kryptering under overføring og kryptering i ro:
- Når vi sender deg dataene dine, eller du sender dataene dine til DentroChat, krypteres trafikken under overføring med TLS (som bruker offentlige og private nøkler for å etablere den krypterte forbindelsen).
- Når dataene dine lagres på serverne våre i Tyskland, krypteres de i ro (noe vi konfigurerer og administrerer selv, siden vanlige hostingleverandører ikke krypterer disker i ro som standard). Hvis en angriper kopierer harddisken på serverne våre, får de bare krypterte data.
Vi valgte denne tilnærmingen fordi AI-en, i øyeblikket den svarer på forespørselen din, har den samme kjerneforutsetningen om tillit som Lumo: brukeren må stole på at vi ikke leser dataene deres mens de behandles. Vår nåværende tilnærming var mye enklere å sette opp, mens Protons løsning er mer sofistikert og legger flere hindringer i veien for potensielle angripere når det gjelder lagret samtalehistorikk. Vi kan også gå den veien på et tidspunkt hvis vi ser en klar fordel. Foreløpig er DentroChats løsning sikker, solid og har vist seg holdbar over år i mange applikasjoner.
Hvordan ChatGPT krypterer samtalene dine (og hvor haken er)
På papiret bruker ChatGPT nøyaktig de samme kryptografiske byggeklossene som DentroChat og de fleste skytjenester: kryptering under overføring (TLS) mellom nettleseren din og OpenAIs servere, og kryptering i ro (AES-256) på diskene deres. ChatGPT bruker heller ikke ende-til-ende-kryptering, fordi OpenAIs GPU-er også trenger forespørselen din i klartekst for å generere et svar.
Forskjellen med ChatGPT er ikke hvem som har nøklene og hva OpenAI har lov til å gjøre med dataene dine når de dekrypterer dem:
- Modelltrening og menneskelig gjennomgang: På ChatGPT Free og Plus blir de dekrypterte samtalene dine brukt til å trene fremtidige OpenAI-modeller som standard, og utvalgte samtaler kan leses av menneskelige vurderere med mindre du manuelt velger å reservere deg i innstillingene. Verken Lumo eller DentroChat trener noen gang på samtalene dine.
- Lagring etter sletting: Selv om du sletter en samtale eller bruker ChatGPTs «midlertidig chat»-modus, beholder OpenAI en kopi på serverne sine i opptil 30 dager (vi gikk gjennom alle detaljene her).
- Eksponering for US CLOUD Act: Fordi OpenAI har dekrypteringsnøklene til de lagrede samtalene dine og er et amerikansk selskap, kan amerikanske myndigheter kreve tilgang etter US CLOUD Act. Selv om arbeidsområdet ditt er satt til EU-datalagring!
| ChatGPT | Proton Lumo | DentroChat | |
|---|---|---|---|
| Kryptert under overføring (TLS) | Ja | Ja | Ja |
| Kryptert i ro | Ja (OpenAI har nøklene) | Ja (Zero-access, du har nøklene) | Ja (DentroChat har nøklene) |
| Ende-til-ende-kryptert under AI-inferens | Nei (klartekst på server) | Nei (klartekst på server, U2L) | Nei (klartekst på server) |
| Trener AI-modeller på samtalene dine | Ja som standard (kan reserveres) | Aldri | Aldri |
| Underlagt US CLOUD Act | Ja | Nei for samtaler (USA for fakturering/støtte) | Nei (100 % EU-/sveitsisk stack) |
To måter å få (nesten) ekte ende-til-ende-kryptering for AI
Kan man egentlig noen gang kjøre en LLM i skyen uten at serveroperatøren ser den reelle klarteksten i forespørselen din? Det finnes to tilnærminger til ekte E2EE.
1. Homomorf kryptering
Homomorf kryptering er et fantastisk forskningsfelt. Det lar deg utføre beregninger direkte på krypterte data.
La oss si at du krypterer tallet 12, og en annen bruker krypterer tallet 17. Begge de krypterte tallene legges sammen med en kryptert addisjon. Resultatet er det krypterte tallet 29, og bare du og den andre brukeren kan dekryptere det og finne ut at resultatet er 29. Serveren som gjorde regnestykket visste aldri at tallene var 12, 17 eller 29.
Dette eksempelet er enkelt, men det kan også fungere for LLM-er. Da legger du krypterte data inn i LLM-en, LLM-en gir et kryptert svar, og bare brukeren kan dekryptere svaret. Det foregår viktig akademisk forskning på dette, for eksempel denne nye artikkelen om kryptert LLM-inferens (Cachemir).
Problemet med homomorf kryptering er at den er svært krevende å beregne, og derfor veldig treg. Selv med nyere forbedringer snakker vi om rundt 100 sekunder med GPU-tid per generert token, noe som betyr at du må vente 30 minutter på et enkelt svar på «Hva er hovedstaden i Spania?»
2. NVIDIA H100/H200 Confidential Computing-GPU-er (TEE)
Den andre tilnærmingen er å bruke NVIDIA H100/H200 Confidential Computing-GPU-er med et Trusted Execution Environment (TEE).
Slik fungerer det: GPU-en har sitt eget privat-offentlig nøkkelpar innprogrammert direkte i maskinvaren. Det lages én gang når GPU-en produseres, og når nøkkelen først er laget, kan den private nøkkelen ikke hentes utenfra, heller ikke av personen som eier serverskapet.
Dette er flott, fordi du nå kan kryptere dataene dine med GPU-ens offentlige nøkkel og sende dem til serveren. GPU-en dekrypterer dem inne i sitt eget maskinvarebaserte enklave med den private nøkkelen, mater dem til LLM-en som kjører inne i GPU-en, krypterer svaret på nytt og sender det tilbake til deg.
På denne måten får vi nesten ekte E2EE. Den eneste gjenværende angrepsvektoren i maskinvaren er i produksjonssteget: hvis NSA tok opp alle private nøkler mens disse NVIDIA-GPU-ene ble laget i fabrikken, ville de teoretisk sett fortsatt kunne avskjære og dekryptere trafikken senere, når GPU-en er satt i drift. Men en NVIDIA-GPU med TEE er en svært sterk sikkerhetsforutsetning.
Vi hadde to alternativer for DentroChat: kjøpe slike GPU-er selv, eller finne en europeisk leverandør som tilbyr dem. Det første var for dyrt for oss: en enkelt H100 koster rundt 40 000 euro, og for å kjøre store åpne modeller, som dem vi har i DentroChat, trenger vi 8 av dem. Som en egenfinansiert bedrift var ikke det mulig på det tidspunktet. Å finne en europeisk leverandør som bruker confidential computing-GPU-er var heller ikke mulig for et halvt år siden. Men dette er den mest realistiske veien fremover, og vi leter hele tiden etter europeiske AI-infrastrukturleverandører som støtter det.
Hvorfor vi mener DentroChat er et sterkt valg ved siden av Lumo
Selv uten zero-access-kryptering av lagret historikk ennå, finnes det flere grunner til at mange brukere velger DentroChat fremfor Lumo:
- Bedre AI-modeller: Sist vi testet Lumo, var svarkvaliteten vi fikk ganske mager og treg. Med DentroChat får du tilgang til de beste åpne modellene og et skreddersydd agentrammeverk under panseret.
- Null US-underleverandører i hele stacken: Både Lumo og DentroChat kjører AI-inferensen sin på europeiske og sveitsiske servere. Lumo sender imidlertid fortsatt fakturering og kundestøtte gjennom amerikanske selskaper (som Stripe og Zendesk). Hos DentroChat bruker vi null amerikanske underleverandører. Du kan verifisere hele stacken vår på siden for underleverandører.
Hvis du vil sammenligne de to mer detaljert, kan du se vår fullstendige test av Lumo-alternativer, guiden vår til privat AI-chat, eller hvordan europeiske ChatGPT-alternativer står seg. Og hvis du noen gang har et teknisk spørsmål som dette, ikke nøl med å kontakte oss via tilbakemeldingsknappen i DentroChat!
Ofte stilte spørsmål
Er ChatGPT ende-til-ende-kryptert?
Nei. OpenAI krypterer samtalene dine under overføring (TLS) og i ro på serverne sine, som er standardgrunnlaget for skyapper. Fordi LLM-en trenger klartekst for å generere et svar, dekrypterer OpenAIs servere forespørselen din for å behandle den. Med mindre du har en forretningsabonnement eller uttrykkelig reserverer deg, kan samtaler fra forbrukere også brukes til modelltrening.
Er Proton Lumo ende-til-ende-kryptert?
Ikke ende-til-ende. Lumo bruker det Proton kaller User-to-Lumo (U2L)-kryptering: den lagrede samtalehistorikken din er låst med zero-access-kryptering, slik at Proton ikke kan lese de gamle samtalene dine, og forespørselen din er kryptert hele veien til inferensserveren. Proton-GPU-serveren må likevel dekryptere meldingen din i minnet for å mate den inn i LLM-en.
Hvordan krypterer DentroChat samtalene mine?
DentroChat krypterer all trafikk under overføring med TLS, og lagrer samtalene og filene dine med selvadministrert kryptering i ro på europeiske servere i Tyskland og Frankrike. Som Lumo og ChatGPT må forespørsler dekrypteres i serverminnet under inferens, slik at AI-modellen kan svare på dem, og vi trener aldri på dataene dine.
Kan en AI-chat noen gang være ekte ende-til-ende-kryptert?
Ja, enten ved å kjøre en liten modell lokalt på din egen datamaskin, eller i skyen ved hjelp av homomorf kryptering eller NVIDIA Confidential Computing-GPU-er (TEE). I dag er homomorf kryptering fortsatt alt for treg for interaktiv chat, mens confidential computing-GPU-er er den mest lovende veien fremover når europeiske hostingleverandører gjør dem allment tilgjengelige.