Skip to content

Air-gapped- und Offline-Deployment

Jedes Stylesheet, Skript, jede Schrift und jedes Icon wird aus Ihrer Installation ausgeliefert, über alle 14 Templates einschließlich Login und Registrierung. Live verifiziert bei 62 Anfragen, null externen.

Potato liefert jedes Stylesheet, Skript, jede Schrift und jedes Icon aus der eigenen Installation aus. Eine Maschine ohne Route ins Internet zeigt dieselbe Oberfläche wie eine mit schneller Verbindung. Live verifiziert auf einer gerenderten Annotationsseite: 62 Anfragen, null externe, einschließlich der Login- und Registrierungsseiten.

Das zählt für abgesicherte Forschungsumgebungen, klinische Umfelder, Feldeinsätze und jede Maschine hinter einem strengen Proxy. Es ist ebenso eine Datenschutz- wie eine Verfügbarkeitseigenschaft.

Aus der Installation ausgelieferte Assets

Fabric.js (das Bild-Canvas), jQuery, Bootstrap, Font Awesome, die Oberflächenschrift Outfit, three.js (Punktwolken), OpenSeadragon (Deep Zoom), d3, Peaks.js (Audio-Wellenformen), PDF.js sowie sämtliches CSS und JavaScript von Potato selbst.

Zwei davon sind notwendig statt kosmetisch. Ohne jQuery funktioniert die Span-Annotation überhaupt nicht. Ohne Fabric.js initialisiert sich das Bild-Canvas nie, sodass die Zeichenwerkzeuge erscheinen, aber nichts gezeichnet werden kann.

Die Schrift war ein Datenschutzleck

styles.css begann mit einem @import von Google Fonts. Das brach nicht nur den Offline-Betrieb, sondern sandte bei jedem Seitenaufruf die IP-Adresse und den User-Agent jeder annotierenden Person an einen Dritten — aus einem Werkzeug, das Menschen gerade deshalb selbst hosten, damit ihre Daten ihre Infrastruktur nicht verlassen.

Es hatte drei frühere Air-Gap-Audits überstanden, weil jede Prüfung <script src> und <link href> in Templates untersuchte und ein @import innerhalb eines Stylesheets keines von beidem ist. Die Schrift liegt nun unter der SIL Open Font License mit im Paket.

Ein Drittanbieter-Favicon auf der Login- und Registrierungsseite wurde aus demselben Grund entfernt: eine Anfrage an die Server eines anderen Unternehmens von genau der Seite, auf der Nutzende ihre Zugangsdaten eingeben.

Abdeckung über alle 14 Templates

Die Abdeckung umfasst nun Login, Registrierung, Passwort-Zurücksetzung und Fehlerseiten. Das sind die Seiten, die ein Air-Gap-Audit am seltensten prüft und auf denen es am ehesten darauf ankommt.

Mitgelieferte Dateien werden per Prüfsumme verifiziert

Alles Mitgelieferte wird gegen den Hash geprüft, den das jeweilige CDN veröffentlicht, und bei Abweichung abgelehnt. Mitgelieferte Dateien werden eingecheckt, ein unverifizierter Download ginge also an jede nutzende Person dieses Release.

Beide Allowlists der Prüfungen sind leer, und die Prüfungen schlagen fehl, wenn ein Eintrag auf nichts mehr passt, sodass eine Ausnahme nicht stillschweigend dauerhaft wird.

Was „air-gapped" genau heißt

Die Anwendung braucht kein Netz. Modelle sind eine einmalige Übertragung: potato download-models auf einer verbundenen Maschine ausführen und das Verzeichnis herüberkopieren. Jeder gehostete KI-Endpunkt, den Sie konfigurieren — etwa OpenAI, Anthropic oder Gemini — braucht offensichtlich einen Weg nach draußen.

Die zutreffende Formulierung lautet also „air-gapped, sobald die Gewichte auf der Maschine sind", nicht „air-gapped ohne jede Einrichtung".

Verwandt