Auf dieser Seite wird beschrieben, wie Sie die Funktion zur Passwortleck-Erkennung von reCAPTCHA verwenden, um Passwortlecks und gehackte Anmeldedaten zu erkennen und so Kontoübernahmen (Account Takeovers, ATOs) und Credential Stuffing-Angriffe zu verhindern. Mit können Sie regelmäßig Audits der Nutzeranmeldedaten (Passwörter) im Rahmen einer Prüfung, um sicherzustellen, dass sie nicht gehackt wurden. Für diese Prüfungen verwendet Google die Funktion Passwortcheck verwenden.
Hinweise
Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein.
Für reCAPTCHA muss die Abrechnung für das Projekt verknüpft und aktiviert sein, damit die Funktion zur Erkennung von Passwortlecks verwendet werden kann. Sie können die Abrechnung entweder mithilfe einer Kreditkarte oder anhand einer vorhandenen Abrechnungs-ID im Google Cloud-Projekt aktivieren. Wenn Sie Hilfe bei der Abrechnung benötigen, wenden Sie sich an den Cloud Billing-Support.
Auf manipulierte und gehackte Anmeldedaten prüfen
Mit dem Befehl kryptografischer Funktionen oder den Docker-Container zu verwenden.
Der Docker-Container ist ein Open-Source-Client, der die sichere Berechnung durch mehrere Parteien die erforderlich ist, um die Privatsphäre der Endnutzer zu schützen und Passwortlecks sicher aufzuspüren. 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
Mit der Funktion „Erkennung von Passwortlecks“ können Sie prüfen, ob bestimmte Anmeldedaten gehackt wurden. wenn Sie Prüfungen für Aktionen wie Anmeldungen, Passwortänderungen für die Passwortzurücksetzung.
So prüfen Sie, ob Ihre Passwörter und Anmeldedaten gehackt wurden:
- Erstellen Sie Anfrageparameter.
- Bewertung erstellen, um Passwortlecks zu erkennen
- Gehackte Anmeldedaten aus einer Bewertung prüfen
- Ergebnis interpretieren und Maßnahmen ergreifen:
Anfrageparameter generieren
- Berechnen Sie die erforderlichen Anfrageparameter mithilfe der kryptografischen Funktionen, die für das datenschutzfreundliche Protokoll erforderlich sind. reCAPTCHA bietet Java- und TypeScript-Bibliotheken, die beim Generieren dieser Felder helfen:
Um Bestätigungen zur Passwortprüfung zu erstellen, erstelle eine
PasswordCheckVerifier
-Objekt enthält.PasswordCheckVerifier verifier = new PasswordCheckVerifier();
Rufen Sie
PasswordCheckVerifier#createVerification
an, um die Bestätigung einzuleiten. Bei dieser Methode werden der Nutzername und das Passwort verwendet, um die Parameter für führen Sie die Passwortprüfung durch.PasswordCheckVerification verification = verifier.createVerification("username", "password").get();
Erstellen Sie mit den Bestätigungsparametern eine Bewertung.
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 zur Erkennung 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: Verschlüsselter Verschlüsselungs-Hash der 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 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
Die folgenden Codebeispiele zeigen, wie Sie die Passwortleckerkennung mithilfe der Java- und TypeScript-Bibliotheken 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.
Node.js (TypeScript)
Richten Sie Standardanmeldedaten für Anwendungen ein, um sich bei reCAPTCHA zu authentifizieren. 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, 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.
- Umgebung für den Docker-Container vorbereiten
- Erstellen Sie den Container und führen Sie ihn aus.
- HTTP-Anfragen an den Container senden
- Ergebnis interpretieren und Maßnahmen ergreifen:
Ausführung des Docker-Containers vorbereiten
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.
Konfigurieren Sie den PLD-Container so, dass er mit HTTPS oder im Demomodus nur für localhost ausgeführt wird.
Da der Container vertrauliche Anmeldedaten von Endnutzern (Nutzernamen und Passwörter), muss er entweder mit HTTPS oder in einer Demo nur für den lokalen Host ausgeführt werden. . Eine Anleitung zur HTTPS-Konfiguration finden Sie unter 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 wird gestartet und beginnt, Anfragen auf Port 8080 von localhost zu bedienen.
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 Bewertungsantwort zeigt, ob die Anmeldedaten gehackt wurden, und bietet Ihnen 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 gehacktes Passwort erkannt:
Gehacktes Passwort erkannt | Maßnahmen zum Schutz Ihrer Nutzer |
---|---|
Während der Anmeldung |
|
Bei der Kontoerstellung oder beim Zurücksetzen des Passworts |
|
Wenn Sie noch keinen MFA-Anbieter auf Ihrer Website verwenden, können Sie die MFA-Funktion von reCAPTCHA verwenden.
Nächste Schritte
- Multi-Faktor-Authentifizierung (MFA) verwenden
- Informationen zum Schutz von Nutzerkonten mit reCAPTCHA Account Defender