Zum Inhalt

Mitmachen

Mitmachen

Danke für Ihr Interesse an Krywerk! Fehlerberichte, Verbesserungsvorschläge, Übersetzungen, Dokumentation und Code sind willkommen.

Bevor Sie anfangen

  • Sicherheitslücken nie als Issue, sondern wie in SECURITY.md beschrieben.
  • Für größere Änderungen zuerst ein Issue eröffnen und den Ansatz abstimmen.
  • Es gilt der Verhaltenskodex.

Entwicklungsumgebung

Voraussetzungen und Bauen: README.md. Danach einmalig:

pre-commit install          # prüft rustfmt, clippy, YAML/TOML/JSON und private Schlüssel vor jedem Commit
make test                   # Unit- und Integrationstests
make lint                   # rustfmt, clippy -D warnings, cargo deny

Ende-zu-Ende-Tests je Plattform: crates/README.md.

Regeln für Code

  • Keine geheimen Daten in Logs, Fehlermeldungen oder Tests: Passwörter, Schlüsseldateien, Schlüsselmaterial, Dateiinhalte und Klartext-Dateinamen nie ausgeben. Tests nur mit Wegwerfschlüsseln.
  • Keine eigene Kryptografie. Nur geprüfte Bibliotheken (RustCrypto, ring); Begründung neuer Algorithmen in docs/security.md.
  • Clean Room: Kein Code aus Boxcryptor, Cryptomator oder Cryptomator Hub übernehmen. Kompatibilität entsteht nur aus den Beschreibungen in SPEC.md und docs/ (siehe dort, wie sie entstanden sind).
  • Stil: cargo fmt (siehe rustfmt.toml), keine Clippy-Warnungen, Kommentare und Texte der Oberfläche auf Deutsch, Bezeichner im Code auf Englisch.
  • Jede Änderung mit Test; Fehlerkorrekturen mit einem Test, der den Fehler zeigt.
  • Sichtbare Änderungen in CHANGELOG.md unter „Unreleased“ eintragen.

Commits und Pull Requests

  • Kleine, in sich geschlossene Commits mit aussagekräftiger Nachricht (erste Zeile ≤ 72 Zeichen).
  • Developer Certificate of Origin (DCO): Mit git commit -s bestätigen Sie, dass Sie den Beitrag unter der Lizenz des Projekts einreichen dürfen (developercertificate.org). Jeder Commit braucht die Zeile Signed-off-by: Name <E-Mail>.
  • Beiträge stehen unter der Lizenz des jeweiligen Teils: GPL-3.0-or-later, Krywerk Server AGPL-3.0-or-later.
  • Die CI (Format, Clippy, Tests auf Linux/Windows/macOS, Lizenzen, Geheimnisse) muss grün sein.

Übersetzungen

Die Oberfläche ist zweisprachig (Deutsch, Englisch). Texte liegen in crates/kw-app/ui/i18n/ (App) und crates/kw-server/src/web/i18n/ (Web-Verwaltung); die Dokumentation in docs/ (Deutsch) und docs/en/ (Englisch).


Sicherheit

Krywerk schützt vertrauliche Daten. Wir nehmen Hinweise auf Schwachstellen ernst und danken allen, die sie verantwortungsvoll melden.

Schwachstelle melden

Bitte keine öffentlichen Issues, Diskussionen oder Pull Requests für Sicherheitslücken.

  1. Bevorzugt: über GitHub „Report a vulnerability“ im Reiter Security dieses Repositorys (private Meldung, nur für die Betreuer sichtbar).
  2. Alternativ per E-Mail an security@krywerk.eu.

Hilfreich sind: betroffene Komponente und Version (krywerk-server --version, „Über Krywerk“), Betriebssystem, Schritte zum Nachvollziehen, erwartetes und tatsächliches Verhalten und – falls vorhanden – ein Proof of Concept. Bitte keine echten Daten, Passwörter oder Schlüssel mitschicken.

Was wir zusagen

  • Eingangsbestätigung innerhalb von 3 Werktagen.
  • Erste Einschätzung (Schweregrad, betroffene Versionen) innerhalb von 10 Werktagen.
  • Behebung kritischer Lücken so schnell wie möglich, Ziel 30 Tage; wir halten Sie auf dem Laufenden.
  • Veröffentlichung koordiniert: Advisory mit CVE (falls zutreffend) und Nennung der meldenden Person, sofern gewünscht. Bitte geben Sie uns bis zur Veröffentlichung einer Korrektur, höchstens 90 Tage, Zeit, bevor Sie Details veröffentlichen.

Wir verfolgen keine Personen, die in gutem Glauben nach dieser Richtlinie handeln: keine Daten Dritter abrufen oder verändern, keine Dienste stören, nur so weit testen, wie zum Nachweis nötig.

Unterstützte Versionen

Version Sicherheitskorrekturen
neueste 0.x ja
ältere nein – bitte aktualisieren

Geltungsbereich

Desktop-App, Kommandozeilenprogramme, Bibliotheken und Krywerk Server in diesem Repository. Nicht dazu gehören Schwachstellen in WinFsp, FUSE-T, libfuse, dem Anmeldedienst (Keycloak, Entra ID) oder im Cryptomator Hub – bitte direkt beim jeweiligen Projekt melden.

Sicherheitsmodell, Algorithmen und bekannte Grenzen: docs/security.md.