Hilfe

Schlüssel und Sicherheit

Wie Samy mit deinem Schlüssel umgeht und was du selbst beachten solltest.

Als Markdown öffnen

Der Schlüssel ist das Einzige, was dein Tool von allen anderen unterscheidet. Wer ihn hat, kann in deinem Kanal Nachrichten schicken. Diese Seite sagt, wie Samy ihn schützt und was du selbst tun solltest.

Der Schlüssel

Formatsamy_ und dahinter 32 Buchstaben und Ziffern
Gilt fürgenau ein Packlet
Sichtbareinmal, direkt nach dem Erzeugen. Danach zeigt die App ihn nur noch maskiert.
Gespeichert bei Samynur als SHA-256-Hash. Den Klartext kennt Samy danach nicht mehr.

Mit dem Schlüssel lässt sich nur schicken: Nachrichten und die Adresse der Seite einer App. Nachrichten lesen, andere Packlets sehen oder dein Konto ändern kann man damit nicht.

Was vom Schlüssel abhängt

Aus dem Schlüssel entsteht auch das Geheimnis, mit dem Samy zwei Dinge unterschreibt:

Dein Tool braucht dafür nichts Zusätzliches. Es bildet das Geheimnis selbst aus SAMY_KEY.

Was du beachten solltest

  • Umgebungsvariable statt Code. Leg den Schlüssel in SAMY_KEY ab, nicht im Quelltext und nicht im Repository. Eine .env-Datei gehört in die .gitignore.
  • Ein Packlet pro Tool. So tauschst du einen einzelnen Schlüssel, ohne dass andere Tools ausfallen, und siehst im Protokoll, welches Tool was geschickt hat.
  • Nie in eine Webseite. Bei einer App bleibt der Schlüssel auf deinem Server. Was im HTML oder JavaScript steht, kann jeder lesen.
  • Signatur immer prüfen. Deine Webhook-Adresse ist öffentlich. Führ nichts aus, bevor die Signatur stimmt.
  • Wiederholungen erkennen. Darf etwas nicht doppelt passieren, prüf nach der Signatur auch timestamp und event_id: Schutz vor Wiederholung.
  • Eingaben bleiben Eingaben. Texte aus dem Chat und aus Eingabefeldern kommen von außen. Reich sie nicht ungeprüft an eine Shell, eine Datenbankabfrage oder als Anweisung an eine KI mit weitreichenden Rechten weiter.
  • Session-Token ganz prüfen. Signatur, Ablauf und aud, bevor deine Seite private Daten zeigt.
  • Einbetten regeln. Fremde iframes in deiner Seite mit sandbox, deine Seite selbst mit Content-Security-Policy: frame-ancestors 'none': iframes und fremde Inhalte.

Wenn ein Schlüssel verloren geht

Öffne die Einstellungen des Packlets und erzeuge einen neuen Schlüssel. Das passiert dann:

  • Der alte Schlüssel ist sofort ungültig. Aufrufe damit bekommen 401 invalid_key.
  • Die App zeigt den neuen Schlüssel einmal an. Trag ihn in deinem Tool ein.
  • Webhook-Signaturen und Session-Tokens gelten ab jetzt mit dem neuen Schlüssel.
  • Kanal, Nachrichten und Einstellungen bleiben, wie sie sind.

Hast du den Schlüssel nur vergessen, geht es genauso. Anzeigen lässt sich der alte nicht mehr.

Wenn du ein Packlet entfernst

Der Schlüssel ist sofort ungültig, und der Kanal mit allen Nachrichten wird gelöscht. Das lässt sich nicht rückgängig machen.

Datenschutz

Server und Datenbank stehen in der EU. Dein Konto löschst du in der App, zusammen mit allen Packlets und Nachrichten.