Auf dieser Seite wird beschrieben, wie Sie mit der Passwortschutzfunktion von reCAPTCHA Passwortlecks und gehackte Anmeldedaten erkennen können, um Kontoübernahmen (Account Takeovers, ATOs) und Credential Stuffing-Angriffe zu verhindern. 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. Zur Durchführung dieser Bewertungen verwendet Google die Passwortcheck-Funktion.
Hinweis
Prüfen Sie, ob die Abrechnung für Ihr Google Cloud Projekt aktiviert ist.
Für reCAPTCHA muss die Abrechnung mit dem Projekt verknüpft und für dieses aktiviert sein, damit die Passwortschutzfunktion verwendet werden kann. Sie können die Abrechnung entweder mithilfe einer Kreditkarte oder anhand einer vorhandenen Google Cloud Abrechnungs-ID für das Projekt aktivieren. Wenn Sie Hilfe bei der Abrechnung benötigen, wenden Sie sich an den Cloud Billing-Support.
Auf gehackte und durchgesickerte Anmeldedaten prüfen
Sie können prüfen, ob ein Satz Anmeldedaten manipuliert wurde, indem Sie kryptografische Funktionen oder den Docker-Container verwenden.
Der Docker-Container ist ein Open-Source-Client, der die sichere Gruppenberechnung implementiert, die erforderlich ist, um die Privatsphäre von Endnutzern zu schützen und sicher nach Passwortlecks zu suchen. 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 hosten.
Kryptografische Funktion
Wenn Sie prüfen möchten, ob ein Satz Anmeldedaten manipuliert wurde, verwenden Sie den Passwortschutz, wenn Sie Bewertungen für Aktionen wie Anmeldungen, Passwortänderungen und Passwortzurücksetzungen erstellen.
So prüfen Sie auf Passwortlecks und gehackte Anmeldedaten:
- Anfrageparameter generieren.
- Bewertung zum Erkennen von gehackten Passwörtern erstellen.
- In Bewertung erkannte gehackte Anmeldedaten überprüfen.
- Urteil interpretieren und Maßnahmen ergreifen.
Anfrageparameter generieren
Berechnen Sie die erforderlichen Anfrageparameter mit den kryptografischen Funktionen, die für das Protokoll mit hohem Datenschutz erforderlich sind. reCAPTCHA bietet Java- und TypeScript-Bibliotheken, die Sie beim Generieren dieser Felder unterstützen:
Erstellen Sie ein
PasswordCheckVerifier-Objekt, um Passwortprüfungen zu erstellen.PasswordCheckVerifier verifier = new PasswordCheckVerifier();Rufen Sie
PasswordCheckVerifier#createVerificationauf, um eine Überprüfung zu starten. Diese Methode verwendet den Nutzernamen und das Passwort, um die Parameter für die Passwortprüfung zu berechnen.PasswordCheckVerification verification = verifier.createVerification("username", "password").get();Erstellen Sie eine Bewertung mit den Überprüfungsparametern.
byte[] lookupHashPrefix = verification.getLookupHashPrefix(); byte[] encryptedUserCredentialsHash = verification.getEncryptedUserCredentialsHash();Die Byte-Arrays
lookupHashPrefixundencryptedUserCredentialsHashenthalten die Parameter, die zum Starten einer PasswortprüfungAssessmenterforderlich sind.
Bewertung zum Erkennen von gehackten Passwörtern erstellen
Verwenden Sie die
projects.assessments.create
Methode.
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 des Nutzernamens
- ENCRYPTED_USER_CREDENTIALS_HASH: Mit Scrypt verschlüsselter Hash der Anmeldedaten des Nutzers
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 eine JSON-Antwort ähnlich wie diese 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="]
}
}
In Bewertung erkannte gehackte Anmeldedaten überprüfen
Extrahieren Sie aus der Bewertungsantwort die Felder reEncryptedUserCredentials und encryptedLeakMatchPrefixes und übergeben Sie sie an das Verifiziererobjekt, um zu ermitteln, ob die Anmeldedaten durchgesickert sind.
PasswordCheckResult result = verifier.verify(verification,
result.getReEncryptedUserCredentials(),
result.getEncryptedLeakMatchPrefixes()
).get();
System.out.println("Credentials leaked: " + result.areCredentialsLeaked());
Codebeispiel
Node.js (TypeScript)
Informationen zum Implementieren der Erkennung von Passwortlecks mit Node.js (TypeScript) finden Sie im TypeScript-Codebeispiel auf GitHub.
Java
Richten Sie zur Authentifizierung bei reCAPTCHA die Standardanmeldedaten für Anwendungen (ADC) ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Docker-Container
Wenn Sie prüfen möchten, ob Anmeldedaten durchgesickert sind, senden Sie das Anmeldedatenpaar aus Nutzername und Passwort sicher an den Container. Verwenden Sie dazu eine Localhost-Verbindung oder richten Sie HTTPS auf dem Container ein. Der Container verschlüsselt diese Anmeldedaten dann, bevor er eine API-Anfrage an reCAPTCHA sendet, und überprüft das neu verschlüsselte Ergebnis lokal.
So senden Sie Anfragen an den Docker-Container:
- Richten Sie Docker ein.
- Bereiten Sie eine Umgebung für den Docker-Container vor.
- Erstellen und führen Sie den Container aus.
- Senden Sie HTTP-Anfragen an den Container.
- Urteil interpretieren und Maßnahmen ergreifen.
Vorbereitung auf die Ausführung des Docker-Containers
Wählen Sie eine Authentifizierungsstrategie aus.
Der Container unterstützt das Festlegen von Standardanmeldedaten für Anwendungen oder kann einen API-Schlüssel zur Authentifizierung akzeptieren.
Konfigurieren Sie den PLD-Container so, dass er mit HTTPS oder im Demo-Modus nur für Localhost ausgeführt wird.
Da der Container vertrauliche Anmeldedaten von Endnutzern (Nutzernamen und Passwörter) akzeptiert, muss er entweder mit HTTPS oder im Demo-Modus nur für Localhost ausgeführt werden. Eine Anleitung zur HTTPS-Konfiguration finden Sie in der README-Datei auf GitHub.
In den folgenden Schritten wird die API-Schlüsselauthentifizierung verwendet und der Client im Demo-Modus nur für Localhost ausgeführt.
Docker-Container erstellen und ausführen
Klonen Sie das Repository:
git clone github.com/GoogleCloudPlatform/reCAPTCHA-PLDErstellen Sie den Container:
docker build . -t pld-localStarten Sie den Container:
docker run --network host \ -e RECAPTCHA_PROJECT_ID=PROJECT_ID \ -e GOOGLE_CLOUD_API_KEY=API_KEY \ pld-local
Der Container wird gestartet und beginnt, Anfragen auf Port 8080 von Localhost zu verarbeiten.
Localhost-Anfragen senden
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- LEAKED_USERNAME: Nutzername des durchgesickerten Anmeldedatenpaars.
- LEAKED_PASSWORD: Passwort des durchgesickerten Anmeldedatenpaars.
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 ContentSie sollten eine JSON-Antwort ähnlich wie diese erhalten:
{ "leakedStatus":"LEAKED" }
OR
{ "leakedStatus":"NO_STATUS" }
Urteil interpretieren und Maßnahmen ergreifen
Die Bewertungsantwort zeigt, ob die Anmeldedaten durchgesickert sind, und enthält Informationen, mit denen Sie geeignete 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 durchgesickertes Passwort erkannt wird:
| Durchgesickertes Passwort erkannt | Maßnahmen zum Schutz des Nutzers |
|---|---|
| Bei der Anmeldung |
|
| Bei der Kontoerstellung oder beim Zurücksetzen des Passworts |
|
Wenn Sie auf Ihrer Website noch keinen MFA-Anbieter verwenden, können Sie die MFA-Funktion von reCAPTCHA nutzen.
Nächste Schritte
- Informationen zur Verwendung der Multi-Faktor-Authentifizierung (MFA)
- Informationen zum Schutz von Nutzerkonten mit reCAPTCHA Account Defender