COME FUNZIONA LA VERIFICA
Verificato nel tuo browser.
Sigillato per l’enclave.
Cosa controlla il tuo browser, cosa vede il nostro relay e per cosa ti fidi ancora di noi.
Non ancora valutato in modo indipendente
Enclave verificata prima
Come lo sappiamo
Prima del tuo primo messaggio, il verificatore open source di Tinfoil controlla nel tuo browser il report firmato dal chip. Un report che non si verifica blocca tutto.
Sigillato nella tua scheda
Come lo sappiamo
Ogni richiesta è cifrata con EHBP (HPKE, AES-256-GCM) per la chiave indicata dall’attestazione, prima di partire.
Il relay vede byte
Come lo sappiamo
Il nostro relay controlla il tuo account e la tua quota e passa il testo cifrato agli host di Tinfoil. Vede dimensioni, orari e il tuo account, e non conserva copie.
Una ricevuta per risposta
Come lo sappiamo
Il tuo browser verifica l’enclave del modello che ha risposto, dove il suo hardware lo consente, e conserva ciò che ha trovato con la risposta.
Chi potrebbe guardare, e cosa lo ferma.
La rete
Rischio residuo: Basso- Ottiene
- Byte sigillati, dimensioni, orari
- Fermato da
- HTTPS, poi la sigillatura per l’enclave
- Resta aperto
- Dimensioni e tempi del traffico
Il nostro relay
Rischio residuo: Medio- Ottiene
- Il tuo account, IP, dimensioni, modello
- Fermato da
- Sigillato nella tua scheda; non può aprirlo
- Resta aperto
- I metadati che vede
L’host cloud
Rischio residuo: Medio- Ottiene
- Memoria dell’enclave cifrata
- Fermato da
- AMD SEV-SNP o Intel TDX, con attestazione
- Resta aperto
- Difetti hardware; le dichiarazioni di Tinfoil
Un’enclave falsa
Rischio residuo: Basso- Ottiene
- Niente: la tua scheda la rifiuta
- Fermato da
- Attestazione, verificata nel tuo browser
- Resta aperto
- Codice verificato non è codice revisionato
Codice del sito modificato
Rischio residuo: Medio- Ottiene
- Ciò che scrivi, prima della sigillatura
- Fermato da
- Manifest, firma, la tua build
- Resta aperto
- Una pagina non può garantire del tutto per sé stessa
L’API per sviluppatori
Rischio residuo: Alto- Ottiene
- La tua richiesta, in memoria
- Fermato da
- Niente archiviazione né log, per nostra policy
- Resta aperto
- Ti fidi del nostro gateway
DENTRO UN SERVER
Dove inizia l’enclave, e dove finisce.
Scorri per smontare un server GPU: cosa sta dentro il confine dell’enclave e cosa resta fuori.
- Dissipatore integratoIl coperchio metallico sopra i chip della GPU.
- Die della GPUDove viene eseguito il modello. Secondo la documentazione di Tinfoil, le sue GPU NVIDIA (H100, H200 e B200) funzionano in modalità di confidential computing.
- Memoria ad alta larghezza di bandaContiene i pesi del modello, e la tua richiesta mentre viene elaborata la risposta.
- Macchina virtuale confidenzialeSul processore del server (AMD SEV-SNP o Intel TDX): il router di Tinfoil e il server del modello, in una memoria che l’host non può leggere. Il suo chip firma il report che il tuo browser controlla.
- Il confine dell’enclaveCiò da cui l’hardware tiene fuori l’host, e ciò che l’attestazione descrive. La tua richiesta viene aperta solo al suo interno.
- L’hostLa scheda, il suo hypervisor e i driver, e chiunque la gestisca: fuori dal confine. Trasporta byte sigillati in entrata e in uscita.
Un’illustrazione del tipo di macchina che usa Tinfoil, non l’immagine di una macchina specifica. Il registro firmato delle release di Tinfoil indica CPU, memoria e GPU di ogni enclave; il pannello Verificato dello spazio di lavoro le mostra.
Leggi il testo completoNascondi il testo completo
In breve
Undergrove esegue modelli a pesi aperti dentro enclave hardware gestite da Tinfoil. Una parte di ciò che questo significa la verifica il tuo browser da sé; una parte è una dichiarazione di Tinfoil; e una parte dipende da noi. Ecco quale è quale.
Il tuo browser verifica
- Che l’enclave sia hardware autentico che esegue il codice pubblicato da Tinfoil.
- Che ogni richiesta sia sigillata per la chiave di quell’enclave prima di lasciare la tua scheda.
- Per la ricevuta di ogni risposta, l’enclave del modello che ha risposto, dove il suo hardware lo consente.
Tinfoil dichiara
- Di non poter accedere alle sue enclave, e che nulla al loro interno persiste tra un riavvio e l’altro.
- Che le sue GPU supportate funzionano in modalità di confidential computing.
Ti fidi di noi per
- Il codice che questo sito invia al tuo browser, che puoi confrontare con la build.
- Cosa fa il relay con ciò che può vedere: dimensioni, orari e il tuo account.
- Il gateway dell’API per sviluppatori, che legge le richieste in memoria.
Niente di tutto questo è ancora stato valutato in modo indipendente.
01 · Attestazione
Il chip garantisce per il codice.
Un’enclave hardware è una parte di un server in cui il suo stesso host non può guardare: il processore cifra la memoria dell’enclave e ne tiene fuori il software dell’host. Da sola, sarebbe solo una promessa. Ciò che la rende verificabile è l’attestazione. Quando l’enclave si avvia, il processore misura il codice che ha caricato e firma un report di quella misurazione con una chiave garantita dal produttore del chip. Il report indica anche la chiave pubblica con cui l’enclave decifrerà.
Prima del tuo primo messaggio, lo spazio di lavoro scarica quel report per l’enclave del router di Tinfoil, tramite il nostro server, ed esegue su di esso il verificatore open source di Tinfoil nel tuo browser. Scaricarlo tramite noi non cambia nulla: non possiamo falsificare la firma del chip, e un report che non supera la verifica blocca tutto.
Corrispondono: le richieste vengono sigillate per la chiave indicata nel report.
Qualcosa non va: non viene inviato nulla, e lo spazio di lavoro spiega perché.
I controlli del verificatore, in ordine
- Trova la release che Tinfoil ha pubblicato per questo codice.
- Controlla il report di attestazione hardware dell’enclave con le chiavi di firma del produttore del chip.
- Controlla il record di build firmato della release (Sigstore, da GitHub).
- Confronta: il codice misurato nell’enclave deve essere esattamente quella release.
- Controlla che la chiave di cifratura sia quella indicata nell’attestazione dell’enclave.
Un report verificato viene riutilizzato per un massimo di dieci minuti, in questa scheda o in un’altra scheda di questo sito, e solo se è esattamente lo stesso, in base al suo SHA-256. Lo spazio di lavoro mostra ogni controllo sotto Verificato, e la pagina sull’architettura mostra il codice che lo esegue.
02 · Sigillatura
Solo l’enclave può aprirlo.
Con l’enclave verificata, ogni richiesta live viene sigillata nella tua scheda prima di uscirne. Il suo corpo viene cifrato con EHBP, il protocollo di Tinfoil per cifrare i corpi HTTP, per la chiave indicata dall’attestazione. EHBP usa HPKE, uno standard per cifrare per la chiave pubblica di qualcuno: la tua scheda crea una nuova coppia di chiavi per la richiesta, la combina con la chiave dell’enclave in un segreto condiviso e cifra con AES-256-GCM.
La nuova metà pubblica viaggia accanto al testo cifrato, come chiave incapsulata. Solo la chiave privata dell’enclave, che non lascia mai l’enclave, può trasformarla di nuovo nel segreto. La risposta torna allo stesso modo, in frame sigillati che la tua scheda apre man mano che arrivano.
03 · Il relay
Byte che non può leggere.
Le richieste sigillate vanno al nostro relay, una funzione su Vercel, invece che direttamente a Tinfoil. Controlla chi sta chiedendo e che rientri nella sua quota, e applica alla richiesta la chiave Tinfoil di Undergrove, così non ti serve un account su Tinfoil. Rifiuta tutto ciò che non è indirizzato a uno degli host di Tinfoil o non contiene una chiave incapsulata.
Non può contare le tue parole, quindi stima il costo di ogni richiesta dalla dimensione del testo cifrato, per eccesso. Non conserva alcuna copia, e i suoi log contengono solo nomi delle route, codici di stato e tempi.
All’esterno: ciò che vede il relay
- Il tuo account e il tuo indirizzo IP (tramite Vercel, il nostro provider di hosting)
- Dimensioni, ora e percorso di ogni richiesta
- Quale modello ha risposto, da un header impostato da Tinfoil
- Se sono state usate la ricerca web o le immagini, come dichiara il tuo browser, per poterle addebitare
Sigillato all’interno: non può leggerlo
- I tuoi messaggi e file
- Le risposte
- Le tue istruzioni e note di memoria
04 · Ricevute
Due enclave, e una ricevuta per ogni risposta.
L’enclave del router che il tuo browser ha verificato non esegue il modello. Apre la tua richiesta e la passa all’enclave in cui il modello gira con le sue GPU, che il router verifica da sé, secondo il suo codice pubblicato, e indica in un’intestazione della risposta.
Poi il tuo browser verifica anche quell’enclave, con lo stesso verificatore, rispetto al repository che il router di Tinfoil fissa per quel modello. Ciò che trova viene conservato con la risposta come ricevuta: l’enclave, il codice misurato al suo interno, la release a cui corrispondeva e la chiave per cui è stata sigillata la richiesta. Una ricevuta è un registro del tuo browser, non firmato da noi né da Tinfoil; l’attestazione su cui si basa è firmata da AMD e GitHub, quindi chiunque può verificarla di nuovo.
- Verificato
- Hardware autentico, che esegue una release pubblicata del repository che il router di Tinfoil associa al modello.
- Non controllato
- Hardware che il verificatore nel browser non sa ancora leggere: legge i report AMD SEV-SNP, quindi un’enclave su Intel TDX viene registrata come non controllata.
- Non confermato
- Il controllo è stato eseguito e un passaggio non è riuscito, ad esempio un’enclave già su una release più recente di quella a cui la associa il servizio di Tinfoil.
05 · L’API per sviluppatori
Un percorso diverso, detto chiaramente.
Il codice che chiama l’API per sviluppatori invia la richiesta via HTTPS al nostro gateway, che la legge: per controllarla, applicare i limiti ed eseguire gli strumenti. La legge in memoria e non la memorizza né la registra mai. Poi il gateway fa ciò che il tuo browser fa nello spazio di lavoro: verifica l’enclave con l’SDK di Tinfoil e sigilla la richiesta per quell’enclave.
Quindi su questo percorso ci affidi la richiesta mentre il gateway la gestisce. Ciò che puoi ancora verificare è l’enclave: ogni risposta della route di Tinfoil contiene intestazioni che indicano il bundle di attestazione verificato dal gateway, perché tu possa verificarlo di nuovo. La documentazione per sviluppatori spiega come.
GET /v1/attestation?sha256= ti restituisce per controllarlo di nuovo.06 · Questa pagina
Verificare il codice che verifica.
Tutto quanto descritto sopra gira in codice che questo sito invia al tuo browser, quindi anche quel codice conta. Ogni build scrive un manifest: lo SHA-256 di ogni file servito dal sito, e il commit da cui è stata compilata.
Una pagina non può garantire del tutto per sé stessa: un controllo eseguito nella pagina è onesto solo quanto la pagina. Il controllo più solido non ci coinvolge affatto: ricompila tu stesso il commit nell’ambiente bloccato e confronta i manifest.
npm run rebuild:site) dovrebbe produrre lo stesso manifest, byte per byte; chiunque può farlo e confrontare, senza chiederci nulla.07 · Limiti
Cosa questo non dimostra.
- Le dichiarazioni di Tinfoil restano di Tinfoil. Che non possa accedere alle sue enclave, che nulla al loro interno persista tra un riavvio e l’altro e che le sue GPU funzionino in modalità di confidential computing è ciò che afferma Tinfoil. Il tuo browser verifica che l’hardware sia autentico ed esegua il codice pubblicato.
- L’hardware fa parte di ciò di cui ti fidi. La protezione vale quanto i processori, il loro firmware e le chiavi dei produttori dei chip, e in passato sono già state pubblicate vulnerabilità delle enclave hardware.
- Un passaggio si basa sul codice pubblicato. Che la tua richiesta sia passata dal router all’enclave del modello si basa sul codice pubblicato del router. Il tuo browser può verificare l’enclave del modello solo su AMD SEV-SNP; su Intel TDX risulta come non verificata.
- Il relay vede l’esterno. Il tuo account, il tuo indirizzo IP, le dimensioni, gli orari e quale modello ha risposto.
- Pubblicato non significa revisionato. Il verificatore mostra quale codice viene eseguito, non che il codice sia privo di difetti.
- Nessuna valutazione indipendente, per ora. Finora nessun revisore ha esaminato questo design o il suo codice.
Per sapere chi potrebbe vedere cosa, osservatore per osservatore, leggi il modello di minaccia.
08 · Approfondisci
Guarda ogni parte in funzione.
- ArchitetturaLe quattro tappe di un messaggio, cosa vede ciascuna, e il codice che lo fa.
- Sigillalo tuScrivi un messaggio e guardalo mentre viene sigillato per l’enclave, passo dopo passo.
- Prova a decifrarloUna richiesta cifrata, byte per byte come l’ha vista il nostro relay.
- Modello delle minacceChi potrebbe vedere cosa: il nostro hosting, noi, Tinfoil, la rete, un ordine del tribunale.
- Verifica questa paginaCalcola l’hash del codice caricato da questa pagina e confrontalo con la build.
- TrasparenzaConteggi delle richieste cifrate e delle verifiche dell’enclave, e il commit in produzione.