Sicherheit
Eine Zusammenfassung für IT- und Sicherheitsteams, die Snowkit für den Einsatz bei der Arbeit prüfen.
Wie Snowkit gebaut ist
Die kurze Antwort für eine Sicherheitsprüfung, mit den Details einen Klick entfernt.
Architektur
- Snowkit ist eine statische Website. Jedes Tool läuft als JavaScript und WebAssembly im Browser des Besuchers.
- In ein Tool eingegebene Dateien und Texte werden auf dem Gerät des Besuchers im Speicher verarbeitet und nie an Snowkit übertragen.
- Die Website wird nur über HTTPS mit HSTS ausgeliefert.
Netzwerkzugriff
Jede Tool-Seite hat ihre eigene Content Security Policy. Tool-Seiten dürfen nur Snowkits eigene Skripte und Stile laden, und fast allen ist jede Netzwerkverbindung untersagt.
Einige Tools dienen dazu, etwas im Internet nachzuschlagen, und jedes sagt das auf seiner Seite. Die Ablaufprüfung liest öffentliche RDAP- und Certificate-Transparency-Einträge. Der DNS-Abruf fragt die öffentlichen Resolver von Cloudflare und Google. Der Zitiergenerator schlägt eine DOI oder ISBN bei Crossref und Open Library nach. Die HTTP-Header-Prüfung, der Vorab-Scan und der Live-Check in Snowkit Launch rufen die eingetippte öffentliche Adresse über den eigenen Server von Snowkit ab. Der MCP-Tester verbindet sich mit der eingegebenen Serveradresse. Gesendet werden nur die eingetippte Domain, Adresse oder Kennung, nie deine Dateien.
Das Öffnen von Dateien aus und das Speichern von Ergebnissen in Dropbox, Google Drive oder OneDrive ist auf den Seiten möglich, die es anbieten. Das eigene Auswahlskript des Dienstes wird nur geladen, wenn jemand ihn wählt, und nur diese Seiten erlauben die Adressen des Dienstes in ihrer Content Security Policy. Dateien gehen direkt zwischen Browser und Dienst, nie über Snowkit, und die kurzlebige Berechtigung, die der Dienst erteilt, wird nur in der geöffneten Seite gehalten.
Notion oder Canva akzeptieren Dateien nur von einem Server, daher läuft das Senden einer Datei dorthin unterwegs über den Server von Snowkit, über eine verschlüsselte Verbindung. Sie wird direkt weitergereicht, nie auf die Festplatte geschrieben, protokolliert oder aufbewahrt. Die Berechtigung, die dieser Dienst erteilt, wird nur in der geöffneten Seite gehalten und reist mit dieser einen Anfrage.
Was wir nie nutzen
- Keine Analyse-Tags oder Werbenetzwerke. Die einzigen Skripte Dritter sind die unter „Netzwerkzugriff“ beschriebenen Dateiauswahlen, die geladen werden, wenn jemand diesen Dienst wählt.
- Keine Tracking- oder Werbe-Cookies. Besucher, die sich nicht anmelden, erhalten gar keine Cookies; deine Designwahl wird im lokalen Speicher deines eigenen Browsers abgelegt.
- Keine Passwörter. Konten sind optional und nutzen Passkeys oder die Anmeldung per GitHub oder Google, sodass Snowkit nie ein Passwort sieht oder speichert.
Weitere Header
Seiten können nicht von anderen Websites eingerahmt werden, MIME-Sniffing ist deaktiviert, Referrer werden beim Verlassen der Website gekürzt, und Kamera-, Mikrofon-, Standort- und Zahlungsfunktionen sind deaktiviert, außer ein Tool braucht sie.
Content-Security-Policy- Nur Snowkits eigene Skripte und Stile werden geladen. Plugins und Einrahmen sind blockiert.
Strict-Transport-Security- Nur HTTPS, ein Jahr lang gemerkt, Subdomains eingeschlossen.
X-Frame-Options- DENY. Andere Websites können eine Snowkit-Seite nicht einrahmen.
X-Content-Type-Options- nosniff. Dateien werden immer nur als der Typ gelesen, als der sie ausgeliefert werden.
Referrer-Policy- strict-origin-when-cross-origin. Andere Websites sehen nur snowkit.io, nie die Seite, auf der du warst.
Permissions-Policy- Kamera, Mikrofon, Standort und Zahlung sind aus, außer ein Tool braucht sie.
Cross-Origin-Opener-Policy- same-origin. Von anderen Websites geöffnete Fenster können nicht in eine Snowkit-Seite greifen.
Optionale Konten
Beim Anmelden werden ein Name und eine E-Mail-Adresse gespeichert, wenn die Anmeldemethode sie liefert, die Konto-ID des Anmeldeanbieters und die Tools, die du als Favoriten speicherst. Sitzungen nutzen ein zufälliges Token in einem sicheren, HttpOnly-Cookie der ersten Partei, mit einem zweiten Cookie, das nur deinen Anfangsbuchstaben für die Seitenkopfzeile enthält, und einem dritten, das nur eine Bildversion enthält, wenn du ein Profilbild hinzufügst, und nur ein Hash des Tokens wird bei uns gespeichert. In Tools genutzte Dateien und Texte werden nie mit einem Konto verknüpft. Du kannst dein Konto und alles darin jederzeit auf der Kontoseite löschen.
Passkeys
Passkeys nutzen WebAuthn mit bevorzugter Nutzerverifizierung. Der Server stellt eine einmalige Challenge aus, die nach fünf Minuten abläuft, prüft Origin, Relying Party und Signaturzähler und speichert nur den öffentlichen Schlüssel des Credentials. E-Mail-Anmeldelinks, wo angeboten, funktionieren einmal, laufen nach 15 Minuten ab und werden nur als Hash gespeichert.
Private Synchronisierung
Angemeldete Besucher können wählen, ihre Bibliothek, „Dein Snowkit“, gespeicherte Schritte und favorisierte Tools zwischen ihren Geräten zu synchronisieren. Die Synchronisierung ist Ende-zu-Ende-verschlüsselt: Jeder Eintrag wird vor dem Upload im Browser verschlüsselt, und der Server hält nur Chiffretext.
- Verschlüsselung
- AES-GCM mit 256-Bit-Schlüsseln
- Nonce
- Ein frischer 96-Bit-Nonce bei jedem Speichern
- Tresorschlüssel
- 256 Zufallsbits, im Browser erzeugt
- Schlüsselumhüllung
- Passkey-PRF mit HKDF-SHA-256 oder ein 128-Bit-Wiederherstellungsschlüssel mit PBKDF2-SHA-256 bei 600.000 Iterationen
- Bibliotheksdateien
- Ein eigener Schlüssel für jede Version, in 8-MiB-Blöcken versiegelt
- Der Server hält
- Chiffretext, umhüllte Schlüssel, die Konto-ID, Zeitstempel und Größen
- Beim Einschalten der Synchronisierung wird im Browser ein zufälliger 256-Bit-Tresorschlüssel erzeugt. Einträge werden mit AES-GCM unter einem 256-Bit-Schlüssel und einem frischen 96-Bit-Nonce bei jedem Speichern verschlüsselt, mit Abschnittsname und Version als zusätzlich authentifizierte Daten gebunden.
- Der Tresorschlüssel verlässt das Gerät nie unverschlüsselt. Er wird mit AES-GCM von jedem Passkey umhüllt, der die WebAuthn-PRF-Erweiterung unterstützt, mit einem aus der PRF-Ausgabe per HKDF-SHA-256 abgeleiteten Schlüssel, und von einem Wiederherstellungsschlüssel aus 128 Zufallsbits, der der Person einmal angezeigt wird, mit PBKDF2-SHA-256 und 600.000 Iterationen.
- Der Server speichert die umhüllten Schlüssel, die verschlüsselten Einträge, die Konto-ID, Zeitstempel und Größen. Er hält keinen Schlüssel, der sie entschlüsseln könnte, daher gibt es keine Wiederherstellung durch Snowkit: Wenn alle Passkeys und der Wiederherstellungsschlüssel verloren gehen, kann niemand die synchronisierten Daten öffnen.
- Bibliotheksdateien werden nur synchronisiert, wenn die Synchronisierung an ist. Jede Dateiversion wird mit ihrem eigenen zufälligen 256-Bit-Schlüssel in 8-MiB-Blöcken versiegelt, jeder Block an seine Objekt-ID, Position und Anzahl gebunden und unter einer zufälligen Objekt-ID gespeichert. Die Schlüssel pro Datei, Namen, Typen und Projekte liegen nur im verschlüsselten Bibliotheksindex, sodass der Server nur undurchsichtige IDs, Größen und Zeitstempel sieht.
- Dateien, die nur in einem Tool geöffnet werden, werden nie synchronisiert. Jedes Konto hat ein Speicherlimit; ist es erreicht, pausieren Uploads, und nichts wird gelöscht. Das Ausschalten der Synchronisierung löscht die verschlüsselte Kopie vom Server.
Ein Anzeigename und ein optionales Profilbild sind Kontoangaben, keine Synchronisierungsdaten. Das Bild wird im Browser verkleinert und unverschlüsselt mit dem Konto gespeichert, nur an dieses angemeldete Konto mit privatem Caching ausgeliefert und mit dem Konto gelöscht.
Was wir sehen
Wie jede Website verarbeitet unser Host übliche Anfragedaten wie IP-Adressen, um Seiten auszuliefern. Wir zählen Seitenaufrufe nach Pfad, ohne Cookies und ohne IP-Adressen zu speichern. Gap Radar zählt Suchen ohne Ergebnis, unbeantwortete Kitsune-Fragen, fehlende Seiten und kurze Fehlercodes nur als Tagessummen, ohne Cookie, Kennung oder IP-Adresse; Suchtext wird auf dem Gerät bereinigt, und seltener Text, der nicht innerhalb von 28 Tagen 5-mal vorkam, wird nie angezeigt und gelöscht. Nachrichten über das Feedback-Formular erreichen das Snowkit-Team per E-Mail. Einzelheiten siehe die Datenschutzerklärung.
Eine Sicherheitslücke melden
Schreib an [email protected] mit den Details und Schritten zum Nachstellen. Wir bestätigen deine Meldung und halten dich auf dem Laufenden, während wir sie beheben. Unsere security.txt nennt denselben Kontakt.
Sicherheitskontakt: [email protected] · security.txt