Sicherheit

Deine Aufgaben bleiben deine

Done ist für eine Welt gebaut, in der KI-Agenten deine Aufgabenliste mitnutzen. Isolation, begrenzter Zugriff und menschliche Freigabe sind deshalb keine Zusatzfunktionen, sondern das Fundament.

Isolation der Konten

  • Jede Aufgabe, jedes Projekt und jedes Tag ist an deine Mitgliedschaft im Arbeitsbereich gebunden. Eine Abfrage kann immer nur Zeilen liefern, die dein Konto sehen darf. Es gibt keinen Weg, der über Konten hinweg liest.
  • Die interne Spalte für Ersteller und Zuordnung wird entfernt, bevor eine Zeile die Datenschicht verlässt. Sie ist also nie Teil der API-Oberfläche.
  • Geteilte Arbeitsbereiche und das Teilen einzelner Projekte musst du selbst einschalten: Ein Teammitglied sieht nur das, wozu du es einlädst, und sonst nichts.

Authentifizierung

  • Passwörter werden mit argon2id gehasht und nie im Klartext gespeichert. Die Authentifizierung gilt pro Konto, nicht über ein gemeinsames Geheimnis der Umgebung.
  • Schalte die Zwei-Faktor-Authentifizierung (TOTP) ein, und ein gestohlenes Passwort reicht nicht mehr zum Anmelden. Sie gilt auch beim Zurücksetzen des Passworts, sodass der Zugriff auf dein Postfach allein kein Konto übernehmen kann. Für ein verlorenes Gerät bekommst du zehn Wiederherstellungscodes zur einmaligen Verwendung.
  • Sitzungen gelten pro Konto und beruhen auf Cookies. Jede Sitzung gehört zu genau einem Nutzer, und jede Anfrage ist auf diesen Nutzer beschränkt.
  • Die ganze Website läuft unter einem Ursprung und wird über HTTPS mit einer strengen Content-Security-Policy ausgeliefert. Inline-Skripte laufen nur mit einer frischen Nonce pro Anfrage, ein eingeschleustes Skript wird also nicht ausgeführt.

Agentenzugriff & Tokens

  • Jedes Konto bekommt seinen eigenen MCP-Endpunkt und seine eigenen Tokens. Es gibt kein gemeinsames oder globales Token. Ein Token sieht immer nur die Daten seines eigenen Kontos.
  • In Pro und Teams beschränkst du ein Token auf Lesezugriff oder ein einzelnes Projekt. So bekommt ein Agent genau den Zugriff, den er braucht, und nicht mehr.
  • Verbinde dich über OAuth 2.1 (Done ist ein vollständiger Autorisierungsserver für seinen MCP-Endpunkt) oder über ein Bearer-Token. Wird ein Token neu erzeugt oder widerrufen, ist es sofort ungültig.
  • Wenn du dein Passwort änderst oder zurücksetzt, werden auch alle API-Zugänge widerrufen, also MCP-Tokens und verbundene Apps. So bleibt nach einem vermuteten Einbruch kein Agentenzugriff still bestehen.

Du gibst jedes Ergebnis frei

  • Eine Aufgabe mit Freigabepflicht kann sich nicht selbst schließen. Ein Agent schlägt vor größerer Arbeit einen Plan vor und vor dem Abschluss eine Zusammenfassung. Nichts gilt als erledigt, ohne dass du es unter „Wartet auf dich“ freigibst.
  • Nur ein Mensch kann festlegen, dass eine Aufgabe automatisch freigegeben wird. Ein Agent kann seine eigene Schranke nicht öffnen.
  • Jede Agentensitzung wird als Lauf protokolliert, mit ihren Budgets für Tool-Aufrufe und Zeit. So siehst du genau, was gelaufen ist, und kannst begrenzen, wie weit es geht.

Deine Daten

  • Die Daten liegen in Cloudflare D1 (SQLite am Netzwerkrand) und an Aufgaben angehängte Dateien in Cloudflare R2. Beides liefert ein einziger Worker aus, ohne separates Backend, das deine Daten herumreicht.
  • Wenn du eine Aufgabe löschst, wandert sie in den Papierkorb und lässt sich 30 Tage lang wiederherstellen. Sie wird nicht sofort endgültig gelöscht.
  • Exportiere deine Aufgaben jederzeit als CSV oder Markdown und lösche dein Konto (samt allen Daten) selbst in der App.

Slack & Verbindungen zu Dritten

  • Die Slack-App wird pro Nutzer verknüpft, und zwar erst, nachdem du das in Done angemeldet bestätigt hast. Eine Slack-Identität lässt sich ohne Zustimmung der Kontoinhaberin oder des Kontoinhabers nicht an ein Konto binden.
  • Jede eingehende Slack-Anfrage wird anhand der Signatur mit dem Signing Secret von Slack geprüft, und wiederholt gesendete (veraltete) Anfragen werden abgelehnt.
  • Google Kalender und abonnierte ICS-Kalender-Feeds werden beide nur lesend auf belegte Zeiten synchronisiert, nie auf Titel oder Einzelheiten von Terminen, und sind ganz freiwillig. Verbunden ist nur, was du verbindest.

Etwas gefunden?

Melde ein Sicherheitsproblem vertraulich an security [at] trydone.app, und wir melden uns bei dir. Bitte eröffne für ausnutzbare Schwachstellen kein öffentliches Issue.