← Blog

Je li tvoj AI chat šifriran? ChatGPT, Lumo i DentroChat

Lokot iznad tri kartice koje uspoređuju ChatGPT, Lumo i DentroChat prema šifriranju u prijenosu, u mirovanju, tijekom zaključivanja i treniranju

Nedavno nam se javio jedan korisnik DentroChata:

Lumo tvrdi da šifrira sve razgovore. Radi li DentroChat isto ili ima drugačiji pristup?

To me pitanje malo potaknulo, jer sam davno pisao završni rad iz kriptografije, a sada sam konačno htio ozbiljno zapisati svoje misli. Moj odgovor je postao prilično dug i tehnički, pa ako ti se nešto učini pregusto, možda je najbolje da zalijepiš ovaj članak u Lumo ili u DentroChat i pustiš AI da ti to objasni jednostavnijim riječima :-)

Da bismo dali pravi odgovor o tome kako funkcionira šifrirani AI chat, pogledajmo prvo kako funkcionira Protonova enkripcija, zatim Lumo, pa onda kako to rade DentroChat i ChatGPT.

Kako funkcionira Protonova zero-knowledge enkripcija

Veliki smo ljubitelji Protonovog ekosustava i već godinama ga aktivno koristimo za VPN, e-poštu, video pozive i još mnogo toga.

Glavna prednost Protona je njegova zero-knowledge postavka. Parovi javnog i privatnog ključa izvode se iz tvoje lozinke za račun i jedinstveni su za svakog korisnika. Taj privatni ključ koristi se za šifriranje naših e-poruka, sadržaja na Driveu itd. Samo korisnik, dakle mi, može dešifrirati vlastite podatke na svom lokalnom uređaju. Protonovi zaposlenici ne mogu dešifrirati naše podatke jer nikada ne dobiju pristup našem privatnom ključu.

Prednost je u tome što čak i kad bi NSA „sjedila“ unutar Protonovog poslužitelja, ne bi mogla doći do naših podataka (barem dok vrijede sve ostale sigurnosne pretpostavke). Nedostatak je u tome da ako ikada izgubimo Protonovu lozinku i sigurnosne kodove za oporavak, a nismo postavili nijednu metodu oporavka, Proton neće moći vratiti naše podatke.

Ako želiš od temelja razumjeti kako radi šifriranje javnim i privatnim ključem, ovaj YouTube video o kriptografiji javnog ključa je odličan. Kad sam ga gledao na prvoj godini fakulteta, stvarno mi je otvorio oči!

Lumo: zašto LLM mijenja sliku

Lumo se po svojoj prirodi razlikuje od drugih Protonovih usluga zbog načina na koji rade veliki jezični modeli (LLM). Da bi dobio odgovor od AI modela / LLM-a, moraš unos predati modelu u čistom tekstu (plaintext), odnosno dešifriran. (Postoje pristupi koji to rade s više enkripcije, o tome više u nastavku.)

Ako bi LLM pokretao lokalno na svom računalu, klasični Protonov pristup iz gornjeg dijela i dalje bi funkcionirao: podatke dešifriraš lokalno na svom uređaju, predaš ih lokalnom LLM-u, dobiješ odgovor i podatke ponovno lokalno šifriraš. Tako se radi kad pokrećeš lokalne modele alatima poput Ollame.

Problem je u tome što najbolji LLM-ovi trebaju vrlo jaka računala, što jednostavno nije izvedivo na prosječnom korisničkom računalu. Zato LLM mora raditi na Protonovom poslužitelju, a tvoji podaci moraju biti dešifrirani prije nego što se predaju Protonovom LLM-u.

Što se događa kad Lumu pošalješ poruku

Kad koristiš Lumo, funkcionira ovako (kako je opisano u Protonovom sigurnosnom modelu za Lumo):

  1. Lokalno na svom uređaju dešifriraš povijest svojih poruka.
  2. Dodaješ novu korisničku poruku.
  3. Cijela povijest poruka, zajedno s tvojom novom porukom, šifrira se javnim ključem Protonovog poslužitelja na kojem radi LLM.
  4. Tvoji šifrirani podaci stižu na Protonov poslužitelj, gdje se dešifriraju privatnim ključem poslužitelja. Dešifrirani podaci predaju se LLM-u, koji generira odgovor.
  5. Generirani odgovor se ponovno šifrira i šalje natrag tebi.
  6. Ti ga dešifriraš na svom uređaju i čitaš odgovor.

S obzirom na ograničenja, ovo je vrlo pouzdan pristup.

Jedina stvar je sljedeća: pristup više nije zero-knowledge tijekom inferencije. Ako švicarska policija, NSA ili nepošten Protonov zaposlenik prisluškuje unutar Protonovog poslužitelja na kojem se tvoji podaci dešifriraju prije nego što se predaju LLM-u, mogu ih pročitati. Lumo ne koristi End-to-End Encryption (E2EE) kao ostale Protonove usluge, nego ono što nazivaju User-to-Lumo Encryption (U2L). Ono po čemu se Lumo i dalje ističe jest to da je tvoja spremljena povijest razgovora šifrirana tvojim ključem dok miruje, pa nitko u Protonu kasnije ne može pročitati tvoje stare razgovore.

Kako to radi DentroChat

Pokušali smo smisliti način za pravu End-to-End Encryption u DentroChatu i osmislili smo arhitekturu koja je vrlo blizu tome. Nažalost, financijski nam nije bilo izvedivo to izgraditi (još).

Naš trenutačni pristup je klasična enkripcija koju koristi većina modernih aplikacija: enkripcija u prijenosu i enkripcija u mirovanju:

  • Kad ti šaljemo tvoje podatke, ili ti DentroChatu šalješ svoje podatke, taj se promet šifrira u prijenosu pomoću TLS-a (koji koristi parove javnog i privatnog ključa za uspostavu šifrirane veze).
  • Kad se tvoji podaci pohranjuju na naše poslužitelje u Njemačkoj, šifriraju se u mirovanju (što sami konfiguriramo i upravljamo, jer standardni pružatelji hostinga zadano ne šifriraju diskove u mirovanju). Ako napadač iskopira tvrdi disk naših poslužitelja, dobit će samo šifrirane podatke.

Odabrali smo ovaj pristup jer, u trenutku kad AI odgovara na tvoj upit, vrijedi ista temeljna pretpostavka povjerenja kao i kod Lumo: korisnik mora vjerovati da mi ne čitamo njegove podatke dok se obrađuju. Naš je pristup bio mnogo jednostavniji za postavljanje, dok je Protonov pristup sofisticiraniji i stvara više prepreka potencijalnim napadačima kad je riječ o pohranjenoj povijesti razgovora. Možda ćemo i mi jednog dana krenuti tim putem, ako vidimo jasnu korist. Za sada je pristup DentroChata siguran, pouzdan i godinama provjeren u mnogim aplikacijama.

Kako ChatGPT šifrira tvoje razgovore (i gdje je zamka)

Na papiru ChatGPT koristi potpuno iste kriptografske gradivne blokove kao DentroChat i većina cloud softvera: enkripciju u prijenosu (TLS) između tvog preglednika i OpenAI-jevih poslužitelja te enkripciju u mirovanju (AES-256) na njihovim diskovima. ChatGPT ne koristi ni end-to-end enkripciju, jer OpenAI-jevi GPU-ovi također trebaju tvoj upit u čistom tekstu da bi generirali odgovor.

Razlika kod ChatGPT-a nije u tome tko drži ključeve i što OpenAI smije raditi s tvojim podacima kad ih dešifrira:

  • Treniranje modela i ljudski pregled: Kod ChatGPT Free i Plus, tvoji dešifrirani razgovori zadano se koriste za treniranje budućih OpenAI modela, a nasumično odabrane razgovore mogu čitati ljudski recenzenti, osim ako ručno ne isključiš tu opciju u postavkama. Ni Lumo ni DentroChat nikada ne treniraju modele na tvojim razgovorima.
  • Zadržavanje nakon brisanja: Čak i ako obrišeš razgovor ili koristiš ChatGPT-ov način „Privremeni chat“, OpenAI na svojim poslužiteljima zadržava kopiju do 30 dana (sve detalje smo objasnili ovdje).
  • Izloženost US CLOUD Actu: Budući da OpenAI drži ključeve za dešifriranje tvojih spremljenih razgovora i američka je tvrtka, američka tijela mogu zatražiti pristup na temelju US CLOUD Acta. Čak i ako je tvoj radni prostor postavljen na boravak podataka u EU!
ChatGPTProton LumoDentroChat
Šifrirano u prijenosu (TLS)DaDaDa
Šifrirano u mirovanjuDa (OpenAI drži ključeve)Da (Zero-access, ključeve držiš ti)Da (DentroChat drži ključeve)
End-to-end šifriranje tijekom AI inferencijeNe (čisti tekst na poslužitelju)Ne (čisti tekst na poslužitelju, U2L)Ne (čisti tekst na poslužitelju)
Trenira AI modele na tvojim razgovorimaDa, zadano (opt-out)NikadaNikada
Podliježe US CLOUD ActuDaNe za razgovore (SAD za naplatu i podršku)Ne (100% EU / švicarski stack)

Dva načina za (gotovo) pravi end-to-end šifriranje AI-ja

Dakle, može li se ikada pokrenuti LLM u cloudu, a da operater poslužitelja ne vidi tvoj upit u čistom tekstu? Postoje dva pristupa za pravi E2EE.

1. Homomorfna enkripcija

Homomorfna enkripcija je nevjerojatno područje istraživanja. Omogućuje izvođenje izračuna izravno nad šifriranim podacima.

Na primjer: ti šifriraš broj 12, a drugi korisnik šifrira broj 17. Oba šifrirana broja zbrajaju se šifriranim računskim postupkom. Rezultat je šifrirani broj 29, a samo ti i drugi korisnik možete ga dešifrirati i saznati da je rezultat 29. Poslužitelj koji je računao nikada nije znao da su brojevi 12, 17 ili 29.

Ovaj je primjer jednostavan, ali može funkcionirati i za LLM-ove. U tom slučaju u LLM unosiš šifrirane podatke, LLM daje šifrirani odgovor, a samo korisnik ga može dešifrirati. Ovdje se odvija značajno akademsko istraživanje, primjerice ovaj nedavni rad o šifriranoj inferenciji LLM-ova (Cachemir).

Problem homomorfne enkripcije je u tome što je računski vrlo zahtjevna, a time i vrlo spora. Čak i uz nedavna ubrzanja, govorimo o otprilike 100 sekundi vremena GPU-a po generiranom tokenu, što znači da bi čekao 30 minuta na jednostavan odgovor na „Koji je glavni grad Španjolske?“

2. NVIDIA H100/H200 Confidential Computing GPU-ovi (TEE)

Drugi pristup je korištenje NVIDIA H100/H200 Confidential Computing GPU-ova s pouzdanim izvršnim okruženjem (TEE).

Funkcionira ovako: GPU ima vlastiti par privatnog i javnog ključa ugrađen izravno u svoj hardver. Stvara se jednom, kad se GPU proizvodi, i nakon stvaranja privatni ključ se ne može dohvatiti izvana, čak ni od osobe koja posjeduje serverski ormar.

To je odlično, jer sada možeš šifrirati svoje podatke javnim ključem GPU-a i poslati ih na poslužitelj. GPU ih dešifrira unutar vlastitog hardverskog enklava pomoću svog privatnog ključa, predaje ih LLM-u koji radi unutar GPU-a, ponovno šifrira odgovor i šalje ga natrag tebi.

Tako dobivamo gotovo pravi E2EE. Jedini preostali hardverski vektor napada je u fazi proizvodnje: ako je NSA zabilježila sve privatne ključeve dok su se ovi NVIDIA GPU-ovi proizvodili u tvornici, teoretski bi i dalje mogla presresti i kasnije dešifrirati promet kad se GPU počne koristiti. Ipak, NVIDIA GPU s TEE-om predstavlja vrlo snažnu sigurnosnu pretpostavku.

Za DentroChat smo imali dvije mogućnosti: kupiti takve GPU-ove sami ili pronaći europskog pružatelja koji ih nudi. Prva opcija bila je za nas preskupa: jedna H100 košta otprilike 40.000 €, a da bismo pokretali velike modele otvorenih težina poput onih koje imamo u DentroChatu, trebalo bi nam ih 8. Kao tvrtka koja posluje samo iz vlastitih sredstava, to u tom trenutku nije bilo moguće. Pronaći europskog pružatelja s GPU-ovima za confidential computing nije bilo moguće ni prije pola godine. Ipak, ovo je najrealniji put naprijed, i stalno tražimo europske pružatelje AI infrastrukture koji ga podržavaju.

Zašto smatramo da je DentroChat jak izbor uz Lumo

Čak i bez zero-access enkripcije za spremljenu povijest, postoji nekoliko razloga zašto mnogi korisnici biraju DentroChat umjesto Luma:

  • Bolji AI modeli: Kad smo zadnji put testirali Lumo, kvaliteta odgovora bila je prilično slaba i spora. Uz DentroChat dobivaš pristup najboljim modelima otvorenog koda i prilagođenom agent harnessu u pozadini.
  • Nema američkih podizvođača obrade kroz cijeli stack: I Lumo i DentroChat pokreću AI inferenciju na europskim i švicarskim poslužiteljima. Međutim, Lumo i dalje preko američkih tvrtki (poput Stripea i Zendeska) usmjerava naplatu i korisničku podršku. U DentroChatu nigdje ne koristimo američke podizvođače obrade. Cijeli naš stack možeš provjeriti na našoj stranici o podizvođačima obrade.

Ako želiš detaljnije usporediti ta dva, pogledaj naš cijeli test alternativa za Lumo, naš vodič za privatni AI chat ili kako se europske alternative ChatGPT-u uspoređuju. A ako ikada imaš tehničko pitanje poput ovoga, slobodno nam se javi putem gumba za povratne informacije u DentroChatu!

Često postavljana pitanja

Je li ChatGPT end-to-end šifriran?

Ne. OpenAI šifrira tvoje razgovore u prijenosu (TLS) i u mirovanju na svojim poslužiteljima, što je standardna osnova za cloud aplikacije. Budući da LLM za generiranje odgovora treba čisti tekst, OpenAI-jevi poslužitelji dešifriraju tvoj upit kako bi ga obradili. Osim ako nisi na poslovnom planu ili se izričito ne odjaviš, razgovori potrošača mogu se koristiti i za treniranje modela.

Je li Proton Lumo end-to-end šifriran?

Nije end-to-end. Lumo koristi ono što Proton naziva User-to-Lumo (U2L) enkripcijom: tvoja spremljena povijest razgovora zaključana je zero-access enkripcijom, pa Proton ne može čitati tvoje stare razgovore, a tvoj upit je šifriran sve do poslužitelja za inferenciju. Međutim, Protonov GPU poslužitelj i dalje mora dešifrirati tvoju poruku u memoriji kako bi je predao LLM-u.

Kako DentroChat šifrira moje razgovore?

DentroChat šifrira sav promet u prijenosu pomoću TLS-a, a tvoje razgovore i datoteke pohranjuje uz enkripciju u mirovanju kojom sami upravljamo, na europskim poslužiteljima u Njemačkoj i Francuskoj. Kao i kod Luma i ChatGPT-a, upiti se moraju dešifrirati u memoriji poslužitelja tijekom inferencije kako bi AI model mogao odgovoriti, a mi nikada ne treniramo na tvojim podacima.

Može li AI razgovor ikada biti pravi end-to-end šifriran?

Da, ili pokretanjem manjeg modela lokalno na vlastitom računalu, ili u cloudu uz homomorfnu enkripciju ili NVIDIA Confidential Computing GPU-ove (TEE). Danas je homomorfna enkripcija još uvijek predaleko spora za interaktivni chat, dok su confidential computing GPU-ovi najobećavajući put naprijed čim ih europski pružatelji hostinga učine široko dostupnima.