Jika kata sandi dikompromikan, apakah kata sandi "serupa" juga dikompromikan?

37

Misalkan seorang pengguna menggunakan kata sandi aman di situs A dan kata sandi aman berbeda tapi serupa di situs B. Mungkin sesuatu seperti mySecure12#PasswordAdi situs A dan mySecure12#PasswordBdi situs B (jangan ragu untuk menggunakan definisi "kesamaan" yang berbeda jika itu masuk akal).

Misalkan kemudian bahwa kata sandi untuk situs A entah bagaimana dikompromikan ... mungkin karyawan jahat dari situs A atau kebocoran keamanan. Apakah ini berarti bahwa kata sandi situs B telah dikompromikan secara efektif juga, atau apakah tidak ada yang disebut "kesamaan kata sandi" dalam konteks ini? Apakah ada bedanya apakah kompromi di situs A adalah kebocoran teks biasa atau versi hash?

Michael McGowan
sumber

Jawaban:

38

Untuk menjawab bagian terakhir terlebih dahulu: Ya, itu akan membuat perbedaan jika data yang diungkapkan adalah teks-bersih vs hash. Dalam hash, jika Anda mengubah satu karakter, seluruh hash sama sekali berbeda. Satu-satunya cara penyerang mengetahui kata sandi adalah dengan memaksa paksa hash (bukan tidak mungkin, terutama jika hash tidak tawar. Lihat tabel pelangi ).

Sejauh pertanyaan kesamaan, itu akan tergantung pada apa yang penyerang tahu tentang Anda. Jika saya mendapatkan kata sandi Anda di situs A dan jika saya tahu Anda menggunakan pola tertentu untuk membuat nama pengguna atau semacamnya, saya dapat mencoba konvensi yang sama pada kata sandi di situs yang Anda gunakan.

Atau, dalam kata sandi yang Anda berikan di atas, jika saya sebagai penyerang melihat pola yang jelas dapat saya gunakan untuk memisahkan bagian kata sandi khusus situs dari bagian kata sandi generik, saya pasti akan membuat bagian dari serangan kata sandi khusus yang disesuaikan kepadamu.

Sebagai contoh, katakan Anda memiliki kata sandi super aman seperti 58htg% HF! C. Untuk menggunakan kata sandi ini di situs yang berbeda, Anda menambahkan item spesifik situs di awal, sehingga Anda memiliki kata sandi seperti: facebook58htg% HF! C, wellsfargo58htg% HF! C, atau gmail58htg% HF! C, Anda dapat bertaruh jika saya retas facebook Anda dan dapatkan facebook58htg% HF! c Saya akan melihat pola itu dan menggunakannya di situs lain yang saya temukan dapat Anda gunakan.

Semuanya bermuara pada pola. Akankah penyerang melihat pola di bagian spesifik situs dan bagian umum kata sandi Anda?

queso
sumber
4
Anda baru saja membuat kata sandi default saya di mana-mana 58htg%HF!ctidak berguna, terima kasih banyak
Tobias Kienzler
1
Wow! Apa peluangnya? Jangan keluar dalam badai petir untuk sementara waktu.
queso
hm, saya harus bermain lotre: -7 (+1 btw)
Tobias Kienzler
11

Itu benar-benar tergantung pada apa yang Anda maksudkan!

Ada sejumlah metode arbitrer untuk menentukan apakah kata sandi mirip dengan kata sandi lain. Misalnya, Anda menggunakan kartu kata sandi , dan entah bagaimana orang lain memiliki kartu yang sama (atau hanya tahu kartu yang Anda miliki). Jika mereka mengkompromikan salah satu kata sandi Anda dan dapat melihat bahwa itu hanya deretan kartu kata sandi, mereka cenderung menebak (mungkin bahkan dengan benar) bahwa kata sandi Anda semua berasal dari kartu itu dengan cara yang sama.

Tapi, untuk sebagian besar hal ini sebenarnya bukan masalah sama sekali. Jika kata sandi Anda pada layanan A berbeda dari kata sandi pada layanan B hanya dengan satu karakter, dan kedua layanan aman (misalnya, menyimpan hash asin untuk kata sandi Anda alih-alih hash lurus atau plaintext itu sendiri) maka itu "tidak layak secara komputasi" untuk menentukan apakah kata sandi itu mirip, apalagi betapa miripnya.

Jawaban singkatnya adalah ini: Jika kata sandi Anda mengikuti pola apa pun, maka ya, kemungkinan kompromi satu kata sandi akan mengarah pada kompromi yang lain. Namun, itu tidak berarti bahwa itu layak untuk dilakukan. Selama Anda:

  1. Jangan pernah menggunakan kata sandi yang sama untuk lebih dari satu layanan,
  2. Perkenalkan beberapa elemen acak (meskipun hanya sedikit) ke dalam pembuatan kata sandi Anda, dan
  3. Jangan pernah mengirim atau menyimpan kata sandi Anda dalam teks yang jelas

Anda seharusnya baik-baik saja. Dan ingatlah untuk selalu memiliki kata sandi yang berbeda untuk layanan yang berbeda — jangan hanya menggunakan kata sandi yang sama untuk semuanya, dan bahkan jangan menggunakan kata sandi yang sama dua kali. Penting untuk berjaga-jaga terhadap perusahaan-perusahaan bodoh yang menolak untuk mengikuti praktik terbaik dalam hal penyimpanan data pengguna seperti kata sandi.

Michael Trausch
sumber
7

Jawaban singkat saya adalah YA . Misalnya: strongpassword + game.com dikompromikan,

Jika saya seorang attaquer, sangat mudah bagi saya untuk memahami pola yang Anda gunakan dan mencobanya di situs web lain. Misalnya kata sandi + paypal.com

Argh! ....

Untuk memperbaikinya, saya menggunakan:

hash ( strongpassword+game.com )
hash ( strongpassword+paypal.com )

Menggunakan properti matematika tentang hash (saya menggunakan sha1), mengetahui kata sandi pertama sulit untuk menemukan kata sandi yang kuat dan kata sandi kedua.

Jika Anda melihat lebih detail, saya membuat entri blog tentang keamanan kata sandi yang menjawab persis pertanyaan Anda:

http://yannesposito.com/Scratch/en/blog/Password-Management/

Saya juga membuat beberapa alat untuk membuatnya lebih mudah untuk mengelola semua kata sandi saya, karena Anda harus dapat mengubah kata sandi yang dikompromikan, ingat panjang maksimal kata sandi, dll ...

yogsototh
sumber
1
SHA-1 tidak lagi dianggap aman secara matematis.
Hello71
4
@ Hello71 apakah Anda punya sumber untuk itu? Saya ingin tahu untuk membaca lebih lanjut.
nhinkle
tinsology.net/2010/12/is-sha1-still-viable memang diakui terbatas, tetapi bisa mencari 6 karakter pertama dari keyspace yang dengan cepat pada sumber daya sewaan berarti seseorang dengan botnet dan tabel pelangi mungkin bisa melakukan lebih banyak lagi . Sebagai aturan umum, semua hal lain dianggap sama, hash / enkripsi apa pun menghabiskan paling banyak siklus CPU untuk mendapatkan kekuatan yang terbaik. :)
Stephanie
4

Ini tergantung pada apa yang Anda khawatirkan. Untuk skala besar, serangan otomatis menggunakan kredensial dari satu situs di situs lain, penyerang akan mencari bagian paling mudah terlebih dahulu - orang menggunakan kata sandi yang persis sama. Setelah itu telah habis, jika serangan itu masih tanpa disadari, penyerang akan mencari apa yang menurutnya adalah pola umum - mungkin sesuatu seperti kata sandi dasar + situs.

Seorang penyerang pintar yang yakin bahwa serangan aslinya (yang mendapatkan kata sandi Anda) tidak diketahui akan melakukan pemrosesan ini sebelum menggunakan kata sandi yang ditambang. Dalam hal itu, modifikasi apa pun yang dapat diprediksi berbahaya, menurut seberapa jelas bagi penyerang.

Jika kata sandi Anda, katakanlah, awalan ditambah elemen acak, dan penyerang mencurigai ini, dan penyerang memiliki hash kata sandi Anda di situs lain, mereka bisa mendapatkan kata sandi Anda sedikit lebih cepat.

Anda dapat membuat kata sandi dengan membuat sesuatu yang dapat diprediksi, tetapi jika latihan ini menjadi sama sekali umum atau Anda menerima perhatian pribadi dari penyerang Anda, itu tidak akan menyelamatkan Anda. Dalam beberapa hal, kekuatan kata sandi adalah masalah arbitrase popularitas.

tl; dr tidak melakukan apa pun yang deterministik.

dhasenan
sumber