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

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, error } = await bird.verify.verifications.check({
  to:   { phone_number: "+15551234567" },
  code: userInput,
}).safe();
if (error) throw error;
Verifizierungsablauf

Ihr Konto

Bestätigen Sie Ihre Identität.

Geben Sie den Code ein, der gesendet wurde an

+1 ••• ••• 4567

Beispiel-Bestätigungscode

482691
Code verifiziert
Code senden. Empfänger bestätigen.

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 mit der Anzahl verbleibender Versuche zurückgewiesen, und die Sitzung schlägt fehl, sobald das Budget aufgebraucht ist – eine Brute-Force-Schleife läuft also lange vor dem richtigen Code gegen eine Wand.

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

// wrong code, attempts left → { success: false, reason: "incorrect_code", attempts_remaining: 2 }
// budget spent, session done → { success: false, reason: "attempts_exhausted", 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.

Skalieren, ohne
die Kontrolle zu verlieren.

Organisieren Sie Teams in Workspaces, steuern Sie den API-Zugriff und verfolgen Sie Änderungen über Audit-Logs.

BirdHarborOrganization
WorkspacesProductionSandbox

Delivery agent

API key · Customer operations team
Active
PermissionsAccess
EmailRead & write
SMSRead & write
ALAlex Lee AdminPermissions updated

Audit log

Production
Workspace
Production
Resource
Delivery agent
WhatsApp
ReadRead & write
Succeeded

Starten Sie mit Verify.
Kanalübergreifend entwickeln mit Bird.

Ihre nächste Idee.
Bereit zur Verbindung.