Auf dieser Seite wird beschrieben, wie Sie die reCAPTCHA-Funktion zur Erkennung von Passwortlecks verwenden. zur Erkennung von Passwortlecks und gehackten Anmeldedaten, um die Übernahme von Konten zu verhindern und Credential Stuffing-Angriffe. Mit reCAPTCHA 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. Für diese Prüfungen verwendet Google die Funktion Passwortcheck verwenden.
Hinweise
Make sure that billing is enabled for your Google Cloud project.
Für reCAPTCHA muss die Abrechnung für das Projekt verknüpft und aktiviert sein die Funktion zur Erkennung von Passwortlecks zu verwenden. Sie können die Abrechnung mit einer Kreditkarte oder einem bestehende Abrechnungs-ID des Google Cloud-Projekts. Wenn Sie Hilfe bei der Abrechnung benötigen, wenden Sie sich an den Cloud Billing-Support.
Nach gehackten und gehackten Anmeldedaten suchen
Sie können mithilfe von kryptografischen Funktionen oder dem Docker-Container prüfen, ob Anmeldedaten manipuliert wurden.
Der Docker-Container ist ein Open-Source-Client, der die sichere Gruppen-Datenverarbeitung implementiert, die zum Schutz der Privatsphäre von Endnutzern und zum sicheren Abrufen von Passwortlecks erforderlich ist. Weitere Informationen finden Sie im GitHub-Repository. Der Docker-Container abstrahiert die Komplexität der Implementierung der kryptografischen Algorithmen und vereinfacht den Installationsprozess. Außerdem können Sie die Container-App in Ihrer Infrastruktur verwenden.
Kryptografische Funktion
Wenn Sie prüfen möchten, ob ein Satz Anmeldedaten manipuliert wurde, verwenden Sie die Passwortleckerkennung, wenn Sie Bewertungen für Aktionen wie Anmeldungen, Passwortänderungen und Passwortrücksetzungen erstellen.
Führen Sie die folgenden Schritte aus, um nach Passwortlecks und gehackten Anmeldedaten zu suchen:
- Generieren Sie Anfrageparameter.
- Erstellen Sie eine Bewertung, um Passwortlecks zu erkennen.
- Gehackte Anmeldedaten aus einer Bewertung prüfen
- Urteil auswerten und Maßnahmen ergreifen
Anfrageparameter generieren
Berechnen Sie die erforderlichen Anfrageparameter mithilfe der Funktion kryptografischer Funktionen, die für das High-Privacy-Protokoll erforderlich sind. reCAPTCHA bietet Java- und TypeScript-Bibliotheken zur Unterstützung bei Generieren dieser Felder:
Um Bestätigungen zur Passwortprüfung zu erstellen, erstelle eine
PasswordCheckVerifier
-Objekt enthält.PasswordCheckVerifier verifier = new PasswordCheckVerifier();
Rufen Sie
PasswordCheckVerifier#createVerification
an, um eine 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: Bewertung indem Sie die Überprüfungsparameter verwenden.
byte[] lookupHashPrefix = verification.getLookupHashPrefix(); byte[] encryptedUserCredentialsHash = verification.getEncryptedUserCredentialsHash();
Die Byte-Arrays
lookupHashPrefix
undencryptedUserCredentialsHash
enthalten die Parameter, die zum Starten einer PasswortprüfungAssessment
erforderlich sind.
Bewertung zum Erkennen von Passwortlecks erstellen
Verwenden Sie die Methode projects.assessments.create
.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: Ihre Google Cloud-Projekt-ID
- LOOKUP_HASH_PREFIX: Präfix des SHA-256-Hash-Präfixes für den Nutzernamen
- ENCRYPTED_USER_CREDENTIALS_HASH: Scrypt-Hash der verschlüsselten Anmeldedaten
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 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 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="] } }
Gehackte Anmeldedaten aus einer Bewertung prüfen
Extrahieren Sie aus der Antwort der Prüfung die Felder reEncryptedUserCredentials
und encryptedLeakMatchPrefixes
und übergeben Sie sie an das Verifier-Objekt, um festzustellen, ob die Anmeldedaten gehackt wurden oder nicht.
PasswordCheckResult result = verifier.verify(verification,
result.getReEncryptedUserCredentials(),
result.getEncryptedLeakMatchPrefixes()
).get();
System.out.println("Credentials leaked: " + result.areCredentialsLeaked());
Codebeispiel
Informationen zur Implementierung der Passwortleckerkennung mit TypeScript finden Sie im TypeScript-Codebeispiel auf GitHub.
Das folgende Codebeispiel zeigt, wie Sie die Erkennung von Passwortlecks mit Java implementieren:
Java
Richten Sie zur Authentifizierung bei reCAPTCHA die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Docker-Container
Um zu prüfen, ob Anmeldedaten gehackt wurden, senden Sie den Nutzernamen und Paar der Anmeldedaten für den Container über eine localhost-Verbindung oder durch HTTPS für den Container einrichten. Der Container verschlüsselt diese Anmeldedaten dann, eine API-Anfrage an reCAPTCHA senden und die neu verschlüsselte lokal zu finden.
So senden Sie Anfragen an den Docker-Container:
- Richten Sie Docker ein.
- Bereiten Sie eine Umgebung für den Docker-Container vor.
- Container erstellen und ausführen
- HTTP-Anfragen an den Container senden
- Ergebnis interpretieren und Maßnahmen ergreifen:
Docker-Container ausführen
Wählen Sie eine Authentifizierungsstrategie aus.
Der Container unterstützt das Festlegen von Standardanmeldedaten für Anwendungen oder kann einen API-Schlüssel für die Authentifizierung akzeptieren.
PLD-Container für die Ausführung mit HTTPS oder in einer Demo nur für localhost konfigurieren .
Da der Container vertrauliche Anmeldedaten von Endnutzern (Nutzernamen und Passwörter) akzeptiert, muss er entweder mit HTTPS oder im Demomodus nur für localhost ausgeführt werden. Eine Anleitung zur HTTPS-Konfiguration findest du in der README-Datei auf GitHub.
In den folgenden Schritten wird die API-Schlüsselauthentifizierung verwendet und der Client wird im Demomodus nur für localhost ausgeführt.
Docker-Container erstellen und ausführen
Klonen Sie das Repository:
git clone github.com/GoogleCloudPlatform/reCAPTCHA-PLD
Erstellen Sie den Container:
docker build . -t pld-local
Starten Sie den Container:
docker run --network host \ -e RECAPTCHA_PROJECT_ID=PROJECT_ID \ -e GOOGLE_CLOUD_API_KEY=API_KEY \ pld-local
Der Container startet und sendet Anfragen an Port 8080 von localhost.
Localhost-Anfragen senden
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- LEAKED_USERNAME: Nutzername des gehackten Anmeldedatenpaars.
- LEAKED_PASSWORD: Passwort des gehackten Anmeldedaten-Paares.
HTTP-Methode und URL:
POST http://localhost:8080/createAssessment/
JSON-Text der Anfrage:
{ "username":"LEAKED_USERNAME", "password":"LEAKED_PASSWORD" }
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 "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"http://localhost:8080/createAssessment/"
PowerShell
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json
und führen Sie den folgenden Befehl aus:
$headers = @{ }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "http://localhost:8080/createAssessment/" | Select-Object -Expand Content
Sie sollten in etwa folgende JSON-Antwort erhalten:
{ "leakedStatus":"LEAKED" } OR { "leakedStatus":"NO_STATUS" }
Entscheidung auswerten und Maßnahmen ergreifen
Die Antwort auf die Prüfung gibt an, ob die Anmeldedaten gehackt wurden, und enthält Informationen, anhand derer Sie entsprechende Maßnahmen zum Schutz Ihrer Nutzer ergreifen können.
In der folgenden Tabelle sind die empfohlenen Maßnahmen aufgeführt, die Sie ergreifen können, wenn ein gehacktes Passwort erkannt wird:
Gehacktes Passwort erkannt | Maßnahmen zum Schutz Ihrer Nutzer |
---|---|
Während der Anmeldung |
|
Bei der Kontoerstellung oder beim Zurücksetzen des Passworts |
|
Wenn Sie auf Ihrer Website noch keinen MFA-Anbieter nutzen, können Sie die MFA-Funktion von reCAPTCHA nutzen.
Nächste Schritte
- Multi-Faktor-Authentifizierung (MFA) verwenden
- Hier erfahren Sie, wie Sie Nutzerkonten mit reCAPTCHA Account Defender schützen.