Halaman ini menjelaskan cara menggunakan fitur deteksi kebocoran sandi reCAPTCHA Enterprise untuk mendeteksi kebocoran sandi dan kredensial yang dibobol guna mencegah pengambilalihan akun (ATO) dan serangan credential stuffing. Dengan reCAPTCHA Enterprise, Anda dapat melakukan audit rutin terhadap kredensial pengguna (sandi) sebagai bagian dari penilaian apa pun untuk memastikan bahwa kredensial tersebut tidak dibocorkan atau dilanggar. Untuk melakukan penilaian ini, Google menggunakan fitur Pemeriksaan Sandi.
Sebelum memulai
Make sure that billing is enabled for your Google Cloud project.
reCAPTCHA Enterprise mengharuskan penagihan untuk ditautkan dan diaktifkan pada project agar dapat menggunakan fitur deteksi kebocoran sandi. Anda dapat mengaktifkan penagihan menggunakan kartu kredit atau ID penagihan project Google Cloud yang sudah ada. Jika Anda memerlukan bantuan terkait penagihan, hubungi Dukungan Penagihan Cloud.
Periksa kredensial yang bocor dan bocor
Untuk memeriksa apakah satu set kredensial telah disusupi, gunakan deteksi kebocoran sandi saat membuat penilaian untuk tindakan seperti login, perubahan sandi, dan reset sandi.
Untuk memeriksa kebocoran sandi dan kredensial yang dibobol, selesaikan langkah-langkah berikut:
- Buat parameter permintaan.
- Buat penilaian untuk mendeteksi kebocoran sandi.
- Memverifikasi kredensial yang bocor dari penilaian.
- Menafsirkan verdict dan mengambil tindakan.
Membuat parameter permintaan
Hitung parameter permintaan yang diperlukan menggunakan fungsi kriptografi yang diperlukan oleh protokol privasi tinggi. reCAPTCHA Enterprise menyediakan library Java dan TypeScript untuk membantu pembuatan kolom berikut:
Untuk membuat verifikasi pemeriksaan sandi, buat objek
PasswordCheckVerifier
.PasswordCheckVerifier verifier = new PasswordCheckVerifier();
Untuk memulai verifikasi, panggil
PasswordCheckVerifier#createVerification
. Metode ini menggunakan nama pengguna dan sandi untuk menghitung parameter guna melakukan pemeriksaan sandi.PasswordCheckVerification verification = verifier.createVerification("username", "password").get();
Buat penilaian menggunakan parameter verifikasi.
byte[] lookupHashPrefix = verification.getLookupHashPrefix(); byte[] encryptedUserCredentialsHash = verification.getEncryptedUserCredentialsHash();
Array byte
lookupHashPrefix
danencryptedUserCredentialsHash
berisi parameter yang diperlukan untuk memulai pemeriksaan sandiAssessment
.
Membuat penilaian untuk mendeteksi kebocoran sandi
Gunakan
metode
projects.assessments.create
.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT_ID: project ID Google Cloud Anda
- LOOKUP_HASH_PREFIX: awalan nama pengguna hash SHA-256
- ENCRYPTED_USER_CREDENTIALS_HASH: Hash Scrypt kredensial pengguna yang dienkripsi
Metode HTTP dan URL:
POST https://recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/assessments
Isi JSON permintaan:
{ "private_password_leak_verification": { "lookup_hash_prefix": "LOOKUP_HASH_PREFIX", "encrypted_user_credentials_hash": "ENCRYPTED_USER_CREDENTIALS_HASH" } }
Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:
curl
Simpan isi permintaan dalam file bernama request.json
,
dan jalankan perintah berikut:
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
Simpan isi permintaan dalam file bernama request.json
,
dan jalankan perintah berikut:
$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
Anda akan melihat respons JSON seperti berikut:
{ "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="] } }
Memverifikasi kredensial yang bocor dari penilaian
Dari respons penilaian, ekstrak kolom
reEncryptedUserCredentials
dan encryptedLeakMatchPrefixes
, lalu teruskan ke
objek pemverifikasi untuk menentukan apakah kredensial bocor atau tidak.
PasswordCheckResult result = verifier.verify(verification,
result.getReEncryptedUserCredentials(),
result.getEncryptedLeakMatchPrefixes()
).get();
System.out.println("Credentials leaked: " + result.areCredentialsLeaked());
Menafsirkan verdict dan mengambil tindakan
Respons penilaian menunjukkan apakah kredensial bocor dan memberi Anda informasi yang dapat digunakan untuk mengambil tindakan yang sesuai guna melindungi pengguna.
Tabel berikut mencantumkan tindakan yang disarankan yang dapat Anda lakukan saat sandi yang bocor terdeteksi:
Sandi yang bocor terdeteksi | Tindakan untuk melindungi pengguna Anda |
---|---|
Selama login |
|
Selama pembuatan akun atau reset sandi |
|
Jika belum menggunakan penyedia MFA di situs Anda, Anda dapat menggunakan kemampuan MFA pada reCAPTCHA Enterprise.
Contoh kode
Java
Untuk melakukan autentikasi reCAPTCHA Enterprise, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Node.js (TypeScript)
Untuk melakukan autentikasi reCAPTCHA Enterprise, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Langkah selanjutnya
- Pelajari cara menggunakan autentikasi multi-faktor (MFA)
- Pelajari cara melindungi akun pengguna dengan menggunakan Pelindung Akun reCAPTCHA Enterprise