Missbrauchsschutz & Code-Sicherheit

In der Vorschau

Der Code ist ein Geheimnis. Wir behandeln ihn auch so.

Einrichtung in:
Cursor

Ein Einmalcode ist nur so sicher wie seine Generierung, Speicherung und Ratenbegrenzung. Bird Verify generiert Codes aus einer kryptografischen Quelle, speichert nur einen Hash, vergleicht in konstanter Zeit und begrenzt sowohl Sendungen als auch Rateversuche – sodass ein geleaktes Log oder eine Brute-Force-Schleife einem Angreifer nichts bringt. Fraud Scoring baut als Nächstes darauf auf.

verify.ts
200 · pending
import { BirdClient } from "@messagebird/sdk";

const bird = new BirdClient({ apiKey: process.env.BIRD_API_KEY! });

// Send the code, then check it by recipient.
await bird.verify.verifications.create({
  to: { phone_number: "+15551234567" },
}).safe();

const { data } = await bird.verify.verifications.check({
  to:   { phone_number: "+15551234567" },
  code: userInput,
}).safe();

Sicherheit, die standardmäßig aktiv ist – kein Add-on.

Jede Verifizierung über die Bird Verify API bietet dieselben Schutzmaßnahmen: Der Code wird serverseitig generiert, nie zurückgegeben und nur als Hash gespeichert; Prüfungen laufen in konstanter Zeit und gegen ein begrenztes Versuchsbudget; Sendungen sind pro Empfänger und pro Workspace begrenzt. Sie müssen nichts aktivieren oder konfigurieren – so funktioniert die API, egal ob Sie sie für Zwei-Faktor-Login oder passwortlose Anmeldung nutzen.

Fünf Schutzmaßnahmen bei jeder Verifizierung.

Kein Setup-Schritt, kein Add-on.

  1. 01

    Kryptografische Generierung.

    Codes werden aus einer kryptografischen Zufallsquelle erzeugt, gleichmäßig über den Code-Raum verteilt – kein vorhersagbarer Zähler oder Zeitstempel.

  2. 02

    Gehasht gespeichert, niemals im Klartext ausgegeben.

    Nur ein HMAC-SHA256 jedes Codes wird gespeichert; der Klartext wird nie von der API zurückgegeben und nie in Ihren Stack oder unsere Logs geschrieben.

  3. 03

    Constant-Time-Vergleich.

    Übermittelte Codes werden in konstanter Zeit verglichen, sodass ein Angreifer aus der Dauer einer Prüfung nichts ableiten kann.

  4. 04

    Sperrung nach Fehlversuchen.

    Jede Sitzung hat eine begrenzte Anzahl von Prüfungen (standardmäßig 5). Sind sie aufgebraucht, schlägt die Sitzung fehl – Raten kann nicht endlos weitergehen.

  5. 05

    Sendelimits und Kontingente.

    Ein Sendelimit pro Empfänger, eine Wartezeit zwischen erneutem Senden und ein tägliches Kontingent pro Workspace begrenzen die Kosten und die Angriffsfläche – jeweils mit einem 429 und Retry-After.

Rateversuche sind erschöpft, bevor Ihre Nutzer es sind.

Ein falscher Code wird als Ergebnis mit den verbleibenden Versuchen zurückgegeben, und die Sitzung schlägt fehl, sobald das Budget aufgebraucht ist – eine Brute-Force-Schleife läuft gegen eine Wand statt durch eine offene Tür.

lockout.ts
200
const { data } = await bird.verify.verifications.check({
  to:   { phone_number: "+15551234567" },
  code: guess,
}).safe();

// wrong code, attempts left → { result: "invalid", attempts_remaining: 2 }
// budget spent, session done → { result: "failed", attempts_remaining: null }
Demnächst

Demnächst: Betrugserkennung und SMS-Pumping-Schutz.

Die Sendehistorie, die Verify heute pro Sendung erfasst, ist die Grundlage für eine Betrugserkennungsschicht, die wir gerade entwickeln. Sie nutzt dieselben Create- und Check-Aufrufe – die spätere Einführung ist eine Konfigurationsänderung, keine Neuintegration.

Risikosignale beim Erstellen. Übergeben Sie Geräte-, IP- und Anfrageinformationen bei einer Verifizierung, und Hochrisiko-Versuche werden mit dem Ergebnis „blockiert

SMS-Pumping- und AIT-Schutz. Sendelimits pro Land und pro Vorwahl sowie eine Ausgabenobergrenze pro Workspace stoppen den Artificially-Inflated-Traffic-Angriff, bei dem OTPs an Premium-Nummernbereiche gesendet werden, um Carrier-Revenue-Shares zu generieren.

Aufgebaut auf dem, was bereits da ist. Die Risikobewertung nutzt die Versuchshistorie, die Verify von Tag eins an führt, und das Ergebnis „blockiert

FAQ zur Verifizierungssicherheit

Wo wird der Einmalcode gespeichert?+
Nur als HMAC-SHA256-Hash. Bird generiert den Code mit einer kryptografischen Zufallsquelle, sendet ihn und speichert den Hash zum Abgleich – der Klartext wird nie von der API zurückgegeben oder in Logs geschrieben.
Wie verhindern Sie das Brute-Forcing des Codes?+
Jede Sitzung hat eine begrenzte Anzahl von Prüfungen (standardmäßig 5), und jede wird in konstanter Zeit verglichen, sodass Timing nichts verrät. Ist das Budget aufgebraucht, schlägt die Sitzung fehl – ein Angreifer kann nicht weiter raten.
Was ist mit SMS-Pumping und künstlich aufgeblähtem Datenverkehr?+
Sendelimits pro Empfänger und ein tägliches Kontingent pro Workspace begrenzen die Kosten bereits heute. Dedizierte Betrugserkennung und SMS-Pumping-Schutz kommen als Nächstes und bauen auf der Sendehistorie auf, die Verify bereits erfasst.
Kosten diese Schutzmaßnahmen extra?+
Nein. Kryptografische Generierung, gehashte Speicherung, Constant-Time-Prüfungen, Sperrung nach Fehlversuchen und Sendelimits sind Standard bei jeder Verifizierung – es gibt keine Sicherheitsstufe, die Sie kaufen müssen.
Von wem sehen meine Nutzer den Code?+
Authifly, die Verifizierungsmarke von Bird. Sie ist die Identität auf jedem Code, den Ihre Nutzer erhalten: E-Mails kommen von otp@verify.authifly.com oder Ihrer eigenen verifizierten Domain, und SMS sowie WhatsApp sind Authifly-gebrandmarkt. authifly.com ist eine öffentliche Seite, die Empfängern versichert, dass Authifly legitime Einmalcodes im Auftrag eines Unternehmens versendet. Bird ist die Plattform, auf der Sie entwickeln; Authifly ist das, was der Empfänger sieht.

Codes werden so generiert, gespeichert und ratenlimitiert, wie es sein sollte.

Sicherheit ist in Bird Verify integriert, nicht aufgesetzt: Die Kanäle, der Code und die Limits sind dieselben zwei Endpunkte.

Starten Sie mit einem Kanal.
Fügen Sie die anderen hinzu, wenn Sie bereit sind.

Ein Test-API-Key steht Ihnen sofort zur Verfügung. Der Produktivzugang wird freigeschaltet, sobald Sie eine Zahlungsmethode hinzufügen und einen Absender verifizieren.

Sie nutzen Claude Code, Cursor oder Codex? Kopieren Sie einen Setup-Prompt und Ihr Agent installiert die Bird CLI und Skills für Sie. Wählen Sie Ihren:

Cursor