reCAPTCHA Enterprise kann Passwortlecks und gehackte Anmeldedaten erkennen, um Kontoübernahmen (ATOs) und Credential Stuffing-Angriffe zu verhindern. Mit reCAPTCHA Enterprise können Sie im Rahmen jeder Bewertung regelmäßig Audits von Nutzeranmeldedaten (Passwörtern) ausführen, um sicherzustellen, dass sie nicht manipuliert oder gehackt wurden. Zur Durchführung dieser Bewertungen verwendet Google die Passwortcheck-Funktion.
Hinweis
Wählen Sie die beste Methode zum Einrichten von reCAPTCHA Enterprise in Ihrer Umgebung aus und schließen Sie die Einrichtung ab.
Die Erkennung von Datenlecks ist nach der Genehmigung verfügbar. Wenden Sie sich an unser Vertriebsteam, um Ihre Website auf dieses Feature umzustellen.
Die Abrechnung für das Cloud-Projekt muss aktiviert sein. So prüfen Sie, ob die Abrechnung für ein Projekt aktiviert ist.
reCAPTCHA Enterprise erfordert die Verknüpfung und Aktivierung der Abrechnung für das Projekt, um die Funktion zur Erkennung von Passwortlecks verwenden zu können. Sie können die Abrechnung entweder mit einer Kreditkarte oder mit einer bestehenden Abrechnungs-ID für das Google Cloud-Projekt aktivieren. Wenn Sie Hilfe bei der Abrechnung benötigen, wenden Sie sich an den Cloud Billing-Support.
Nach gehackten und/oder gehackten Anmeldedaten suchen
Wenn Sie prüfen möchten, ob ein Satz Anmeldedaten manipuliert wurde, fragen Sie die Passwortcheck-Datenbank während der Bewertung von Aktionen ab, darunter Anmeldungen und Passwortänderungen oder -zurücksetzungen.
Wenn du den Dienst zur Datenleck-Erkennung verwenden und feststellen möchtest, ob es ein Leck gab, musst du die Parameter mit den kryptografischen Funktionen berechnen, die für das Protokoll mit hohem Datenschutz erforderlich sind. Dazu stellt reCAPTCHA Enterprise eine Java-Bibliothek zur Verfügung: java-recaptcha-password-check-helpers.
Anfrageparameter generieren
Erstelle zur Überprüfung von Passwortprüfungen ein
PasswordCheckVerifier
-Objekt.PasswordCheckVerifier verifier = new PasswordCheckVerifier();
Rufen Sie
PasswordCheckVerifier#createVerification
auf, um die Bestätigung zu starten. Bei dieser Methode werden der Nutzername und das Passwort verwendet, um die Parameter für die Passwortprüfung zu berechnen.PasswordCheckVerification verification = verifier.createVerification("username", "password").get();
Erstellen Sie eine Bewertung mithilfe der Bestätigungsparameter.
byte[] lookupHashPrefix = verification.getLookupHashPrefix(); byte[] encryptedUserCredentialsHash = verification.getEncryptedUserCredentialsHash();
Die Bytearrays lookupHashPrefix
und encryptedUserCredentialsHash
enthalten die Parameter, die zum Initiieren einer Passwortprüfung Assessment
erforderlich sind.
API-Anfrage
Verwenden Sie die Methode projects.assessments.create
.
Bevor Sie eine der Anfragedaten verwenden, nehmen Sie folgende Ersetzungen vor:
- PROJECT_ID: Ihre Google Cloud-Projekt-ID
- LOOKUP_HASH_PREFIX: Präfix des Scrypt-Hash-Präfixes des Nutzernamens
- ENCRYPTED_USER_CREDENTIALS_HASH: SHA-256-Hash der verschlüsselten Nutzeranmeldedaten
HTTP-Methode und URL:
POST https://recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/assessments
JSON-Text der Anfrage:
{ "private_password_leak_verification": { "lookup_hash_prefix": "LOOKUP_HASH_PREFIX" "encrypted_user_credentials_hash": "ENCRYPTED_USER_CREDENTIALS_HASH" } }
Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:
curl
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json
und führen Sie den folgenden Befehl aus:
curl -X POST \
-H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/assessments"
PowerShell
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json
und führen Sie den folgenden Befehl aus:
$cred = gcloud auth application-default print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/assessments" | Select-Object -Expand Content
Sie sollten in etwa folgende JSON-Antwort erhalten:
{ "name": "projects/698047609967/assessments/fb22000000000000", "score": 0, "reasons": [], "privatePasswordLeakVerification": { "lookupHashPrefix": "zoxZwA==", "encryptedUserCredentialsHash": "AyRihRcKaGLj/FA/r2uqQY/fzfTaDb/nEcIUMeD3Tygp", "reencryptedUserCredentialsHash": "Aw65yEbLM39ww1ridDEfx5VhkWo11tzn/R1B88Qqwr/+" "encryptedLeakMatchPrefixes": [ "n/n5fvPD6rmQPFyb4xk=", "IVQqzXsbZenaibID6OI=", ..., "INeMMndrfnlf6osCVvs=", "MkIpxt2x4mtyBnRODu0=", "AqUyAUWzi+v7Kx03e6o="] } }
Passwortleck bestätigen
Extrahieren Sie aus der CreateAssessment
-Antwort die Felder reEncryptedUserCredentials
und encryptedLeakMatchPrefixes
und übergeben Sie sie an das Verifikationsobjekt, um festzustellen, ob die Anmeldedaten gehackt wurden.
PasswordCheckResult result = verifier.verify(verification,
result.getReEncryptedUserCredentials(),
result.getEncryptedLeakMatchPrefixes()
).get();
System.out.println("Credentials leaked: " + result.areCredentialsLeaked());
Codebeispiel
Java