Herkos

Sicherheitsrichtlinie

Herkos verarbeitet private Schlüssel und verschlüsselte Nachrichten. Deshalb nehmen wir Sicherheitsmeldungen ernst und erfahren von einem Problem lieber früh als spät.

Eine Schwachstelle melden

Bitte eröffnen Sie für Sicherheitsprobleme kein öffentliches Issue.

Melden Sie sie vertraulich per E-Mail an security@herkos.email.

Hilfreich sind: worin das Problem besteht, wie es sich reproduzieren lässt, welche Plattform und Version Sie getestet haben und was ein Angreifer damit erreichen könnte. Ein Proof of Concept hilft sehr.

Fügen Sie einer Meldung niemals Ihren eigenen nsec, geheimen Schlüssel oder Bunker-Geheimnis bei.

Wir bemühen uns, Meldungen innerhalb weniger Tage zu bestätigen. Da Herkos ein kleines Projekt ist, geben Sie uns bitte angemessen Zeit für eine Korrektur, bevor Sie etwas öffentlich machen. Gern nennen wir Sie im Sicherheitshinweis, sofern Sie es nicht anders wünschen.

Was abgedeckt ist

Die Herkos-Anwendung selbst: Umgang mit und Speicherung von Schlüsseln, Ver- und Entschlüsselung von Nachrichten (einschließlich der NIP-59-Absenderprüfungen und der Bcc-Isolierung in local_packages/nostr_mail), die App-Sperre, die Kommunikation mit Relays und Bridges, der Umgang mit Anhängen sowie die Build- und Release-Pipeline. Für Herkos Drive außerdem sein Protokollpaket (packages/herkos_drive_protocol) und die Seite, die seine Links öffnet (herkos.app/f/); siehe seinen eigenen Abschnitt weiter unten.

Was nicht abgedeckt ist

Bekannte Einschränkungen, offen gesagt

Das sind bewusste Kompromisse im Design, keine Schwachstellen. Wir schreiben sie lieber auf, als dass jemand sie auf die harte Tour entdeckt:

Herkos Local Relay: was es schützt und was nicht

Herkos Local Relay bewahrt die Ereignisse Ihrer Apps auf Ihrem Gerät auf, auch die privaten (Entwürfe, private Listen, die Umschläge, die Sie erhalten). Hier steht, was sie schützt und wo die Grenze liegt, Plattform für Plattform. Sicherheitsprobleme des Relays melden Sie genauso wie alle anderen (siehe oben).

Die gesamte Datenbank ist verschlüsselt, einschließlich ihres Journals (SQLite3 Multiple Ciphers, AEGIS-256). Der Schlüssel besteht aus 32 zufälligen Bytes, die auf dem Gerät erzeugt und im sicheren Speicher des Betriebssystems abgelegt werden: im Keystore unter Android, mit DPAPI unter Windows, im Schlüsselbund (libsecret) unter Linux. Er hängt an keinem Passwort von Ihnen, weil das Relay von selbst starten muss. Ohne den Schlüssel startet das Relay nicht und sagt das: Es öffnet oder erstellt nie eine unverschlüsselte Datenbank, und es löscht nie eine, die es nicht öffnen kann.

Wenn… Android Windows Linux
jemand die Datenbankdatei kopiert (eine Sicherung, einen synchronisierten Ordner, ein Festplattenabbild) Geschützt Geschützt Geschützt
das Gerät oder die Festplatte im ausgeschalteten Zustand gestohlen wird Geschützt: Der Schlüssel liegt im Keystore Geschützt, außer jemand kennt Ihr Windows-Anmeldepasswort: DPAPI schützt den Schlüssel damit Geschützt, außer jemand kennt das Passwort Ihres Schlüsselbunds (fast immer das Ihrer Sitzung)
ein anderes Benutzerkonto auf demselben Gerät Geschützt Geschützt: DPAPI gilt pro Benutzer Geschützt: Der Schlüsselbund gilt pro Benutzer
eine andere App oder ein anderes Programm, das unter Ihrem Benutzer läuft Geschützt: Android hält jede App getrennt, und der Keystore gibt den Schlüssel nur dem Relay Nein: DPAPI verschlüsselt pro Benutzer, nicht pro App; ein Programm, das als Sie läuft, kann den Schlüssel genauso anfordern wie das Relay Nein: Der Schlüsselbund Ihrer Sitzung trennt die Apps nicht voneinander
ein gerootetes Telefon oder ein Werkzeug, das Code als die App ausführt Nein — —
jemand das entsperrte Gerät in der Hand hält Nur die PIN oder der Fingerabdruck des Relays, falls Sie sie einrichten Ebenso Ebenso
jemand den Arbeitsspeicher des Relays liest, während es läuft Nein Nein Nein

Auf dem Desktop ist die Grenze von DPAPI und des Schlüsselbunds die jedes Programms: Sie schützen vor anderen Benutzern und vor jemandem, der die Festplatte mitnimmt, nicht vor einem bösartigen Programm, das bereits als Sie läuft. Wenn Sie dieser Fall beunruhigt, schützt Sie die Verschlüsselung der Systemfestplatte (BitLocker, LUKS) und dass Sie keine Programme ausführen, denen Sie nicht vertrauen. Unter einem Linux ohne Schlüsselbund (ohne Secret Service) startet das Relay nicht und erklärt, warum: Es speichert den Schlüssel nie im Klartext.

Wer hineinkommt, auf dem Gerät selbst. Das Relay lauscht nur auf 127.0.0.1, und jede App auf dem Gerät oder eine Webseite im Browser kann diese Adresse erreichen. Deshalb:

Was es hier nicht schützt:

Das lokale Netzwerk, wenn Sie es einschalten (standardmäßig ist es aus):

Was es hier nicht schützt: Wer im selben Netzwerk ist, sieht, dass das Gerät einen offenen Port hat und wie viel Verkehr darüber läuft, wenn auch nicht, was; und wenn das Gerät eine öffentliche Adresse hat (kein Router dazwischen), ist dieser Port aus dem Internet sichtbar, auch wenn er weiterhin einen Schlüssel auf Ihrer Liste verlangt.

Kopien. Die verschlüsselte Kopie hat ein Passwort (scrypt und XChaCha20-Poly1305): Ohne es kann niemand sie öffnen, auch wir nicht. Der JSONL-Export ist nicht verschlüsselt und enthält Ihre privaten Ereignisse im Klartext; die App weist Sie darauf hin.

Die Sperre (eine PIN, dazu Fingerabdruck oder Windows Hello) wird beim Öffnen der App, nach 30 Sekunden Abwesenheit und zum Bestätigen einer Kopplung abgefragt. Sie ist eine Komfortbarriere, wie in Mail: Sie verschlüsselt nichts. Unter Android gibt es mit eingerichteter PIN keine Bildschirmfotos und keine Vorschau unter den zuletzt verwendeten Apps, und seit Android 12 kann sich kein Fenster einer anderen App über das des Relays legen, während Sie es benutzen.

Herkos Drive: was es schützt und was nicht

Herkos Drive speichert Ihre Dateien auf Blossom-Servern und die Liste Ihrer Dateien und Ordner auf Nostr-Relays, beides auf Ihrem Gerät verschlüsselt. Das ist es, was sie schützt, und wo die Grenzen liegen. Alle Einzelheiten stehen in spec-drive.md und im Bedrohungsmodell amenazas-drive.md, in packages/herkos_drive_protocol/; was jedes Relay und jeder Server sieht, steht in der Datenschutzerklärung. Melden Sie Sicherheitsprobleme von Drive auf demselben Weg wie alle anderen (siehe oben).

Was Relays und Server nicht können:

Was es nicht schützt:

Wie es geprüft wird. Zwei interne Prüfungen anhand des Bedrohungsmodells (2. November 2026) und ihre Korrekturen; Tests dessen, was jedes Ereignis und jeder Block zeigt; Fuzzing jedes Lesers für das, was von außen kommt (Ereignisse, Siegel, Manifeste, Links, Sicherungen). Noch kein externes Audit: Eines ist vor der öffentlichen Beta geplant, und sein Bericht wird vollständig veröffentlicht. Drive befindet sich noch in Entwicklung.

Unterstützte Versionen

Sicherheitskorrekturen fließen in die jeweils neueste veröffentlichte Version ein. Angesichts der Größe des Projekts werden ältere Versionen nicht gepflegt — bitte aktualisieren Sie, bevor Sie etwas melden.