Sicherheit

Zuletzt aktualisiert am 18. September 2026

Kurz gesagt

Keine Siegel, keine vagen Beteuerungen. Das ist, was da ist, und wie es funktioniert.

Dein Passwort

Wir speichern dein Passwort nicht. In der Datenbank liegt ein Hash, erzeugt mit argon2id, mit den von OWASP empfohlenen Einstellungen: 19 MiB Speicher und zwei Durchläufe. Argon2id ist absichtlich langsam und speicherhungrig, damit jemand, der die Datenbank mitgehen ließe, sich nicht durchrechnen könnte.

In der Praxis heißt das: Wir können dein Passwort nicht lesen, es dir nicht zuschicken und es niemandem geben. Vergessen? Wir setzen ein neues; das alte können wir nicht nachschlagen.

Die Prüfung auf geleakte Passwörter

Wenn du ein Passwort wählst, prüfen wir, ob es in einem bekannten Leak auftaucht. Das geschieht, ohne dein Passwort irgendwohin zu senden.

Und zwar so: Dein Passwort wird lokal gehäsht, und nur die ersten fünf Zeichen dieses Hashes gehen an den Dienst, der Leaks führt. Er schickt jeden Hash zurück, der mit diesen fünf Zeichen beginnt, Hunderte davon, und der Abgleich findet auf unserem Server statt. Die Gegenseite erfährt also nie, um welches Passwort es ging, und nicht einmal, ob es einen Treffer gab.

Ist dieser Dienst ausgefallen, läuft deine Registrierung trotzdem durch. Die Störung eines anderen darf dich nicht daran hindern, ein Konto anzulegen.

Unterwegs

Der gesamte Verkehr zwischen App und Server läuft über TLS. Es gibt keine unverschlüsselte Variante, auf die zurückgefallen werden könnte; eine Anfrage über einfaches HTTP wird auf die verschlüsselte umgeleitet, bevor irgendein Inhalt über die Leitung geht.

Anmelden und angemeldet bleiben

Du bleibst mit zwei Arten von Token angemeldet: einem kurzlebigen für Anfragen und einem langlebigen, um den ersten zu erneuern. Der zweite wird bei jeder Verwendung ersetzt. Wird ein verbrauchter Token erneut vorgelegt, was nicht aus Versehen passieren kann, behandeln wir das als Diebstahl und beenden sofort jede Sitzung dieses Kontos.

Bei jeder Anfrage schlagen wir das Konto auch erneut in der Datenbank nach. Das ist der Grund, warum das Löschen eines Kontos sofort wirkt und nicht erst, wenn der letzte Token irgendwann abläuft.

Wer worauf zugreifen kann

Die Datenbank trennt die Nutzer. Jedes Bier, jede Charge und jede Gruppe hängt an genau einem Konto, und die App fragt nie etwas ohne dieses Konto ab. Eine geteilte Sammlung oder ein Tausch ist eine ausdrückliche Ausnahme, die du selbst einschaltest, und sie gibt nur Zugriff auf das, was du teilst.

Der Katalog ist das Einzige, was alle sehen, und das ist der Sinn: Er enthält Tatsachen über Biere, nicht über Menschen.

Missbrauch verhindern

Anmelden, Registrieren, Passwort-Zurücksetzen und Mailversand haben alle Grenzen pro Adresse und pro IP. Sie sind da, damit niemand Passwörter errät oder ein Postfach flutet. Eine abgelehnte Anfrage sagt nicht, welche Grenze erreicht wurde, denn das würde für sich schon etwas verraten.

Darüber hinaus verrät keine Antwort des Servers, ob zu einer E-Mail-Adresse ein Konto gehört. Eine Registrierung mit einer vorhandenen Adresse liefert exakt dieselbe Antwort wie mit einer neuen. Der Unterschied zeigt sich nur im Postfach der Person, die es wissen darf.

Sicherungen

Jede Nacht wird die Datenbank exportiert und der Export sofort zurückgelesen, um zu prüfen, dass er brauchbar ist. Eine Sicherung, von der niemand weiß, ob sie funktioniert, ist keine Sicherung. Wir behalten vierzehn tägliche und zwölf monatliche Kopien, und das Wiederherstellungsverfahren wurde einmal wirklich durchgeführt, gegen eine getrennte Datenbank.

Wo das liegt

Server und Mail liegen in der Europäischen Union und fallen unter die DSGVO. Keine Daten gehen irgendwohin darüber hinaus.

Öffentliche Listen sind öffentlich

Eine Liste mit einem öffentlichen Code soll gefunden werden. Sie hat eine eigene Adresse, steht im Verzeichnis und ist von Suchmaschinen indexierbar. Es gibt keinen zweiten Schalter, der eine öffentliche Liste ungelistet macht: Veröffentlichen ist die Entscheidung, und den Code in der App zu entfernen ist der Weg zurück.

Das ist eine Änderung. Die Teilen-Seite trug noindex, und der Code stand in dem Teil der URL, der nie einen Server erreicht. Beides war da, um eine öffentliche Seite schwer auffindbar zu machen, und ein Verzeichnis ist das Gegenteil davon.

Zwei Dinge wurden behalten, nachdem der Code in die Adresse gewandert ist, weil sie den Link schützen, statt die Seite zu verstecken:

Privates Teilen berührt das alles nicht. Ein Einladungscode ist kein öffentlicher Code: diese Listen stehen nicht im Verzeichnis, werden nicht indexiert und sind nur für die Leute erreichbar, die du eingeladen hast.

Was eine öffentliche Seite zeigt

Was die Eigentümerin oder der Eigentümer geteilt hat: den Namen der Liste, den Anzeigenamen und die Biere an den gewählten Orten. Nicht die E-Mail-Adresse, nicht das Konto, und nichts, was nicht in dieser Liste steht.

Gehört etwas auf einer öffentlichen Seite nicht dorthin, gibt es auf der Seite selbst einen Meldelink. Er braucht kein Konto und speichert nichts über dich.

Was hier nicht behauptet wird

Fairness gehört dazu. Das sind die Dinge, die der Abschnitt oben nicht behauptet, damit du sie nicht annehmen musst:

Etwas gefunden?

Wenn du eine Lücke entdeckst, schreib an cheers@back.beer. Sag es uns, bevor du es anderen sagst, gib uns die Gelegenheit zu reparieren, und zieh nicht die Daten anderer Leute ab, um deinen Punkt zu machen. Wir antworten, wir nehmen es ernst, und wir sagen, was wir damit gemacht haben.

Diese Seite wurde auf Niederländisch verfasst. Diese deutsche Fassung ist eine Übersetzung zur Information. Weichen beide voneinander ab, gilt der niederländische Text.