rbin

rbin ist ein minimaler Pastebin-Dienst für verschlüsselten Texttausch. Der Inhalt wird serverseitig verschlüsselt — in der Datenbank liegt nur der Ciphertext, die Passphrase wird nie gespeichert.

Ablauf

sequenceDiagram
    participant Browser
    participant Server
    participant DB

    Browser->>Server: POST /api/paste (Plaintext im Body)
    Server->>Server: generateID() → 32-stellige alphanumerische ID
    Server->>Server: generatePassphrase()
    Server->>Server: passphraseToKey(passphrase, id) via HKDF-SHA256
    Server->>Server: encryptText() → AES-256-GCM
    Server->>DB: speichert Ciphertext
    Server-->>Browser: JSON { url: "/p/{id}/{passphrase}" }

    Browser->>Server: GET /p/{id}/{passphrase}
    Server->>DB: GetPaste(id) → Ciphertext
    Server->>Server: decryptText() → Plaintext
    Server-->>Browser: HTML-Seite mit Plaintext darin

Verschlüsselung

Jeder Paste wird serverseitig mit AES-256-GCM verschlüsselt. Der Schlüssel wird per HKDF-SHA256 aus der Passphrase und der Paste-ID abgeleitet. Die Passphrase wird nie in der Datenbank gespeichert — wer nur die DB hat, kann den Inhalt nicht entschlüsseln.

Passphrase statt Passwort

Nach dem Erstellen eines Pastes bekommt man eine zufällige dreigliedrige Passphrase wie wasser-maus-flugzeug. Diese steckt direkt in der URL — wer den Link hat, kann den Inhalt lesen. Kein Login, kein Account.

Editor

Der eingebaute Editor basiert auf CodeMirror mit Dracula-Theme und Syntax-Highlighting. Pastes lassen sich direkt im Browser bearbeiten — beim Speichern wird der Inhalt mit demselben Schlüssel neu verschlüsselt, die URL bleibt stabil.

Automatisches Ablaufen

Alle Pastes werden nach 7 Tagen automatisch gelöscht. Ein täglicher Cleanup-Job räumt abgelaufene Einträge aus der SQLite-Datenbank.

API

rbin lässt sich direkt per curl nutzen — kein Browser nötig:

# Text direkt übergeben
curl -X POST https://rbin.nullsession.de/api/paste \
  --data-binary "dein text hier"

# Aus einer Datei
curl -X POST https://rbin.nullsession.de/api/paste \
  --data-binary @datei.txt

Die Antwort enthält ID, Passphrase und die fertige URL zum Teilen.

Technik