← Ιστολόγιο

Είναι κρυπτογραφημένο το AI chat σου; ChatGPT, Lumo και DentroChat

Γράφτηκε απόPaul Plessing
Ελέγχθηκε απόPaul Petritsch
Ένα λουκέτο πάνω από τρεις κάρτες που συγκρίνουν τα ChatGPT, Lumo και DentroChat στην κρυπτογράφηση κατά τη μεταφορά, σε ηρεμία, στο inference και στην εκπαίδευση

Κάποια στιγμή ένας χρήστης του DentroChat μας έγραψε:

Το Lumo λέει ότι κρυπτογραφεί όλες τις συνομιλίες. Κάνει το ίδιο και το DentroChat ή έχει διαφορετική προσέγγιση;

Αυτή η ερώτηση με προβλημάτισε λίγο, γιατί έγραψα κάποτε την πτυχιακή μου στην κρυπτογραφία και επιτέλους ήθελα να καταγράψω τις σκέψεις μου σωστά. Η απάντησή μου έγινε αρκετά μεγάλη και τεχνική, οπότε αν κάτι σου φανεί πολύ πυκνό, ίσως είναι καλύτερα να επικολλήσεις αυτό το άρθρο στο Lumo ή στο DentroChat και να αφήσεις ένα AI να σου το εξηγήσει με απλούστερα λόγια :-)

Για να απαντήσουμε σωστά στο πώς λειτουργεί το κρυπτογραφημένο chat με AI, ας δούμε πρώτα πώς λειτουργεί η κρυπτογράφηση της Proton, μετά το Lumo, και μετά πώς το κάνουν το DentroChat και το ChatGPT.

Πώς λειτουργεί η zero-knowledge κρυπτογράφηση της Proton

Είμαστε μεγάλοι θαυμαστές του οικοσυστήματος της Proton και το χρησιμοποιούμε ενεργά εδώ και χρόνια για VPN, email, βιντεοκλήσεις και πολλά άλλα.

Το μεγάλο πλεονέκτημα της Proton είναι η zero-knowledge αρχιτεκτονική της. Τα ζεύγη δημόσιου και ιδιωτικού κλειδιού προκύπτουν από τον κωδικό πρόσβασης του λογαριασμού σου και είναι μοναδικά για κάθε χρήστη. Αυτό το ιδιωτικό κλειδί χρησιμοποιείται για να κρυπτογραφεί τα email μας, το περιεχόμενο του Drive κ.λπ. Μόνο ο χρήστης, δηλαδή εμείς, μπορεί να αποκρυπτογραφήσει τα δικά του δεδομένα στην τοπική του συσκευή. Οι υπάλληλοι της Proton δεν μπορούν να αποκρυπτογραφήσουν τα δεδομένα μας, γιατί ποτέ δεν αποκτούν πρόσβαση στο ιδιωτικό μας κλειδί.

Το θετικό είναι ότι, ακόμα κι αν η NSA «κάθεται» μέσα σε έναν server της Proton, δεν θα μπορέσει να πάρει τα δεδομένα μας (τουλάχιστον όσο ισχύουν όλες οι υπόλοιπες παραδοχές ασφαλείας). Το μειονέκτημα είναι ότι, αν χάσουμε ποτέ τον κωδικό Proton και τους κωδικούς ανάκτησης και δεν έχουμε ρυθμίσει καμία μέθοδο ανάκτησης, η Proton δεν θα μπορέσει να επαναφέρει τα δεδομένα μας.

Αν θέλεις να καταλάβεις πώς λειτουργεί η κρυπτογράφηση με δημόσιο και ιδιωτικό κλειδί από το μηδέν, το βίντεο του YouTube για την κρυπτογραφία δημόσιου κλειδιού είναι εξαιρετικό. Όταν το είδα στον πρώτο χρόνο των σπουδών μου, με συνεπήρε!

Lumo: γιατί ένα LLM αλλάζει την εικόνα

Το Lumo διαφέρει εξαρχής από τις άλλες υπηρεσίες της Proton, λόγω του τρόπου λειτουργίας των Large Language Models (LLM). Για να πάρεις απάντηση από ένα μοντέλο AI / LLM, πρέπει να δώσεις την είσοδο στο μοντέλο σε μορφή plaintext, δηλαδή αποκρυπτογραφημένη. (Υπάρχουν προσεγγίσεις που το κάνουν με πιο κρυπτογραφημένο τρόπο, για αυτές παρακάτω.)

Αν έτρεχες ένα LLM τοπικά στον δικό σου υπολογιστή, η κλασική προσέγγιση κρυπτογράφησης της Proton που περιγράψαμε θα λειτουργούσε κανονικά: αποκρυπτογραφείς τα δεδομένα τοπικά στη μηχανή σου, τα δίνεις στο τοπικό σου LLM, παίρνεις απάντηση και κρυπτογραφείς ξανά τα δεδομένα τοπικά. Αυτή είναι η προσέγγιση όταν τρέχεις τοπικά μοντέλα με εργαλεία όπως το Ollama.

Το πρόβλημα είναι ότι τα καλύτερα LLM χρειάζονται πολύ ισχυρά μηχανήματα, κάτι που απλά δεν είναι εφικτό στον μέσο υπολογιστή του καταναλωτή. Άρα το LLM πρέπει να τρέχει σε server της Proton, και τα δεδομένα σου πρέπει να αποκρυπτογραφούνται πριν δοθούν στο LLM της Proton.

Τι συμβαίνει όταν στέλνεις μήνυμα στο Lumo

Όταν χρησιμοποιείς το Lumo, η διαδικασία είναι η εξής (όπως περιγράφεται στο μοντέλο ασφαλείας του Lumo της Proton):

  1. Αποκρυπτογραφείς το ιστορικό των μηνυμάτων σου τοπικά, στη συσκευή σου.
  2. Προσθέτεις ένα νέο μήνυμα χρήστη.
  3. Όλο το ιστορικό μηνυμάτων, μαζί με το νέο σου μήνυμα, κρυπτογραφείται με το δημόσιο κλειδί του server της Proton όπου τρέχει το LLM.
  4. Τα κρυπτογραφημένα δεδομένα σου φτάνουν στον server της Proton και αποκρυπτογραφούνται με το ιδιωτικό κλειδί του server. Τα αποκρυπτογραφημένα δεδομένα δίνονται στο LLM και παράγεται η απάντηση.
  5. Η απάντηση κρυπτογραφείται ξανά και σου αποστέλλεται.
  6. Την αποκρυπτογραφείς στη συσκευή σου και διαβάζεις την απάντηση.

Με δεδομένους τους περιορισμούς, αυτή είναι μια πολύ στέρεη προσέγγιση.

Το μόνο είναι το εξής: η προσέγγιση δεν είναι πια zero-knowledge κατά τη διάρκεια του inference. Αν η ελβετική αστυνομία, η NSA ή ένας παρείσακτος υπάλληλος της Proton παρακολουθεί μέσα στον server της Proton, όπου τα δεδομένα σου αποκρυπτογραφούνται πριν δοθούν στο LLM, μπορεί να τα διαβάσει. Το Lumo δεν χρησιμοποιεί End-to-End Encryption (E2EE) όπως οι άλλες υπηρεσίες της Proton, αλλά κάτι που ονομάζουν User-to-Lumo Encryption (U2L). Εκεί που το Lumo εξακολουθεί να ξεχωρίζει είναι ότι το αποθηκευμένο ιστορικό των συνομιλιών σου κρυπτογραφείται με το κλειδί σου ενώ είναι αποθηκευμένο, οπότε κανείς στην Proton δεν μπορεί να διαβάσει αργότερα τις παλιές σου συνομιλίες.

Πώς το κάνει το DentroChat

Προσπαθήσαμε να βρούμε τρόπο για να εξασφαλίσουμε πραγματική End-to-End Encryption για το DentroChat και καταλήξαμε σε μια αρχιτεκτονική πολύ κοντά σε αυτή. Δυστυχώς, δεν ήταν οικονομικά εφικτό να την υλοποιήσουμε (ακόμα).

Η τρέχουσα προσέγγισή μας είναι η κλασική κρυπτογράφηση που χρησιμοποιούν οι περισσότερες σύγχρονες εφαρμογές: κρυπτογράφηση κατά τη μεταφορά και κρυπτογράφηση στην αποθήκευση:

  • Όταν σου στέλνουμε τα δεδομένα σου, ή όταν εσύ στέλνεις τα δεδομένα σου στο DentroChat, αυτή η κίνηση κρυπτογραφείται κατά τη μεταφορά με TLS (το οποίο χρησιμοποιεί ζεύγη δημόσιου και ιδιωτικού κλειδιού για να δημιουργήσει την κρυπτογραφημένη σύνδεση).
  • Όταν τα δεδομένα σου αποθηκεύονται στους servers μας στη Γερμανία, κρυπτογραφούνται στην αποθήκευση (τη ρυθμίζουμε και τη διαχειριζόμαστε εμείς οι ίδιοι, επειδή οι συνηθισμένοι πάροχοι φιλοξενίας δεν κρυπτογραφούν τους δίσκους στην αποθήκευση by default). Αν ένας επιτιθέμενος αντιγράψει τον σκληρό δίσκο των servers μας, θα πάρει μόνο κρυπτογραφημένα δεδομένα.

Επιλέξαμε αυτή την προσέγγιση επειδή, τη στιγμή που η AI απαντά στο μήνυμά σου, ισχύει η ίδια βασική παραδοχή εμπιστοσύνης που ισχύει και για το Lumo: ο χρήστης πρέπει να μας εμπιστευτεί ότι δεν διαβάζουμε τα δεδομένα του κατά την επεξεργασία. Η δική μας προσέγγιση ήταν πολύ πιο απλή στη ρύθμιση, ενώ η προσέγγιση της Proton είναι πιο εξελιγμένη και βάζει περισσότερα εμπόδια σε πιθανούς επιτιθέμενους για το αποθηκευμένο ιστορικό συνομιλιών. Ίσως κι εμείς ακολουθήσουμε αυτόν τον δρόμο κάποια στιγμή, αν δούμε ξεκάθαρο όφελος. Προς το παρόν, η προσέγγιση του DentroChat είναι ασφαλής, στέρεη και δοκιμασμένη στην πράξη από πολλές εφαρμογές εδώ και χρόνια.

Πώς κρυπτογραφεί το ChatGPT τις συνομιλίες σου (και πού είναι το κόλπο)

Στα χαρτιά, το ChatGPT χρησιμοποιεί ακριβώς τα ίδια κρυπτογραφικά δομικά στοιχεία με το DentroChat και με το μεγαλύτερο μέρος του cloud λογισμικού: κρυπτογράφηση κατά τη μεταφορά (TLS) ανάμεσα στον browser σου και τους servers της OpenAI, και κρυπτογράφηση στην αποθήκευση (AES-256) στους δίσκους τους. Το ChatGPT δεν χρησιμοποιεί ούτε end-to-end κρυπτογράφηση, επειδή και οι GPU της OpenAI χρειάζονται το prompt σου σε plaintext για να παράγουν απάντηση.

Η διαφορά με το ChatGPT δεν έγκειται στο ποιος κατέχει τα κλειδιά και τι επιτρέπεται να κάνει η OpenAI με τα δεδομένα σου όταν τα αποκρυπτογραφεί:

  • Εκπαίδευση μοντέλων και ανθρώπινος έλεγχος: Στα ChatGPT Free και Plus, οι αποκρυπτογραφημένες συνομιλίες σου χρησιμοποιούνται by default για την εκπαίδευση μελλοντικών μοντέλων της OpenAI, και ανθρώπινοι ελεγκτές μπορεί να διαβάζουν δειγματοληπτικά συνομιλίες, εκτός αν απενεργοποιήσεις χειροκίνητα αυτή τη ρύθμιση στις ρυθμίσεις σου. Ούτε το Lumo ούτε το DentroChat εκπαιδεύονται ποτέ στις συνομιλίες σου.
  • Διατήρηση μετά τη διαγραφή: Ακόμα κι αν διαγράψεις μια συνομιλία ή χρησιμοποιήσεις τη λειτουργία «Προσωρινή συνομιλία» του ChatGPT, η OpenAI κρατά ένα αντίγραφο στους servers της έως και 30 ημέρες (εξηγήσαμε όλες τις λεπτομέρειες εδώ).
  • Έκθεση στο US CLOUD Act: Επειδή η OpenAI κατέχει τα κλειδιά αποκρυπτογράφησης για τις αποθηκευμένες συνομιλίες σου και είναι αμερικανική εταιρεία, οι αμερικανικές αρχές μπορούν να επιβάλουν πρόσβαση βάσει του US CLOUD Act. Ακόμα κι αν ο χώρος εργασίας σου έχει ρυθμιστεί για αποθήκευση δεδομένων στην ΕΕ!
ChatGPTProton LumoDentroChat
Κρυπτογραφημένο κατά τη μεταφορά (TLS)ΝαιΝαιΝαι
Κρυπτογραφημένο στην αποθήκευσηΝαι (η OpenAI κατέχει τα κλειδιά)Ναι (Zero-access, τα κλειδιά τα έχεις εσύ)Ναι (το DentroChat κατέχει τα κλειδιά)
End-to-end κρυπτογράφηση κατά το AI inferenceΌχι (plaintext στον server)Όχι (plaintext στον server, U2L)Όχι (plaintext στον server)
Εκπαιδεύει μοντέλα AI με τις συνομιλίες σουΝαι by default (opt-out)ΠοτέΠοτέ
Υπόκειται στο US CLOUD ActΝαιΌχι για τις συνομιλίες (ΗΠΑ για τιμολόγηση και υποστήριξη)Όχι (100% στοίβα ΕΕ / Ελβετίας)

Δύο τρόποι για (σχεδόν) πραγματική end-to-end κρυπτογράφηση στην AI

Άρα μπορείς ποτέ να τρέξεις ένα LLM στο cloud χωρίς ο διαχειριστής του server να βλέπει το prompt σου σε plaintext; Υπάρχουν δύο προσεγγίσεις για σωστό E2EE.

1. Ομομορφική κρυπτογράφηση

Η ομομορφική κρυπτογράφηση είναι εκπληκτικός τομέας έρευνας. Επιτρέπει να εκτελούνται υπολογισμοί απευθείας πάνω σε κρυπτογραφημένα δεδομένα.

Για παράδειγμα: εσύ κρυπτογραφείς τον αριθμό 12, και ένας άλλος χρήστης κρυπτογραφεί τον αριθμό 17. Και οι δύο κρυπτογραφημένοι αριθμοί προστίθενται με έναν κρυπτογραφημένο υπολογισμό πρόσθεσης. Το αποτέλεσμα είναι ο κρυπτογραφημένος αριθμός 29, και μόνο εσύ και ο άλλος χρήστης μπορείτε να τον αποκρυπτογραφήσετε και να δείτε ότι το αποτέλεσμα είναι 29. Ο server που έκανε τις πράξεις δεν έμαθε ποτέ ότι οι αριθμοί ήταν 12, 17 ή 29.

Το παράδειγμα είναι απλό, αλλά μπορεί να λειτουργήσει και για LLM. Σε αυτή την περίπτωση, δίνεις κρυπτογραφημένα δεδομένα στο LLM, το LLM παράγει κρυπτογραφημένη απάντηση και μόνο ο χρήστης μπορεί να την αποκρυπτογραφήσει. Γίνεται σημαντική ακαδημαϊκή έρευνα εδώ, όπως αυτή η πρόσφατη εργασία για κρυπτογραφημένη inference σε LLM (Cachemir).

Το πρόβλημα με την ομομορφική κρυπτογράφηση είναι ότι είναι υπολογιστικά πολύ απαιτητική, και άρα πολύ αργή. Ακόμα και με τις πρόσφατες βελτιώσεις, μιλάμε για περίπου 100 δευτερόλεπτα χρόνου GPU ανά παραγόμενο token, πράγμα που σημαίνει ότι θα περίμενες 30 λεπτά για μια απλή απάντηση στο «Ποια είναι η πρωτεύουσα της Ισπανίας;»

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

Η δεύτερη προσέγγιση είναι η χρήση NVIDIA H100/H200 Confidential Computing GPU με Trusted Execution Environment (TEE).

Λειτουργεί ως εξής: η GPU έχει το δικό της ζεύγος ιδιωτικού και δημόσιου κλειδιού ενσωματωμένο απευθείας στο υλικό της. Δημιουργείται μία φορά, όταν κατασκευάζεται η GPU, και μόλις δημιουργηθεί, το ιδιωτικό κλειδί δεν μπορεί να ανακτηθεί από έξω, ούτε καν από το άτομο που κατέχει το ράφι με τον server.

Αυτό είναι σπουδαίο, γιατί τώρα μπορείς να κρυπτογραφήσεις τα δεδομένα σου με το δημόσιο κλειδί της GPU και να τα στείλεις στον server. Η GPU τα αποκρυπτογραφεί μέσα στο δικό της hardware enclave με το ιδιωτικό της κλειδί, τα δίνει στο LLM που τρέχει μέσα στη GPU, κρυπτογραφεί ξανά την απάντηση και σου την στέλνει πίσω.

Έτσι, παίρνουμε σχεδόν πραγματικό E2EE. Το μόνο υπολειπόμενο διάνυσμα επίθεσης στο υλικό βρίσκεται στο στάδιο της κατασκευής: αν η NSA κατέγραψε όλα τα ιδιωτικά κλειδιά ενώ αυτές οι GPU της NVIDIA κατασκευάζονταν στο εργοστάσιο, θεωρητικά θα μπορούσε ακόμα να υποκλέψει και να αποκρυπτογραφήσει την κίνηση αργότερα, όταν η GPU βρίσκεται σε λειτουργία. Ωστόσο, μια NVIDIA GPU με TEE αποτελεί πολύ ισχυρή παραδοχή ασφαλείας.

Είχαμε δύο επιλογές για το DentroChat: να αγοράσουμε τέτοιες GPU οι ίδιοι, ή να βρούμε έναν ευρωπαίο πάροχο που τις προσφέρει. Η πρώτη ήταν πολύ ακριβή για εμάς: μια H100 κοστίζει περίπου 40.000 €, και για να τρέξουμε μεγάλα μοντέλα ανοιχτών βαρών, όπως αυτά που έχουμε στο DentroChat, θα χρειαζόμασταν 8 τέτοιες. Ως επιχείρηση που στηρίζεται αποκλειστικά στα δικά της έσοδα, αυτό δεν ήταν εφικτό εκείνη την εποχή. Το να βρούμε ευρωπαίο πάροχο με confidential computing GPU δεν ήταν εφικτό ούτε πριν από έξι μήνες. Ωστόσο, αυτός είναι ο πιο ρεαλιστικός δρόμος προς το μέλλον, και ψάχνουμε συνεχώς ευρωπαίους παρόχους υποδομής AI που τον υποστηρίζουν.

Γιατί πιστεύουμε ότι το DentroChat είναι ισχυρή επιλογή δίπλα στο Lumo

Ακόμα και χωρίς zero-access κρυπτογράφηση στο αποθηκευμένο ιστορικό, υπάρχουν μερικοί λόγοι για τους οποίους πολλοί χρήστες επιλέγουν το DentroChat αντί για το Lumo:

  • Καλύτερα μοντέλα AI: Την τελευταία φορά που δοκιμάσαμε το Lumo, η ποιότητα των απαντήσεων ήταν μάλλον μέτρια και αργή. Με το DentroChat έχεις πρόσβαση στα καλύτερα μοντέλα ανοιχτού κώδικα και σε ένα προσαρμοσμένο agent harness στο παρασκήνιο.
  • Κανένας αμερικανικός υπο-επεξεργαστής σε όλη τη στοίβα: Τόσο το Lumo όσο και το DentroChat εκτελούν την AI inference σε ευρωπαϊκούς και ελβετικούς servers. Ωστόσο, το Lumo εξακολουθεί να δρομολογεί την τιμολόγηση και την υποστήριξη πελατών μέσω αμερικανικών εταιρειών (όπως η Stripe και η Zendesk). Στο DentroChat δεν χρησιμοποιούμε αμερικανικούς υπο-επεξεργαστές πουθενά. Μπορείς να επαληθεύσεις ολόκληρη τη στοίβα μας στη σελίδα υπο-επεξεργαστών.

Αν θέλεις να συγκρίνεις τα δύο πιο αναλυτικά, δες το πλήρες τεστ εναλλακτικών του Lumo, τον οδηγό μας για ιδιωτικό chat με AI ή πώς συγκρίνονται οι ευρωπαϊκές εναλλακτικές του ChatGPT. Και αν ποτέ έχεις μια τεχνική ερώτηση σαν αυτή, μη διστάσεις να επικοινωνήσεις μαζί μας μέσω του κουμπιού σχολίων στο DentroChat!

Συχνές ερωτήσεις

Είναι το ChatGPT end-to-end κρυπτογραφημένο;

Όχι. Η OpenAI κρυπτογραφεί τις συνομιλίες σου κατά τη μεταφορά (TLS) και στην αποθήκευση στους servers της, κάτι που αποτελεί το συνηθισμένο βασικό επίπεδο για cloud εφαρμογές. Επειδή το LLM χρειάζεται plaintext για να παράγει απάντηση, οι servers της OpenAI αποκρυπτογραφούν το prompt σου για να το επεξεργαστούν. Εκτός αν είσαι σε επαγγελματικό πλάνο ή κάνεις ρητά opt-out, οι συνομιλίες των καταναλωτών μπορεί επίσης να χρησιμοποιηθούν για εκπαίδευση μοντέλων.

Είναι το Proton Lumo end-to-end κρυπτογραφημένο;

Όχι end-to-end. Το Lumo χρησιμοποιεί αυτό που η Proton ονομάζει User-to-Lumo (U2L) κρυπτογράφηση: το αποθηκευμένο ιστορικό των συνομιλιών σου είναι κλειδωμένο με zero-access κρυπτογράφηση, ώστε η Proton να μην μπορεί να διαβάσει τις παλιές σου συνομιλίες, και το prompt σου είναι κρυπτογραφημένο μέχρι τον server inference. Ωστόσο, ο GPU server της Proton εξακολουθεί να πρέπει να αποκρυπτογραφήσει το μήνυμά σου στη μνήμη για να το δώσει στο LLM.

Πώς κρυπτογραφεί το DentroChat τις συνομιλίες μου;

Το DentroChat κρυπτογραφεί όλη την κίνηση κατά τη μεταφορά με TLS και αποθηκεύει τις συνομιλίες και τα αρχεία σου με κρυπτογράφηση στην αποθήκευση που διαχειριζόμαστε εμείς, σε ευρωπαϊκούς servers στη Γερμανία και τη Γαλλία. Όπως το Lumo και το ChatGPT, τα prompts πρέπει να αποκρυπτογραφούνται στη μνήμη του server κατά το inference, ώστε το μοντέλο AI να μπορεί να απαντήσει, και ποτέ δεν εκπαιδεύουμε μοντέλα με τα δεδομένα σου.

Μπορεί ποτέ μια συνομιλία με AI να είναι πραγματικά end-to-end κρυπτογραφημένη;

Ναι, είτε τρέχοντας ένα μικρό μοντέλο τοπικά στον δικό σου υπολογιστή, είτε στο cloud με ομομορφική κρυπτογράφηση ή NVIDIA Confidential Computing GPU (TEE). Σήμερα, η ομομορφική κρυπτογράφηση είναι ακόμα πολύ αργή για διαδραστικό chat, ενώ οι confidential computing GPU είναι ο πιο υποσχόμενος δρόμος προς το μέλλον, μόλις οι ευρωπαίοι πάροχοι φιλοξενίας τις διαθέσουν ευρέως.