Missbrauchsschutz & Code-Sicherheit

In der Vorschau

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

Einrichtung in:
Cursor

Ein Einmalcode ist nur so gut wie die Art, wie er generiert, gespeichert und ratenbegrenzt wird. Bird Verify generiert Codes mit einer kryptografischen Quelle, speichert ausschließlich einen Hash, vergleicht in konstanter Zeit und begrenzt sowohl Versand als auch Rateversuche – so bringt ein geleaktes Log oder eine Brute-Force-Schleife einem Angreifer nichts. 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 denselben Schutz: Der Code wird serverseitig generiert, nie zurückgegeben und nur als Hash gespeichert; Prüfungen laufen in konstanter Zeit und gegen ein begrenztes Versuchsbudget; und der Versand wird pro Empfänger und pro Workspace begrenzt. Sie müssen nichts aktivieren oder verdrahten – so funktioniert die API, egal ob Sie sie als Zwei-Faktor-Login oder passwortlose Anmeldung einsetzen.

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.

    Ein Sendelimit pro Empfänger und eine Wartezeit zwischen erneutem Senden 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 Versandhistorie, die Verify heute pro Versand aufzeichnet, ist die Grundlage für eine Fraud-Schicht, die wir gerade entwickeln. Sie nutzt dieselben Create- und Check-Aufrufe – eine spätere Einführung ist daher nur eine Konfigurationsänderung, keine Neuintegration.

Risikosignale beim Erstellen. Übergeben Sie Geräte-, IP- und Anfrageinformationen bei einer Verifizierung, und Hochrisikoversuche erhalten ein „blockiert"-Ergebnis, bevor überhaupt ein Code gesendet wird – so zahlen Sie nicht dafür, einem Angreifer eine Nachricht zu senden.

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 vom ersten Tag an führt, und das „blockiert"-Ergebnis ist bereits Teil des Statusmodells – so fügt sich die Fraud-Schicht ein, ohne Ihre Integration umzubauen.

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 weder von der API zurückgegeben noch 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 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, Prüfungen in konstanter Zeit, Versuchssperre und Versandbegrenzungen sind Standardverhalten jeder Verifizierung – es gibt keine Sicherheitsstufe, die Sie extra 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