Er din AI-chat krypteret? ChatGPT, Lumo og DentroChat

For et stykke tid siden kontaktede en DentroChat-bruger os:
Lumo siger, at de krypterer alle samtaler. Gør DentroChat det samme, eller har I en anden tilgang?
Spørgsmålet fik mig til at tænke over det, for jeg skrev engang min bacheloropgave om kryptografi, og nu ville jeg endelig skrive mine tanker ordentligt ned. Mit svar blev ret langt og teknisk. Hvis noget bliver for tæt, er det måske bedst at indsætte denne artikel i Lumo eller DentroChat og lade en AI forklare det med enklere ord :-)
For at give et ordentligt svar på, hvordan krypteret AI-chat fungerer, kigger vi først på, hvordan Protons kryptering fungerer, derefter på Lumo, og til sidst på, hvordan DentroChat og ChatGPT gør det.
Sådan fungerer Protons zero-knowledge-kryptering
Vi er store fans af Proton-økosystemet, og vi har brugt det aktivt i årevis til VPN, e-mail, videoopkald og meget mere.
Det store trick ved Proton er deres zero-knowledge-opsætning. Offentlige-private nøglepar udledes af din kontoadgangskode og er unikke for hver bruger. Den private nøgle bruges til at kryptere vores e-mails, Drive-indhold osv. Kun brugeren, altså os, kan dekryptere vores egne data på vores lokale enhed. Proton-medarbejdere kan ikke dekryptere vores data, fordi de aldrig får adgang til vores private nøgle.
Fordelen er, at selv hvis NSA „sidder” inde på en Proton-server, kan de ikke få fat i vores data (i hvert fald så længe alle andre sikkerhedsantagelser holder). Ulempen er, at hvis vi nogensinde mister vores Proton-adgangskode og backupkoder, og vi ikke har en gendannelsesmetode sat op, kan Proton ikke gendanne vores data.
Hvis du vil forstå, hvordan offentlig-privat nøglekryptering fungerer fra bunden, er denne YouTube-video om offentlig nøglekryptografi fantastisk. Da jeg så den på mit første år på universitetet, blæste den mit hoved af!
Lumo: hvorfor en LLM ændrer billedet
Lumo er grundlæggende anderledes end andre Proton-tjenester på grund af den måde, store sprogmodeller (LLM’er) fungerer på. For at få et svar fra en AI- eller LLM-model skal du føre input ind i modellen i klartekst, altså dekrypteret. (Der findes måder at gøre det mere krypteret på, mere om det nedenfor.)
Hvis du kørte en LLM lokalt på din egen computer, ville den klassiske Proton-tilgang ovenfor stadig fungere: dekrypter dataene lokalt på din maskine, før dem ind i din lokale LLM, få et svar, og krypter dataene igen lokalt. Det er den måde, man gør det på, når man kører lokale modeller med værktøjer som Ollama.
Problemet er, at de bedste LLM’er kræver meget kraftige maskiner, hvilket simpelthen ikke er muligt på en almindelig forbrugercomputer. Derfor skal LLM’en køre på en Proton-server, og dine data skal dekrypteres, før de føres ind i Protons LLM.
Hvad der sker, når du sender en besked til Lumo
Når du bruger Lumo, fungerer det sådan her (som beskrevet i Protons sikkerhedsmodel for Lumo):
- Du dekrypterer din chathistorik lokalt på din enhed.
- Du tilføjer en ny brugerbesked.
- Hele beskedhistorikken, sammen med din nye besked, krypteres med den offentlige nøgle på Proton-serveren, hvor LLM’en kører.
- Dine krypterede data ankommer til Proton-serveren og dekrypteres med serverens private nøgle. De dekrypterede data føres ind i LLM’en, og der genereres et svar.
- Det genererede svar krypteres igen og sendes tilbage til dig.
- Du dekrypterer det på din enhed og læser svaret.
Givet begrænsningerne er dette en meget solid tilgang.
Det eneste er: under inferens er tilgangen ikke længere zero-knowledge. Hvis den schweiziske politi, NSA eller en useriøs Proton-medarbejder lytter inde på den Proton-server, hvor dine data dekrypteres, før de føres ind i LLM’en, kan de læse dine data. Lumo bruger ikke End-to-End Encryption (E2EE) ligesom de andre Proton-tjenester, men noget de kalder User-to-Lumo Encryption (U2L). Der hvor Lumo stadig skinner, er, at din gemte chathistorik er krypteret med din nøgle i hvile, så ingen hos Proton senere kan læse dine gamle samtaler.
Sådan gør DentroChat
Vi forsøgte at finde en måde at sikre ægte End-to-End Encryption for DentroChat, og vi endte med en arkitektur, der ligger meget tæt på. Men desværre var den ikke økonomisk realistisk for os at bygge (endnu).
Vores nuværende tilgang er den klassiske kryptering, som de fleste moderne apps bruger: kryptering under transport og kryptering i hvile:
- Når vi sender dig dine data, eller du sender dine data til DentroChat, krypteres trafikken under transport med TLS (som bruger offentlige-private nøgler til at etablere den krypterede forbindelse).
- Når dine data gemmes på vores servere i Tyskland, krypteres de i hvile (noget vi selv konfigurerer og administrerer, fordi almindelige hostingudbydere ikke krypterer diske i hvile som standard). Hvis en angriber kopierer harddisken fra vores servere, får de kun krypterede data.
Vi valgte denne tilgang, fordi AI’en i det øjeblik, den svarer på din prompt, har den samme kerneantagelse om tillid som Lumo: brugeren skal stole på, at vi ikke læser deres data, mens vi behandler dem. Vores nuværende tilgang var langt enklere at sætte op, mens Protons tilgang er mere sofistikeret og lægger flere forhindringer i vejen for potentielle angribere, når det gælder gemt chathistorik. Vi kan også en dag gå den vej, hvis vi ser en klar fordel. Lige nu er DentroChats tilgang sikker, solid og gennem årene blevet testet af mange applikationer.
Sådan krypterer ChatGPT dine samtaler (og hvor haken sidder)
På papiret bruger ChatGPT præcis de samme kryptografiske byggeklodser som DentroChat og de fleste cloudprogrammer: kryptering under transport (TLS) mellem din browser og OpenAI’s servere, og kryptering i hvile (AES-256) på deres diske. ChatGPT bruger heller ikke end-to-end-kryptering, fordi OpenAI’s GPU’er også har brug for din prompt i klartekst for at generere et svar.
Forskellen med ChatGPT handler om hvem der har nøglerne, og hvad OpenAI må gøre med dine data, når de dekrypterer dem:
- Modeltræning og menneskelig gennemgang: På ChatGPT Free og Plus bruges dine dekrypterede samtaler som standard til at træne fremtidige OpenAI-modeller, og udvalgte chats kan læses af menneskelige anmeldere, medmindre du manuelt fravælger det i dine indstillinger. Hverken Lumo eller DentroChat træner nogensinde på dine chats.
- Opbevaring efter sletning: Selv hvis du sletter en chat eller bruger ChatGPT’s „Midlertidig chat”-tilstand, beholder OpenAI en kopi på sine servere i op til 30 dage (vi gennemgik alle detaljerne her).
- Eksponering for US CLOUD Act: Fordi OpenAI har dekrypteringsnøglerne til dine gemte chats og er et amerikansk selskab, kan amerikanske myndigheder kræve adgang under US CLOUD Act. Selv hvis dit workspace er sat til EU-dataopbevaring!
| ChatGPT | Proton Lumo | DentroChat | |
|---|---|---|---|
| Krypteret under transport (TLS) | Ja | Ja | Ja |
| Krypteret i hvile | Ja (OpenAI har nøglerne) | Ja (Zero-access, du har nøglerne) | Ja (DentroChat har nøglerne) |
| End-to-end-krypteret under AI-inferens | Nej (klartekst på serveren) | Nej (klartekst på serveren, U2L) | Nej (klartekst på serveren) |
| Træner AI-modeller på dine chats | Ja som standard (kan fravælges) | Aldrig | Aldrig |
| Underlagt US CLOUD Act | Ja | Nej for chats (USA for fakturering/support) | Nej (100 % EU- og schweizisk stack) |
To måder at få (næsten) ægte end-to-end-kryptering til AI
Kan man nogensinde køre en LLM i skyen uden, at serverens operatør ser din prompt i klartekst? Der findes to tilgange til ægte E2EE.
1. Homomorf kryptering
Homomorf kryptering er et fascinerende forskningsfelt. Det gør det muligt at udføre beregninger direkte oven på krypterede data.
For eksempel: du krypterer tallet 12, og en anden bruger krypterer tallet 17. Begge krypterede tal lægges sammen via en krypteret additionsberegning. Resultatet er det krypterede tal 29, og kun du og den anden bruger kan faktisk dekryptere det og se, at resultatet er 29. Serveren, der udførte regnestykket, har aldrig vidst, at tallene var 12, 17 eller 29.
Det eksempel er simpelt, men det kan også fungere for LLM’er. I så fald indtaster du krypterede data i LLM’en, LLM’en leverer et krypteret svar, og kun brugeren kan dekryptere svaret. Der foregår seriøs akademisk forskning her, for eksempel denne nye artikel om krypteret LLM-inferens (Cachemir).
Problemet med homomorf kryptering er, at den er beregningsmæssigt meget dyr og dermed meget langsom. Selv med de nyeste optimeringer taler vi om omkring 100 sekunders GPU-tid pr. genereret token. Det betyder, at du skulle vente i 30 minutter på et simpelt svar på „Hvad er hovedstaden i Spanien?”
2. NVIDIA H100/H200 Confidential Computing-GPU’er (TEE)
Den anden tilgang er at bruge NVIDIA H100/H200 Confidential Computing-GPU’er med et Trusted Execution Environment (TEE).
Sådan fungerer det: GPU’en har sit eget private-offentlige nøglepar hårdkodet direkte i hardwaren. Det oprettes én gang, når GPU’en fremstilles, og når den først er oprettet, kan den private nøgle ikke hentes udefra, heller ikke af den person, der ejer serverskabet.
Det er fantastisk, for nu kan du kryptere dine data med GPU’ens offentlige nøgle og sende dem til serveren. GPU’en dekrypterer dem inde i sit eget hardware-enclave med sin private nøgle, fører dem ind i LLM’en, der kører inde i GPU’en, krypterer svaret igen og sender det tilbage til dig.
På den måde får vi næsten ægte E2EE. Den eneste tilbageværende angrebsvektor i hardwaren ligger i produktionsfasen: hvis NSA optog alle private nøgler, mens disse NVIDIA-GPU’er blev fremstillet på fabrikken, kunne de teoretisk set stadig opfange og dekryptere trafikken senere, når GPU’en er taget i brug. En NVIDIA-GPU med en TEE er dog en meget stærk sikkerhedsantagelse.
Vi havde to muligheder for DentroChat: købe sådanne GPU’er selv eller finde en europæisk udbyder, der tilbyder dem. Den første var for dyr for os: en enkelt H100 koster omkring 40.000 euro, og for at køre store open-weights-modeller som dem, vi har i DentroChat, skulle vi bruge 8 af dem. Som et selvfinansieret selskab var det ikke muligt på det tidspunkt. Det var heller ikke muligt for et halvt år siden at finde en europæisk udbyder, der bruger confidential computing-GPU’er. Dette er dog den mest realistiske vej fremad, og vi leder konstant efter europæiske AI-infrastrukturudbydere, der understøtter det.
Hvorfor vi mener, at DentroChat er et stærkt valg ved siden af Lumo
Selv uden zero-access-kryptering af den gemte historik (endnu) er der nogle grunde til, at mange brugere vælger DentroChat frem for Lumo:
- Bedre AI-modeller: Sidste gang vi testede Lumo, var svarkvaliteten ret mager og langsom. Med DentroChat får du adgang til de bedste open source-modeller og et skræddersyet agentværktøj under motorhjelmen.
- Nul amerikanske underleverandører i hele stakken: Både Lumo og DentroChat kører deres AI-inferens på europæiske og schweiziske servere. Lumo sender dog stadig fakturering og kundesupport gennem amerikanske virksomheder (som Stripe og Zendesk). Hos DentroChat bruger vi ingen amerikanske underleverandører nogen steder. Du kan verificere hele vores stack på vores underleverandørside.
Hvis du vil sammenligne de to mere detaljeret, så tjek vores fulde test af Lumo-alternativer, vores guide til privat AI-chat eller hvordan europæiske ChatGPT-alternativer klarer sig. Og hvis du nogensinde har et teknisk spørgsmål som dette, så tøv ikke med at kontakte os via feedbackknappen i DentroChat!
Ofte stillede spørgsmål
Er ChatGPT end-to-end-krypteret?
Nej. OpenAI krypterer dine samtaler under transport (TLS) og i hvile på sine servere, hvilket er standardniveauet for cloudapps. Fordi LLM’en har brug for klartekst for at generere et svar, dekrypterer OpenAI’s servere din prompt for at behandle den. Medmindre du har en erhvervsabonnement eller udtrykkeligt fravælger det, kan forbrugersamtaler også bruges til modeltræning.
Er Proton Lumo end-to-end-krypteret?
Ikke end-to-end. Lumo bruger det, Proton kalder User-to-Lumo (U2L)-kryptering: din gemte chathistorik er låst med zero-access-kryptering, så Proton ikke kan læse dine gamle chats, og din prompt er krypteret hele vejen frem til inferensserveren. Proton-GPU-serveren skal dog stadig dekryptere din besked i hukommelsen for at kunne føre den ind i LLM’en.
Hvordan krypterer DentroChat mine samtaler?
DentroChat krypterer al trafik under transport med TLS og gemmer dine samtaler og filer med selvadministreret kryptering i hvile på europæiske servere i Tyskland og Frankrig. Ligesom Lumo og ChatGPT skal prompts dekrypteres i serverhukommelsen under inferens, så AI-modellen kan besvare dem, og vi træner aldrig på dine data.
Kan en AI-chat nogensinde være ægte end-to-end-krypteret?
Ja, enten ved at køre en lille model lokalt på din egen computer, eller i skyen med homomorf kryptering eller NVIDIA Confidential Computing-GPU’er (TEE’er). I dag er homomorf kryptering stadig alt for langsom til interaktiv chat, mens confidential computing-GPU’er er den mest lovende vej fremad, når europæiske hostingudbydere gør dem bredt tilgængelige.