SO FUNKTIONIERT DIE PRÜFUNG

Geprüft in Ihrem Browser.
Versiegelt für die Enklave.

Was Ihr Browser prüft, was unser Relay sieht und wofür Sie uns weiterhin vertrauen.

Noch nicht unabhängig geprüft

  • Enklave zuerst geprüft

    Woher wir das wissen

    Vor Ihrer ersten Nachricht prüft Tinfoils Open-Source-Verifier in Ihrem Browser den vom Chip signierten Bericht. Ein Bericht, der sich nicht verifizieren lässt, stoppt alles.

    So funktioniert es
  • Versiegelt in Ihrem Tab

    Woher wir das wissen

    Jede Anfrage wird mit EHBP (HPKE, AES-256-GCM) für den Schlüssel verschlüsselt, den die Attestierung nennt, bevor sie Ihren Tab verlässt.

    So funktioniert es
  • Das Relay sieht Bytes

    Woher wir das wissen

    Unser Relay prüft Ihr Konto und Ihr Kontingent und reicht den Geheimtext an Tinfoils Hosts weiter. Es sieht Größen, Zeiten und Ihr Konto und behält keine Kopie.

    So funktioniert es
  • Ein Beleg pro Antwort

    Woher wir das wissen

    Ihr Browser prüft die Enklave des Modells, das geantwortet hat, wo dessen Hardware es zulässt, und bewahrt das Ergebnis mit der Antwort auf.

    So funktioniert es

Wer hinsehen könnte, und was es verhindert.

  1. Das Netzwerk

    Restrisiko: Niedrig
    Bekommt
    Versiegelte Bytes, Größen, Zeiten
    Verhindert durch
    HTTPS, dann für die Enklave versiegelt
    Bleibt offen
    Größe und Zeitpunkt des Verkehrs
  2. Unser Relay

    Restrisiko: Mittel
    Bekommt
    Ihr Konto, IP, Größen, Modell
    Verhindert durch
    In Ihrem Tab versiegelt; es kann sie nicht öffnen
    Bleibt offen
    Die Metadaten, die es sieht
  3. Der Cloud-Host

    Restrisiko: Mittel
    Bekommt
    Verschlüsselter Enklaven-Speicher
    Verhindert durch
    AMD SEV-SNP oder Intel TDX, attestiert
    Bleibt offen
    Hardwarefehler; Tinfoils eigene Aussagen
  4. Eine gefälschte Enklave

    Restrisiko: Niedrig
    Bekommt
    Nichts: Ihr Tab lehnt sie ab
    Verhindert durch
    Attestierung, in Ihrem Browser geprüft
    Bleibt offen
    Geprüfter Code ist kein begutachteter Code
  5. Veränderter Website-Code

    Restrisiko: Mittel
    Bekommt
    Was Sie tippen, vor dem Versiegeln
    Verhindert durch
    Build-Manifest, Signatur, Ihr eigener Build
    Bleibt offen
    Eine Seite kann nicht ganz für sich selbst bürgen
  6. Die Entwickler-API

    Restrisiko: Hoch
    Bekommt
    Ihre Anfrage, im Arbeitsspeicher
    Verhindert durch
    Keine Speicherung, keine Logs, laut unserer Richtlinie
    Bleibt offen
    Sie vertrauen unserem Gateway

IN EINEM SERVER

Wo die Enklave beginnt und wo sie endet.

Scrollen Sie, um einen GPU-Server zu zerlegen: was innerhalb der Grenze der Enklave liegt und was draußen bleibt.

  1. HeatspreaderDer Metalldeckel über den Chips der GPU.
  2. GPU-DieHier läuft das Modell. Laut Tinfoils Dokumentation laufen seine NVIDIA-GPUs (H100, H200 und B200) im Confidential-Computing-Modus.
  3. High-Bandwidth-SpeicherEnthält die Gewichte des Modells und Ihre Anfrage, während sie beantwortet wird.
  4. Vertrauliche virtuelle MaschineAuf dem Prozessor des Servers (AMD SEV-SNP oder Intel TDX): Tinfoils Router und der Server des Modells, in Speicher, den der Host nicht lesen kann. Ihr Chip signiert den Bericht, den Ihr Browser prüft.
  5. Die Grenze der EnklaveWas die Hardware vor dem Host abschirmt und was die Attestierung beschreibt. Ihre Anfrage wird nur innerhalb dieser Grenze geöffnet.
  6. Der HostDie Platine, ihr Hypervisor und ihre Treiber und wer sie betreibt: außerhalb der Grenze. Er trägt versiegelte Bytes hinein und hinaus.

Eine Illustration der Art von Maschine, die Tinfoil betreibt, kein Bild einer bestimmten. Tinfoils signierte Release-Aufzeichnung nennt CPUs, Speicher und GPUs jeder Enklave; das Panel „Geprüft“ im Arbeitsbereich zeigt sie.

Vollständigen Text lesenVollständigen Text ausblendenEtwa 12 Minuten, sechs Diagramme

Kurz gesagt

Undergrove betreibt Open-Weight-Modelle in Hardware-Enklaven, die Tinfoil betreibt. Einiges davon prüft Ihr Browser selbst, einiges ist Tinfoils Aussage, und einiges hängt an uns. Hier steht, was was ist.

Ihr Browser prüft

  • Dass die Enklave echte Hardware ist, die den von Tinfoil veröffentlichten Code ausführt.
  • Dass jede Anfrage mit dem Schlüssel dieser Enklave versiegelt wird, bevor sie Ihren Tab verlässt.
  • Für den Beleg jeder Antwort die Enklave des Modells, das geantwortet hat, soweit dessen Hardware es zulässt.

Tinfoil erklärt

  • Dass es nicht auf seine Enklaven zugreifen kann und dass nichts darin Neustarts überdauert.
  • Dass seine unterstützten GPUs im Confidential-Computing-Modus laufen.

Uns vertrauen Sie bei

  • Dem Code, den diese Website an Ihren Browser sendet und den Sie mit dem Build vergleichen können.
  • Dem, was das Relay mit dem tut, was es sehen kann: Größen, Zeiten und Ihr Konto.
  • Dem Gateway der Entwickler-API, das Anfragen im Arbeitsspeicher liest.

Nichts davon wurde bisher unabhängig geprüft.

01 · Attestierung

Der Chip bürgt für den Code.

Eine Hardware-Enklave ist ein Teil eines Servers, in den sein eigener Host nicht hineinsehen kann: Der Prozessor verschlüsselt den Speicher der Enklave und hält die Software des Hosts heraus. Für sich genommen wäre das nur ein Versprechen. Prüfbar wird es durch Attestierung. Beim Start der Enklave misst der Prozessor den geladenen Code und signiert einen Bericht über diese Messung mit einem Schlüssel, für den der Chiphersteller bürgt. Der Bericht nennt auch den öffentlichen Schlüssel, mit dem die Enklave entschlüsseln wird.

Vor Ihrer ersten Nachricht holt der Arbeitsbereich diesen Bericht für Tinfoils Router-Enklave über unseren Server ab und lässt Tinfoils quelloffenen Prüfer in Ihrem Browser darauf laufen. Dass er über uns kommt, ändert nichts: Wir können die Signatur des Chips nicht fälschen, und ein Bericht, der die Prüfung nicht besteht, stoppt alles.

Tinfoils EnklaveHardware-BerichtDer Prozessor misst den Code, mit dem die Enklave gestartet ist, und signiert einen Bericht darüber, der den öffentlichen Schlüssel der Enklave nennt, mit einem Schlüssel, für den der Chiphersteller bürgt.
GitHub und SigstoreVeröffentlichtes ReleaseTinfoil baut seinen quelloffenen Code öffentlich und hält die Messung jedes Releases in Sigstores öffentlichem Transparenzlog fest.
Ihr BrowserTinfoils quelloffener PrüferPrüft die Signatur des Berichts gegen die Schlüssel des Chipherstellers, prüft die signierte Build-Aufzeichnung des Releases und vergleicht die beiden Messungen.

Sie stimmen überein: Anfragen werden mit dem Schlüssel versiegelt, den der Bericht nennt.

Etwas schlägt fehl: Nichts wird gesendet, und der Arbeitsbereich sagt, warum.

Abbildung 1. Ihr Browser vergleicht zwei Dinge, die er prüfen kann, ohne uns zu vertrauen: den signierten Bericht des Chips über den Code in der Enklave und das Release, das Tinfoil für diesen Code veröffentlicht hat. Nur wenn beide übereinstimmen, versiegelt er etwas.

Die Prüfungen des Prüfers, der Reihe nach

  1. Das Release finden, das Tinfoil für diesen Code veröffentlicht hat.
  2. Den Hardware-Attestierungsbericht der Enklave gegen die Signaturschlüssel des Chipherstellers prüfen.
  3. Die signierte Build-Aufzeichnung des Releases prüfen (Sigstore, von GitHub).
  4. Vergleichen: Der in der Enklave gemessene Code muss genau dieses Release sein.
  5. Prüfen, dass der Verschlüsselungsschlüssel derjenige ist, den die Attestierung der Enklave nennt.

Ein geprüfter Bericht wird bis zu zehn Minuten wiederverwendet, in diesem Tab oder einem anderen Tab dieser Website, und nur, wenn es genau derselbe ist, gemessen an seinem SHA-256. Der Arbeitsbereich zeigt jede Prüfung unter „Geprüft“, und die Architekturseite zeigt den Code, der sie ausführt.

02 · Versiegeln

Nur die Enklave kann es öffnen.

Ist die Enklave geprüft, wird jede Live-Anfrage in Ihrem Tab versiegelt, bevor sie ihn verlässt. Ihr Inhalt wird mit EHBP, Tinfoils Protokoll zum Verschlüsseln von HTTP-Inhalten, für den Schlüssel verschlüsselt, den die Attestierung genannt hat. EHBP nutzt HPKE, einen Standard zum Verschlüsseln für den öffentlichen Schlüssel eines anderen: Ihr Tab erzeugt für die Anfrage ein neues Schlüsselpaar, kombiniert es mit dem Schlüssel der Enklave zu einem gemeinsamen Geheimnis und verschlüsselt mit AES-256-GCM.

Die neue öffentliche Hälfte reist neben dem Chiffretext mit, als gekapselter Schlüssel. Nur der private Schlüssel der Enklave, der die Enklave nie verlässt, kann daraus wieder das Geheimnis machen. Die Antwort kommt auf dieselbe Weise zurück, in versiegelten Blöcken, die Ihr Tab beim Eintreffen öffnet.

Ihr TabEin neues Schlüsselpaar pro AnfrageKombiniert mit dem geprüften öffentlichen Schlüssel der Enklave ergibt es ein Geheimnis, das niemand sonst errechnen kann.
Chiffretext + gekapselter Schlüssel
Undergrove-RelayGibt es weiterHat keinen Schlüssel, der es öffnet.
Dieselben Bytes
Tinfoils EnklaveÖffnet esMit dem privaten Schlüssel, der die Enklave nie verlässt.
Abbildung 2. EHBP versiegelt den Inhalt jeder Anfrage mit HPKE: X25519, HKDF-SHA256 und AES-256-GCM. Die Antwort kommt ebenfalls versiegelt zurück und öffnet sich nur in Ihrem Tab. Versiegeln Sie selbst eine Nachricht und sehen Sie jeden Schritt.

03 · Das Relay

Bytes, die es nicht lesen kann.

Versiegelte Anfragen gehen an unser Relay, eine Funktion auf Vercel, statt direkt an Tinfoil. Es prüft, wer fragt und ob das Kontingent reicht, und setzt Undergroves Tinfoil-Schlüssel auf die Anfrage, damit Sie kein Konto bei Tinfoil brauchen. Es lehnt alles ab, was nicht an einen von Tinfoils eigenen Hosts gerichtet ist oder keinen gekapselten Schlüssel trägt.

Es kann Ihre Wörter nicht zählen, also schätzt es die Kosten jeder Anfrage aus der Größe des Chiffretexts, eher zu hoch. Es behält keine Kopie, und seine Logs enthalten nur Routennamen, Statuscodes und Zeiten.

Außen: Das sieht das Relay

  • Ihr Konto und Ihre IP-Adresse (über Vercel, unseren Host)
  • Größe, Zeit und Pfad jeder Anfrage
  • Welches Modell geantwortet hat, aus einem Header, den Tinfoil setzt
  • Ob Websuche oder Bilder genutzt wurden, wie Ihr Browser es angibt, damit sie berechnet werden können

Innen versiegelt: Das kann es nicht lesen

  • Ihre Nachrichten und Dateien
  • Die Antworten
  • Ihre Anweisungen und Erinnerungen
Abbildung 3. Das Relay lehnt alles ab, was nicht für einen von Tinfoils eigenen Hosts versiegelt ist, setzt unseren Tinfoil-Schlüssel ein und gibt die Bytes weiter. Es rechnet nach Größe ab, weil es keine Wörter zählen kann. Sehen Sie eine Anfrage so, wie das Relay sie sah.

04 · Belege

Zwei Enklaven und ein Beleg für jede Antwort.

Die Router-Enklave, die Ihr Browser geprüft hat, führt das Modell nicht aus. Sie öffnet Ihre Anfrage und gibt sie an die Enklave weiter, in der das Modell mit seinen GPUs läuft. Diese prüft der Router selbst, nach seinem veröffentlichten Code, und nennt sie in einem Antwort-Header.

Ihr Browser prüft dann auch diese genannte Enklave, mit demselben Prüfer, gegen das Repository, das Tinfoils Router für dieses Modell festlegt. Was er findet, wird als Beleg mit der Antwort gespeichert: die Enklave, der darin gemessene Code, das passende Release und der Schlüssel, mit dem die Anfrage versiegelt wurde. Ein Beleg ist die eigene Aufzeichnung Ihres Browsers, nicht von uns oder von Tinfoil signiert; die Attestierung dahinter ist von AMD und GitHub signiert, sodass jeder sie erneut prüfen kann.

Enklave 1Der Router von TinfoilVor dem Senden geprüft. Öffnet die Anfrage.
Von Enklave zu Enklave
Enklave 2Das Modell und seine GPUsIm Header tinfoil-enclave genannt.
Erneut geprüft
Ihr BrowserDer Beleg der AntwortMit der Antwort gespeichert: die Enklave, der gemessene Code, das Release und der Schlüssel.
Geprüft
Echte Hardware, die ein veröffentlichtes Release des Repositorys ausführt, das Tinfoils Router für das Modell festlegt.
Nicht geprüft
Hardware, die der Prüfer im Browser noch nicht lesen kann: Er liest Berichte von AMD SEV-SNP, daher wird eine Enklave auf Intel TDX als nicht geprüft vermerkt.
Unbestätigt
Die Prüfung lief, und ein Schritt schlug fehl, etwa bei einer Enklave, die schon auf einem neueren Release läuft als dem, mit dem Tinfoils Dienst sie verknüpft.
Abbildung 4. Tinfoils Router prüft die Enklave des Modells selbst, nach seinem veröffentlichten Code, und nennt sie in einem Antwort-Header. Ihr Browser prüft diese Enklave für den Beleg der Antwort erneut. Der Header ist nicht von der Verschlüsselung abgedeckt; das zeigt also, dass die genannte Enklave echt ist, nicht, dass diese Anfrage dorthin ging. Dieser Abschnitt stützt sich auf den veröffentlichten Code des Routers.

05 · Die Entwickler-API

Ein anderer Weg, offen gesagt.

Code, der die Entwickler-API aufruft, sendet seine Anfrage über HTTPS an unser Gateway, das sie liest: um sie zu prüfen, Limits anzuwenden und Werkzeuge auszuführen. Es liest sie im Arbeitsspeicher und speichert oder protokolliert sie nie. Dann tut das Gateway, was Ihr Browser im Arbeitsbereich tut: Es prüft die Enklave mit Tinfoils SDK und versiegelt die Anfrage für sie.

Auf diesem Weg vertrauen Sie uns die Anfrage also an, solange das Gateway sie hält. Prüfen können Sie weiterhin die Enklave: Jede Antwort über Tinfoils Route trägt Header, die das vom Gateway geprüfte Attestierungspaket nennen, damit Sie es erneut prüfen können. Die Entwicklerdokumentation zeigt, wie.

Arbeitsbereich
Ihr BrowserPrüft, dann versiegelt
RelayKann es nicht lesen
EnklaveÖffnet es
Entwickler-API
Ihr ServerSendet über HTTPS
Unser GatewayLiest sie im Arbeitsspeicher, um sie zu prüfen; speichert oder protokolliert sie nie
EnklaveZuerst vom Gateway geprüft
Abbildung 5. Zwei Wege zu denselben Enklaven. Im Arbeitsbereich versiegelt Ihr Browser; über die API tut es unser Gateway, nachdem es die Anfrage im Arbeitsspeicher gelesen hat, um sie zu prüfen. Jede API-Antwort aus Tinfoils Enklaven nennt das vom Gateway geprüfte Attestierungspaket, das GET /v1/attestation?sha256= zurückgibt, damit Sie es erneut prüfen können.

06 · Diese Seite

Den Code prüfen, der prüft.

Alles oben läuft in Code, den diese Website an Ihren Browser sendet, also zählt auch dieser Code. Jeder Build schreibt ein Manifest: den SHA-256 jeder Datei, die die Website ausliefert, und den Commit, aus dem er gebaut wurde.

Eine Seite kann nicht ganz für sich selbst bürgen: Eine Prüfung, die in der Seite läuft, ist nur so ehrlich wie die Seite. Die stärkere Prüfung kommt ganz ohne uns aus: Bauen Sie den Commit selbst in der festgelegten Umgebung und vergleichen Sie die Manifeste.

Der BuildEin ManifestDer SHA-256 jeder Datei, die die Website ausliefert, und der Commit, aus dem sie stammt.
Mit der Website veröffentlicht
Ihr BrowserBildet den Hash dessen, was er geladen hatJede abweichende Datei wird genannt.
Oder auf Ihrem Rechner
JederBaut den Commit neuUnd vergleicht die beiden Manifeste.
Abbildung 6. Diese Seite prüfen bildet den Hash der Dateien, die Ihr Browser geladen hat, und vergleicht sie mit dem Manifest des Builds und seinem Commit. Den Commit in der festgelegten Umgebung neu zu bauen (npm run rebuild:site), sollte dasselbe Manifest ergeben, Byte für Byte; jeder kann das ausführen und vergleichen, ohne uns zu fragen.

07 · Grenzen

Was das nicht beweist.

  • Tinfoils Aussagen bleiben Tinfoils Aussagen. Dass es nicht auf seine Enklaven zugreifen kann, dass nichts darin Neustarts überdauert und dass seine GPUs im Confidential-Computing-Modus laufen, sagt Tinfoil. Ihr Browser prüft, dass die Hardware echt ist und den veröffentlichten Code ausführt.
  • Die Hardware gehört zu dem, dem Sie vertrauen. Der Schutz ist so gut wie die Prozessoren, ihre Firmware und die Schlüssel der Chiphersteller, und Hardware-Enklaven hatten schon veröffentlichte Schwachstellen.
  • Ein Abschnitt stützt sich auf veröffentlichten Code. Dass Ihre Anfrage vom Router zur Enklave des Modells ging, stützt sich auf den veröffentlichten Code des Routers. Ihr Browser kann die Enklave des Modells nur auf AMD SEV-SNP prüfen; auf Intel TDX wird sie als nicht geprüft vermerkt.
  • Das Relay sieht das Äußere. Ihr Konto, Ihre IP-Adresse, Größen, Zeiten und welches Modell geantwortet hat.
  • Veröffentlicht ist nicht dasselbe wie geprüft. Der Prüfer zeigt, welcher Code läuft, nicht, dass der Code fehlerfrei ist.
  • Noch keine unabhängige Prüfung. Bisher hat kein Auditor dieses Design oder seinen Code begutachtet.

Wer was sehen könnte, Beobachter für Beobachter, steht im Bedrohungsmodell.

08 · Weiterlesen

Jeden Teil bei der Arbeit sehen.