Apakah aman menggunakan kode PIN untuk enkripsi?

19

Di Android 4.0 (Samsung Galaxy Nexus) ada kemungkinan untuk mengenkripsi ponsel. Saya menemukan ini tentang enkripsi pada Android 3.0, apakah algoritma yang sama digunakan pada Android 4? http://source.android.com/tech/encryption/android_crypto_implementation.html

Pertanyaan utama saya menyangkut penggunaan kode PIN untuk mendekripsi ponsel Anda. Mengapa saya terpaksa menggunakan kata sandi yang sama untuk membuka kunci layar saya dan mendekripsi ponsel saya? Pembatasan ini hanya akan memungkinkan saya untuk menggunakan kata sandi dengan kompleksitas rendah (seperti nomor PIN) karena akan sulit untuk menulis yaitu 17 karakter untuk membuka kunci ponsel saya untuk panggilan telepon sederhana.

Upaya kekerasan terhadap pembukaan kunci layar dapat dicegah yaitu dengan paksa reboot setiap 5 kali percobaan. Jadi tidak perlu ada kata sandi yang sangat kuat di sana, PIN mungkin cukup bagus.
Jenis perlindungan ini tidak dapat digunakan pada disk, sehingga ada kebutuhan yang lebih besar untuk kata sandi yang lebih kuat di sini. (Tidak banyak membantu bahwa entropi kata sandi telah meningkat karena akan ada sangat sedikit pengguna dengan kata sandi yang kompleks, sehingga penyerang hanya dapat mencoba sebagian besar kata sandi dengan kompleksitas rendah). Apa alasan di balik dipaksa menggunakan kata sandi yang sama untuk kedua fitur?

Christopher Käck
sumber
3
Ya, tetapi jika saya menggunakan kata sandi saya harus menggunakannya untuk membuka kunci layar saya. Tidak terlalu mudah untuk mengetikkan 17 karakter untuk memberikan panggilan cepat. Dengan demikian sebagian besar pengguna akan membuat karena dengan nomor PIN dan itu akan menjadi hal pertama yang seorang penyerang akan coba. Pendekatan yang lebih baik mungkin akan memungkinkan frasa sandi untuk enkripsi disk dan memungkinkan nomor PIN sederhana pada layar kunci. Untuk menghindari upaya bruteforce di layar kunci mungkin ada paksa reboot setelah 3 upaya gagal menghasilkan permintaan kata sandi.
Christopher Käck
1
Sayangnya, saya tidak tahu ada orang selain Google yang bisa memberi tahu Anda alasannya. Anda bisa mencoba pelacak bug Android untuk mengajukan permintaan fitur, mungkin. Ini sepertinya masuk akal untuk mengajukan di sana.
eldarerathis
2
Ya, menentang upaya masuk pada layar buka kunci, tetapi tidak menentang mendekripsi hard drive. Itulah yang ingin saya katakan, kunci layar tidak perlu selama enkripsi harddisk (yang perlu lebih dari 4 angka) dan dengan demikian orang tidak boleh dipaksa untuk menggunakan yang sama untuk keduanya.
Christopher Käck
1
+1, saya benar-benar bersama Anda @ ChristopherKäck Keputusan itu tidak masuk akal, para insinyur google seharusnya tahu lebih baik, berharap mereka segera memperbaikinya.
João Portela
1
@Christopher: tetapi Anda mendasarkan keputusan Anda pada premis yang salah, enkripsi pada disk AES 128-bit, bukan PIN 4 digit. Menentukan apakah skema ini aman atau secara inheren salah, bukan keahlian Android.SE.
Lie Ryan

Jawaban:

4

Saya pikir saya telah menemukan solusinya. Periksa tautan ini . Ini peretasan dan memerlukan ponsel untuk di-rooting, tetapi ini memungkinkan Anda untuk menggunakan kata sandi alfanumerik untuk enkripsi dan PIN untuk membuka kunci layar.

Oscar_6
sumber
1

Dengan menggunakan kata sandi / frasa vs pin empat digit, Anda meningkatkan keamanan perangkat Anda. Kuncinya adalah, bahkan dengan memiliki kata sandi empat karakter, Anda baru saja meningkatkan keamanan Anda karena dua alasan:

  • Anda telah menambah karakter yang tersedia.
  • Anda telah mengambil pengetahuan penyerang tentang panjang pw Anda.

Jika penyerang tahu kata sandi Anda adalah 14 karakter, kata sandi itu lebih aman daripada kata sandi empat atau delapan karakter, tetapi statistik tipikal menggunakan rentang (1-4, 1-8, 1-14) dan bukan kenyataan (yang hanya menghitung kombinasi satu panjang tersedia).

Saat ini, cukup CARA MUDAH untuk mengakses data ponsel Anda. Nenek Anda memiliki kemampuan untuk melakukannya (Jangan tersinggung oleh Anda atau keluarga Anda: P). Jadi, meskipun Anda benar bahwa ada batasan enkripsi ini, versi 'rusak' BANYAK lebih baik daripada data yang tidak dienkripsi saat ini dipraktikkan.

Terserah Anda untuk menilai seberapa sensitif dan pribadi data Anda, serta seberapa besar target Anda agar data tersebut dicuri. Memilih kata sandi yang tepat adalah tanggung jawab Anda setelah Anda menilai risiko ini.

earthmeLon
sumber
2
Ya, tapi saya merasa itu akan menjadi solusi sederhana untuk masalah memiliki kata sandi yang berbeda untuk membuka kunci layar dan untuk mendekripsi perangkat (seperti yang saya sebutkan di sini android.stackexchange.com/questions/17086/… ) karena mereka digunakan dalam berbagai senarios dan perlu memiliki atribut yang berbeda.
Christopher Käck
1

Jika Anda mencoba untuk memecahkan enkripsi disk, terlepas dari sisa perangkat dalam skenario di mana Anda memiliki perangkat yang dimatikan, atau hanya chip memori, maka ini adalah vektor serangan yang berbeda dari yang digunakan pada saat dihidupkan. perangkat yang dilindungi kata sandi di mana kunci dekripsi dapat disimpan dalam memori (mengarah pada kerentanan yang digunakan oleh hal-hal seperti pencuri kunci enkripsi Firewire yang lazim pada PC yang menggunakan perangkat lunak enkripsi FDE yang lebih lama dan bukan modul tipe TPM), atau layar buka kunci bisa menjadi kasar- terpaksa (atau memiliki kerentanannya sendiri).

Jika Anda menyerang disk secara langsung maka dalam hal ini Anda tidak menyerang PIN 4-digit atau kata sandi pengguna yang mengenkripsi perangkat, yang Anda serang adalah kunci AES 128 bit:

Kunci master adalah angka 128 bit yang dibuat dengan membaca dari / dev / urandom. Dienkripsi dengan hash kata sandi pengguna yang dibuat dengan fungsi PBKDF2 dari perpustakaan SSL. Footer juga berisi garam acak (juga dibaca dari / dev / urandom) yang digunakan untuk menambahkan entropi ke hash dari PBKDF2, dan mencegah serangan tabel pelangi pada kata sandi.

Dari titik 4 di bawah " Mengaktifkan enkripsi pada perangkat " dari Notes tentang implementasi enkripsi di Android 3.0 yang Anda tautkan.

(akan menjadi komentar tetapi berakhir terlalu lama)

GATambar
sumber
1
Terima kasih atas komentar yang baik ini! Satu hal; saya tidak mencari kata sandi pengguna (yang kemungkinan besar adalah pin 4 digit, karena Anda dipaksa untuk berbagi kunci dengan membuka kunci layar dan hal lain akan sulit untuk mengetik untuk membuat panggilan telepon) untuk mendekripsi 128 bit Kunci AES? (Alih-alih mencari kunci secara langsung). Jika saya hash semua 10.000 pin dengan fungsi + garam PBKDF2, bukankah hanya ada 10.000 upaya dekripsi untuk saya coba?
Christopher Käck
@Melpomene " Serangan tabel pelangi " yang mereka bicarakan adalah tempat Anda melakukan pra-enkripsi semua 10.000 kombinasi untuk melihat seperti apa bentuknya yang terenkripsi dan kemudian membandingkan apa yang ada di disk dengan apa yang ada di tabel pelangi Anda. " Garam acak " adalah yang digunakan untuk mencegah hal ini dengan membuat lebih dari 10.000 kombinasi yang harus Anda tebak (kecuali Anda berhasil mengerjakan "garam" terlebih dahulu).
Diambil
1
Pelangi adalah cara cerdas menyimpan kata sandi terenkripsi ya. Dan jika garam digunakan, mungkin perlu dibuat khusus hanya untuk memecahkan kata sandi dengan garam itu. Ini bukan operasi yang sangat sulit ketika hanya ada 10.000 kata sandi untuk dipilih. Perhatikan bahwa Garam selalu dianggap diketahui oleh penyerang (karena tampaknya dibaca dari / dev / urandom dalam dokumen, ini kemungkinan besar disimpan dalam teks yang jelas atau dienkripsi dengan kata sandi pengguna). Bagaimanapun kata sandi pengguna adalah tautan yang lemah.
Christopher Käck
Tetapi saya bahkan tidak perlu membuat rainbowtable karena menyimpan (atau menghitung) 10.000 hash tidak terlalu sulit di memori (prosesor) saya.
Christopher Käck
Menggunakan fungsi derivasi kunci seperti PBKDF2 memang tampak seperti kabar baik, tetapi pin 4 digit masih hanya 10.000 kombinasi yang mungkin.
João Portela
1

Salah satu solusi yang mungkin untuk ini adalah dengan menggunakan whispercore , tetapi mengharuskan Anda untuk melakukan root pada perangkat Anda.

Saya juga telah mengisi permintaan fitur di halaman proyek android .

João Portela
sumber
0

Jika Anda telah mengaktifkan penghapusan jarak jauh (dengan asumsi masih berfungsi dengan perangkat terenkripsi), PIN mungkin tidak mengamankan perangkat Anda selamanya, tetapi mungkin cukup lama untuk memberi Anda waktu untuk menghapus perangkat Anda.

Kesempatan
sumber
2
Masalahnya adalah PIN pendek hanya dapat mengamankan perangkat saat diaktifkan. Oleh karena itu, mematikan perangkat yang dicuri mencegah perangkat terhapus dan selain itu PIN dapat rusak dalam serangan brute-force offline. Karenanya PIN pendek tidak membantu Anda dalam situasi ini.
Robert
@ Robert, saya tidak terlalu terbiasa dengan cara kerja lap jarak jauh. Jika dilakukan melalui Exchange, apakah ponsel harus berada pada saat yang sama ketika perintah penghapusan jarak jauh dikeluarkan? Pikir saya adalah bahwa jika saya dapat mengeluarkan penghapusan jarak jauh dalam waktu 30 menit atau lebih dari kehilangan telepon saya itu cukup baik bagi saya, tetapi saya tidak memiliki data keuangan, perhatian utama saya adalah email pekerjaan GMail saya.
Peluang
2
Telepon harus on dan on-line beberapa saat setelah Anda mengeluarkan perintah penghapusan jarak jauh. Jika ponsel dimatikan (dan tetap mati) perintah penghapusan tidak berguna.
Robert