Saya telah melihat sekeliling dan tidak menemukan informasi tentang bagaimana Android mengelola untuk menyimpan kata sandi pada perangkat. Terutama kata sandi Gmail. Saya ingin mempelajari cara Android mengenkripsi dan menyimpan kata sandi? Kunci apa yang digunakan dan di mana kunci ini disimpan, dan algoritma enkripsi apa yang digunakannya.
security
gmail
password
gmail-password
asudhak
sumber
sumber
Jawaban:
Aplikasi resmi Gmail tidak menyimpan kata sandi di perangkat Anda. Kata sandi Anda 100% aman jika Anda menggunakan aplikasi ini.
Beginilah cara kerjanya: Sandi digunakan oleh server otentikasi Google untuk pertama kalinya SAJA. Setelah otentikasi pertama berhasil, sebuah
Auth Token
diunduh ke perangkat yang disimpan dalamaccounts.db
file sebagai teks biasa. Untuk semua login berikutnya, iniAuth Token
digunakan, BUKAN kata sandi asli Anda.Jadi, jika perangkat Anda dicuri, yang dapat diperoleh siapa pun adalah
Auth Token
yang menjadi tidak valid setelah Anda mengubah kata sandi. Jadi, Anda akan berada di komando utama.Untuk keamanan tertinggi, saya sarankan Anda untuk mengaktifkan
2-Factor Authentication
& membuatDevice Specific Password
untuk perangkat Anda. Setelah kehilangan perangkat, yang Anda butuhkan adalah menonaktifkan perangkat itu. Anda bahkan tidak perlu mengubah kata sandi utama.Catatan: Semua ini tidak benar jika Anda menggunakan aplikasi email pihak ketiga untuk Gmail yaitu. Aplikasi Email Stock, K-9 Mail dll. Protokol IMAP atau POP membutuhkan kata sandi asli untuk mengotentikasi pengguna setiap saat. Jadi, kata sandi biasa harus tersedia untuk aplikasi email sebelum mengirimnya ke server. Jadi, sebagian besar aplikasi email menyimpan kata sandi dalam teks biasa (hashing / enkripsi tidak berguna karena hashing / kunci enkripsi perlu disimpan secara lokal). Dalam hal ini, saya sarankan Anda untuk mengaktifkan
2-Factor Authentication
& membuatDevice Specific Password
untuk perangkat Anda. Setelah kehilangan perangkat, yang Anda butuhkan adalah menonaktifkan perangkat itu.Pembaruan:
Secara teknis, dimungkinkan untuk menyimpan kata sandi secara lokal dalam bentuk terenkripsi / hash tanpa menyimpan kunci enkripsi / kunci hashing dalam teks biasa secara lokal. Terima kasih kepada @JFSebastian karena menunjukkannya.
Sayangnya, implementasi untuk Android belum tersedia.Mulai ICS, Android menyediakan API KeyChain yang digunakannya suatu aplikasi dapat menyimpan kata sandi secara lokal dalam bentuk yang aman. Aplikasi menggunakan KeyChain API jarang terjadi, tetapi aplikasi stok email menggunakannya (Terima kasih kepada @wawa untuk info ini). Jadi, kata sandi Anda akan aman dengan aplikasi email stok selama layar Anda terkunci. Ingat, KeyChain tidak aman jika perangkat di-rooting dan tidak tersedia pada perangkat pra-ICS.sumber
Kata sandi Android yang digunakan dengan aplikasi Email bawaan disimpan dalam teks biasa di dalam Database SQLite. Ini berbeda dengan aplikasi Gmail , yang menggunakan Token Auth sebagaimana dijelaskan dalam jawaban Sachin Sekhar .
Untuk Jelly Bean, lokasi basis datanya adalah:
Lokasi di atas bervariasi dengan versi Android
Lokasi ini pada perangkat yang tidak di-rooting diamankan dan dilindungi oleh Sistem Operasi.
Pada perangkat yang di-rooting, pengguna secara teknis telah meretas keamanan mereka sendiri, dan bahkan jika itu tidak ada dalam teks biasa itu akan tetap sepele untuk mendekripsi karena kunci harus ada di suatu tempat pada perangkat untuk melakukannya.
Seorang anggota dari Tim Pengembangan Android memposting penjelasan bahwa hingga hari ini masih berlaku:
Selain itu, karena masalah ini tampaknya mengganggu banyak pengguna Android, Anda juga dapat mengikuti diskusi ini di Slashdot - Data Kata Sandi Android Disimpan Dalam Teks Biasa .
sumber
accounts.db
berkas ini dilindungi dari sedang dibaca oleh account selainsystem
.