Analisis Keamanan Password Manager

Artikel ini merupakan tulisan ulang dari tugas kuliah EL5215 Keamanan Perangkat Lunak, yaitu membuat makalah. Topik dari makalah adalah keamanan password manager, dengan judul Analisis Keamanan Password Manager: Studi Kasus pada LastPass. Tugas ini merupakan tugas akhir dengan batas waktu pengumpulan 17 Mei 2017.

Abstrak

Password merupakan salah satu hal mendasar pada keamanan informasi. Password biasanya digunakan sebagai pertahanan awal pada suatu informasi elektronik, jaringan, server, devais, akun internet, database, dan file-file. Manajemen password yang aman berarti menerapkan penggunaan password yang unik/berbeda untuk masing-masing akun. Password harus panjang dan kompleks, terdiri atas angka-angka, huruf besar mapun kecil, dan karakter khusus. Selain itu, sebaiknya bukan berupa kata, atau nama dari apapun yang berkaitan dengan pemilik akun. Lalu, perlu penggantian password secara berkala. Praktik penggunaan password yang aman berarti menggunakan banyak password yang sangat sulit ditebak. Password manager merupakan salah satu jawaban untuk permasalahan praktik penggunaan password yang aman. Aplikasi tersebut dapat membantu user dalam mengatur username dan password, serta informasi pribadi lainnya (misalnya nomor kartu kredit).

LastPass merupakan salah satu password manager online yang populer yang memiliki banyak pengguna. LastPass menggunakan password master untuk melakukan enkripsi atau mengamankan proses penggunaan password manager. LastPass menggunakan versi PBKDF2 yang lebih kuat. Terdapat beberapa kerentanan pada password manager berbasis online, yaitu: kerentanan bookmarklet, kerentanan web klasik, kerentanan otorisasi, dan kerentanan user interface. Dari empat kerentanan tersebut, hanya tiga yang berada pada Lastpass, yaitu: kerentanan bookmarklet, kerentanan web klasik, dan kerentanan user interface.

Kata kunci: password, password manager, LastPass, kerentanan

1. Pendahuluan

1.1 Latar Belakang

1.1.1 Password Manager

Berkembangnya teknologi berimplikasi pada kebiasaan sehari-hari. Aktivitas yang biasa dilakukan secara tatap muka atau bertemu fisik, kini dapat dilakukan tanpa harus bertemu fisik dengan tidak menghilangkan inti dari aktivitas tersebut. Misalnya, membeli barang atau jasa dapat dilakukan secara online, berikut proses pembayarannya. Hal tersebut mengakibatkan adanya kebutuhan akun online untuk masing-masing keperluan. Oleh sebab itu, setiap individu mengharuskan dirinya untuk memiliki beberapa akun online, seperti email, media sosial, bank, toko online, dsb.

Setiap akun online biasanya membutuhkan username dan password untuk proses autentikasi. Namun, untuk menjaga keamanan setiap akun yang memiliki tingkat prioritas yang berbeda, maka setiap akun memiliki username dan password yang berbeda. Biasanya, akun yang memiliki tingkat krusial yang tinggi diberikan password yang sangat rumit daripada akun lainnya yang dianggap tidak terlalu penting. Perbedaan tersebut memiliki dampak positif bagi pengguna akun online, yaitu mengecilnya risiko pencurian informasi tersebut. Namun, ada juga kelemahannya, yaitu pengguna akan memiliki kesulitan jika harus mengingat berbagai password yang rumit. Oleh karena itu, perlu suatu wadah untuk menyimpan berbagai informasi tersebut, misalnya password manager.

1.1.2 Jenis Password Manager

Terdapat berbagai jenis password manager, yaitu browser-based, online, maupun offline. Browser-based berarti password manager tersebut menyimpan username dan password pengguna ketika pengguna menggunakan browser. Biasanya proses penyimpanan tersebut berfungsi untuk mempermudah pengguna ketika hendak login pada akun online, misalnya email. Password manager berbasis online berarti password manager tersebut menyimpan username dan password pengguna secara online. Biasanya password manager jenis ini bersifat sebagai plug-in atau extension pada suatu browser. Password manager berbasis offline berarti password manager tersebut bersifat sebagai software di suatu sistem operasi dan menyimpan informasi username atau password secara offline. Dari ketiga jenis password manager tersebut, terdapat kelebihan dan kekurangan.

Pada makalah ini, akan dibahas salah satu password manager berbasis online yang sering dipakai oleh pengguna akun internet, yaitu LastPass. Pembahasan tersebut meliputi cara kerja password manager tersebut, menganalisis keamanannya, serta memberikan saran dalam penggunaan password manager tersebut untuk memaksimalkan perlindungan data pengguna terhadap serangan yang berbahaya.

1.2 Struktur Makalah

Makalah ini terdiri atas lima bagian dengan penjelasan sebagai berikut.

  • BAB 1 PENDAHULUAN

    Bagian ini menjelaskan latar belakang pembahasan topik analisis password manager.

  • BAB 2 TINJAUAN PUSTAKA

    Bagian ini memperkenalkan konsep-konsep dasar yang digunakan pada makalah ini.

  • BAB 3 KERENTANAN PASSWORD MANAGER BERBASIS ONLINE

    Bagian ini berisi penjelasan tentang kerentanan password manager berbasis online.

  • BAB 4 ANALISIS KEAMANAN PADA LASTPASS

    Bagian ini membahas analisis keamanan pada salah satu password manager, LastPass.

  • BAB 5 KESIMPULAN

    Bagian ini memaparkan kesimpulan berdasarkan penjelasan pada bab-bab sebelumnya.

2. Tinjauan Pustaka

2.1 Password

Password merupakan salah satu hal mendasar pada keamanan informasi. [1]⁠ Password biasanya digunakan sebagai pertahanan awal pada suatu informasi elektronik, jaringan, server, devais, akun internet, database, dan file-file. Password juga merupakan salah satu faktor yang menjadi akar munculnya berbagai pelanggaran siber (cyber breach). Pada tahun 2014, dua pertiga dari pelanggaran tersebut merupakan penyerangan yang dilakukan dengan menggunakan kredensial hasil curian atau yang sudah tidak digunakan. [2]⁠ Selain itu, mayoritas pengguna internet masih tidak mengikuti praktik manajemen password yang aman. [3]⁠

2.1.1 Manajemen Password

Menurut Standridge [1]⁠, manajemen password yang aman berarti menerapkan penggunaan password yang unik/berbeda untuk masing-masing akun. Password harus panjang dan kompleks, terdiri atas angka-angka, huruf besar mapun kecil, dan karakter khusus. Selain itu, sebaiknya bukan berupa kata, atau nama dari apapun yang berkaitan dengan pemilik akun. Lalu, perlu penggantian password secara berkala.

Terdapat dua metode manajemen password, yaitu manual dan menggunakan aplikasi. Contoh manajemen password manual adalah sebagai berikut.

  1. Menggunakan buku catatan atau kertas.

  2. Menyimpan password yang tidak dienkripsi pada suatu file.

Manajemen Password Manual

Manajemen password manual tersebut memiliki risiko buruk yang besar jika tempat penyimpanan tersebut dicuri atau disalahgunakan oleh pihak lain yang tidak bertanggung jawab. Oleh karena itu, ada alternatif manajemen password yang lebih aman dibanding dengan manajemen password manual, yaitu manajemen password menggunakan aplikasi. Terdapat beberapa fitur yang biasanya ada pada aplikasi password manager sebagai berikut.

  1. Pembuatan password yang unik (unique)

  2. Pembuatan password yang kuat (strong)

  3. Penyimpanan password yang aman

  4. Bookmark pada website

  5. Login otomatis ke suatu website

  6. Mengizinkan penambahan informasi untuk disimpan di database password

  7. Form auto-fill

  8. Sinkronisasi password antar devais

  9. Menyediakan akses ke password melalui devais

  10. Laporan tentang kekuatan password

  11. Ekspor password dan ID pengguna

  12. Autentikasi muti-faktor

  13. Password sharing

2.1.2 Praktik Penggunaan Password

Praktik penggunaan password yang aman berarti menggunakan banyak password yang sangat sulit ditebak. Namun, pada umumnya orang-orang sulit untuk mengingat banyak password yang rumit. Menurut survei yang dilakukan oleh Google [4]⁠, lebih dari lima puluh persen pengguna melaporkan bahwa mereka bergantung pada ingatannya sendiri untuk menyimpan password. Fakta bahwa mereka hanya mengandalkan ingatan merupakan indikasi yang jelas bahwa mereka tidak mengikuti praktik penggunaan password yang aman. Dengan kata lain, jika mereka dapat mengingat semua password, berarti password yang digunakan sederhana, password rumit namun digunakan pada beberapa akun berbeda, atau mungkin keduanya.

2.2 Password Manager

Aplikasi password manager merupakan salah satu jawaban untuk permasalahan praktik penggunaan password yang aman. Aplikasi tersebut dapat membantu user dalam mengatur username dan password, serta informasi pribadi lainnya (misalnya nomor kartu kredit). Beberapa penyedia password manager bahkan dapat otomatis mengisi username dan password, atau menghasilkan password acak untuk akun internet yang baru. Biasanya password yang disimpan terenkripsi di perangkat pengguna atau cloud penyedia password manager. Selain itu, memungkinkan juga untuk sinkronisasi antar beberapa perangkat karena penyimpanan password di cloud. Biasanya untuk melihat database kredensial, pengguna harus memasukkan password master yang telah dibuat di awal.

2.3 LastPass

LastPass [5]⁠ merupakan salah satu password manager online yang populer yang memiliki banyak pengguna. Selain itu, LastPass juga telah memenangkan penghargaan sebagai password manager terbaik. [5]⁠[7]⁠

2.3.1 Enkripsi pada LastPass

LastPass menggunakan password master untuk melakukan enkripsi atau mengamankan proses penggunaan password manager. Berdasarkan helpdesk pada situs resmi LastPass [8]⁠, untuk meningkatkan keamanan password master, LastPass menggunakan versi Password-Based Key Derivation Function atau PBKDF21 yang lebih kuat. Pada dasarnya, PBKDF2 merupakan “algoritma penguatan password” yang membuat sulit bagi komputer untuk memeriksa bahwa setiap suatu password merupakan password master yang benar atau tidak selama serangan bruteforce.

2.3.2 Autentikasi pada LastPass

Password master juga digunakan untuk menurunkan kunci autentikasi. Kunci autentikasi, seperti namanya, digunakan untuk mengautentikasi pengguna ketika melakukan login ke Lastpass. Untuk menurunkan kunci autentikasi, kunci enkripsi yang diturunkan mengalami tambahan satu putaran PBKDF2. Rumus untuk tambahan putaran enkripsi ini adalah menggunakan password master sebagai nilai salt dan kunci enkripsi sebagai nilai password.

2.4 Penerapan PBKDF2 pada Lastpass

Umumnya PBKDF2 menggunakan algoritma SHA-1, algoritma hashing yang aman dan cepat. Namun, kecepatannya tersebut menjadi kelemahan yang menyebabkan serangan brute-force dapat dilakukan lebih cepat. Terlebih, saat makalah ini ditulis2, Marc Stevens dkk. [9]⁠ telah berhasil membongkar keamanan SHA-1.

PBKDF2 memerlukan seed, salt, jumlah iterasi sebanyak x kali, algoritma hash, dan plaintext dari password master untuk diturunkan menjadi kunci. [1]⁠ LastPass menggunakan SHA-256 sebagai algoritma hash, ID pengguna sebagai salt, dan bilangan acak (random number) sebagai nilai seed. LastPass memilih menggunakan SHA-256 karena memberikan perlindungan yang lebih baik terhadap serangan brute-force walaupun lebih lambat dibanding dengan SHA-1.

2.4.1 Penurunan Kunci

Proses penurunan kunci dilakukan di sisi pengguna, yaitu di drive lokal milik pengguna. Kunci yang diturunkan terakhir merupakan kunci simetris yang digunakan untuk melakukan enkripsi dan dekripsi password vault. LastPass juga melakukan sejumlah besar putaran PBKDF2 pada sisi server untuk melakukan enkripsi kunci autentikasi dari penyimpanan pada server. Namun, jumlah spesifik dari iterasi tersebut tidak dipublikasikan dengan alasan keamanan. Implementasi PBKDF2 pada sisi klien dan sisi server dilakukan untuk memastikan bahwa kedua potongan data3 terlindungi secara menyeluruh.

Pada LastPass, cara untuk melihat jumlah putaran yang diterapkan pada proses penurunan kunci adalah sebagai berikut.

  1. Jika login ke LastPass, buka LastPass vault dari ikon LastPass.

  2. Klik pada tulisan Account Settings.

  3. Kemudian, klik Show Advanced Settings (lihat Gambar 1).

  4. Lalu, scroll ke bawah dan temukan tulisan Password Iterations (lihat Gambar 2).

Gambar 1. Tampilan tombol Show Advanced Settings
Gambar 2. Tampilan jumlah iterasi, Password Iterations = 5000 (default)

Secara default, nilai x yang digunakan LastPass adalah 5000. LastPass mengizinkan pengguna mengubah jumlah putaran yang digunakan ketika proses enkripsi pada sisi pengguna. 5000 putaran memberikan keseimbangan yang baik antara peningkatan keamanan dan ketidaknyamanan yang diakibatkan oleh jeda yang lama ketika login.

Jika dibandingkan dengan jumlah putaran pada penyedia password manager yang lain, didapat bahwa 5000 putaran merupakan jumlah yang sedikit. Namun, perbandingan tersebut tidak dapat dilakukan karena penyedia yang lain mungkin menggunakan SHA-1 yang komputasinya lebih sedikit dibanding SHA-256. Dengan kata lain, SHA-256 merupakan proses yang lebih intensif sehingga jumlah putaran yang lebih sedikit tetapi memiliki tingkat keamanan yang lebih tinggi terhadap serangan brute-force. Pada penggunaannya, jumlah putaran tersebut hanya berdampakan pada proses login ke akun LastPass. Setelah pengguna mendapatkan akses, implementasi dari perubahan tersebut tidak mempengaruhi proses browsing pengguna.

3. Kerentanan Password Manager Berbasis Online

Perbedaan utama antara password manager berbasis online dan offline adalah kebergantungannya terhadap web browser. Password manager berbasis online menyimpan kredensial di cloud. Pengguna melakukan login ke password manager untuk mengambil kredensial tersebut. Akses terhadap kredensial yang disimpan dilakukan melalui extension, website, atau bookmarklet pada browser.

Berdasarkan analisis yang dilakukan oleh Zhiwei Li dkk. [10]⁠, didapat ada empat masalah utama pada password manager berbasis online, yaitu:

  1. kerentanan bookmarklet,

  2. kerentanan web klasik,

  3. kerentanan otorisasi, dan

  4. kerentanan user interface.

Penjelasan keempat kerentanan tersebut ada pada subbab 3.1 sampai dengan 3.4.

3.1 Kerentanan Bookmarklet

Untuk mengisi password pada suatu alamat (misalnya dropbox.com), password manager perlu berhasil mengautentikasi pengguna, men-download kredensial, mendekripsi kredensial yang di-download, mengautentikasi aplikasi web, dan (akhirnya) melakukan login. Melakukan semua ini di lingkungan scripting situs yang tidak dipercaya (seperti yang dilakukan bookmarklet) merupakan hal yang berisiko. Bahkan, tiga dari lima password manager (lihat Tabel 1) dari hasil penelitian Zhiwei Li dkk. [10]⁠ yang memberikan dukungan bookmarklet, semuanya rentan terhadap pencurian kredensial melalui serangan linkability.

Tabel 1. Daftar passwor manager yang diteliti oleh Zhiwei Li dkk. [10]⁠

3.2 Kerentanan Web

Pengembang password manager berbasis web perlu memahami model keamanan web. Misalnya, browser membagi token otentikasi, seperti cookies. Kerentanan web dapat mengarah ke serangan seperti crosssite request permission (CSRF). Aplikasi atau extension yang berjalan di browser perlu membersihkan semua masukan yang tidak terpercaya karena pembersihan yang tidak cukup dapat menyebabkan serangan cross-site scripting.

3.3 Kerentanan Otorisasi

Berbagi kredensial dapat meningkatkan kompleksitas pengamanan password manager. Jika sebelumnya masing-masing kredensial hanya dapat diakses oleh pemiliknya, maka sekarang setiap kredensial perlu daftar kontrol akses (access control list) karena kredensial tersebut dapat dibagikan ke selain pemilik otoritas utama. Sebuah password manager perlu memastikan bahwa semua tindakan yang berkaitan dengan berbagi atau perubahan kredensial sepenuhnya terotorisasi dengan jelas. Autentikasi yang membingungkan ketika proses otorisasi merupakan salah satu kerentanan keamanan yang umum.

3.4 Kerentanan User Interface

Keuntungan utama dari password manager adalah kemampuannya dalam mengurangi serangan phishing. Pengguna tidak perlu menghafal password-password untuk setiap aplikasi web, melainkan bergantung pada password manager untuk mendeteksi aplikasi dan mengisi password dengan tepat. Hal tersebut memungkinkan pengguna terlindung dari serangan phishing karena password manager hanya melihat URL yang telah didaftarkan, kemudian mengisi kredensial milik pengguna.

Namun begitu, hal tersebut juga perlu dipertanyakan jika password manager sendiri rentan terhadap serangan phishing. Lebih buruk lagi, dalam kasus password manager, serangan phishing dapat membuka semua kredensial pengguna. Dengan demikian, Zhiwei dkk. [10] percaya bahwa hal tersebut mengharuskan password manager mengambil tindakan pencegahan ekstra terhadap serangan phishing.

Sebagai contoh, pengguna mengklik bookmarklet suatu password manajer namun pengguna tidak masuk ke password manager. Kemudian, pengguna diminta untuk login melalui iframe di mana isi iframe tersebut bukan merupakan tampilan asli dari password manager. Karena pengguna tidak dapat melihat URL iframe tersebut, tidak ada cara bagi pengguna untuk mengidentifikasi apakah iframe tersebut benar-benar milik password manager atau bukan, sehingga secara tidak sadar pengguna memberikan kredensialnya kepada penyerang.

4. Analisis Keamanan pada LastPass

Berdasarkan pengamatan, analisis, dan pengujian penetrasi yang dilakukan oleh berbagai pakar keamananan (security expert), didapat bahwa LastPass memiliki beberapa kerentanan. Misalnya, Zhiwei Li dkk. melakukan analisis keamanan LastPass yang kemudian dipresentasikan pada Proceedings of the 23rd USENIX Security Symposium pada Agustus 2014. [11]⁠ Mereka melakukan analisis terhadap lima password manager berbasis online dengan empat hal yang menjadi perhatian, yaitu kerentanan bookmarklet, classic web, authorization, dan user interface. Dari kelima password manager yang dianalisis, salah satunya adalah LastPass. Berdasarkan penelitian tersebut, didapat ada tiga dari empat kerentanan tersebut yang terjadi pada LastPass. Ketiga kerentanan tersebut adalah kerentanan bookmarklet, web, dan user interface, yang akan dibahas pada subbab 4.1, 4.2, dan 4.3.

4.1 Kerentanan Bookmarklet pada LastPass

LastPass menyimpan database kredensial pada server lastpass.com yang dienkripsi menggunakan master_key. master_key merupakan kunci simetris 256-bit yang berasal dari username master dan password master pengguna. Sisi pengguna LastPass tidak pernah mengirim password master atau kunci master ke server LastPass. Pada saat yang sama, karena enkripsi kredensial LastPass, bookmarklet perlu menyertakan master_key untuk mendekripsi database kredensial. LastPass juga menyediakan kemampuan untuk mencabut (revoke) bookmarklet yang dibuat sebelumnya.

4.1.1 Instalasi Bookmarklet

Misalkan seorang pengguna, Alice, ingin menginstal bookmarklet, maka ia perlu membuat link khusus melalui halaman pengaturan LastPass-nya. Atas permintaan Alice, kode halaman LastPass menciptakan nilai acak _LASTPASS_RAND baru dan mengenkripsi master_key bersama dengannya. Semua hal tersebut dilakukan di browser Alice.

Server LastPass kemudian menyimpan kunci master (disebut key_rand_encrypted) dan sebuah identifier h secara bersamaan di database kredensial Alice. Halaman tersebut kemudian menghasilkan potongan JavaScript mengandung _LASTPASS_RAND dan h di mana Alice dapat menyimpannya sebagai bookmark. Desain ini memungkinkan Alice mencabut bookmarklet tersebut di masa yang akan dengan hanya menghapusnya.

Gambar 3. LastPass: Login otomatis menggunakan bookmarklet. u adalah domain yang diklik oleh Alice pada bookmarklet. [10]⁠

4.1.2 Penggunaan Bookmarklet

Gambar 3 menggambarkan bagaimana Alice menggunakan bookmarklet LastPass untuk masuk ke dropbox.com. Pada titik masuk Dropbox, Alice mengklik bookmarklet LastPass-nya yang mengandung token _LASTPASS_RAND dan h. Kemudian, kode bookmarklet memeriksa domain halaman dan menambahkan elemen script ke halaman tersebut yang berasal dari lastpass.com. Permintaan untuk elemen script (Langkah 2 pada Gambar 3) dilakukan dengan mengirimkan h dan u, di mana u merupakan alamat aplikasi web (dropbox.com). LastPass kemudian melakukan pemeriksaan, jika parameter valid (Alice belum mencabut bookmarklet-nya), LastPast memberi respon dengan file JavaScript yang berisi parameter tambahan ref dan rh.

Selanjutnya, file JavaScript yang baru menciptakan iframe menggunakan empat parameter: ref, rh, h, dan u. Iframe tersebut berisi script yang berada di lastpass.com/bml.php?u=dropbox.com. Ketika download, kunci master yang terenkripsi key_rand_encrypted dan kredensial untuk dropbox.com dienkripsi dengan kunci master. Kemudian, iframe menerima nilai bookmarklet _LASTPASS_RAND melalui panggilan postMessage, mendekripsi kredensial dropbox.com, dan mengirimnya kembali.

4.1.3 Kerentanan

Link bml.php?u=dropbox.com (Langkah 6 pada Gambar 3) merupakan link yang dapat diprediksi dan berisi informasi sensitif. Hal tersebut karena dapat memberikan kunci master terenkripsi key_rand_encrypted dan kredensial untuk dropbox.com. Oleh karena itu, memungkinkan penyerang untuk memasukkan script tertentu dan menjalankannya di halaman web penyerang.

Gambar 4. Serangan pada auto-login LastPass berbasis bookmarklet. Nilai rh, h adalah acak; u dan ref mengidentifikasikan website target dari Mallory. [10]⁠

4.1.4 Serangan Bookmarklet

Gambar 4 mengilustrasikan bagaimana berbahayanya aplikasi web evil.com karena dapat mencuri kredensial Alice (untuk dropbox.com). Ketika Alice mengunjungi situs penyerang evil.com dan mengklik bookmarklet pada LastPass, penyerang menggunakan salah satu dari sejumlah teknik membajak [12]⁠ [13]⁠ dan mengekstrak nilai h dan _LASTPASS_RAND. Kemudian, penyerang meniru Langkah 6 dari Gambar 3 (Langkah 2 pada Gambar 4) dengan menulis tag <script> dengan src ditetapkan untuk lastpass.com/bml.php?u=dropbox.com dan menambahkan parameter rh (string panjang 64), r (nomor), dan h (dari bookmarklet). Script yang telah diunduh berjalan pada halaman penyerang. Hal tersebut mencakup semua informasi yang dibutuhkan untuk mendekripsi kredensial untuk dropbox.com (terutama key_rand_encrypted). Kemudian, penyerang dapat mengulang serangan tersebut untuk mencuri semua kredensial Alice.

4.2 Kerentanan Web pada LastPass

One Time Password (OTP) merupakan salah satu fitur dari LastPass yang memungkinkan pengguna untuk menghasilkan kode autentikasi untuk akun master yang hanya berlaku satu kali penggunaan. Seorang pengguna dapat menggunakan OTP untuk mencegah orang lain mendapatkan akses ke akun LastPass-nya. [14]⁠

4.2.1 Menghasilkan OTP

Gambar 5 menggambarkan bagaimana Alice menciptakan OTP. Hal tersebut dimulai dengan Alice menciptakan string otp secara lokal di browser-nya. Berikutnya, Alice menghitung

h = hash(hash(alice|otp)|otp)

dengan username LastPass-nya, alice. LastPass menggunakan h untuk mengautentikasi Alice tanpa harus mengetahui nilai otp. Kemudian, Alice mengenkripsi kunci master-nya dengan

hash(alice|otp)

Alice mengirimkan h dan kunci master terenkripsi (rand_encrypted_key) ke LastPass. Berdasarkan hal tersebut, dapat dilihat bahwa server LastPass tidak pernah melihat nilai yang dihasilkan OTP atau kunci master Alice. Kemudian, LastPass menyimpannya.

Gambar 5. Pembuatan OTP LastPass. Mencatat absendari setiap token CSRF pada request di Langkah 1. [10]⁠

4.2.2 Menggunakan OTP

Untuk sign in dengan OTP (lihat Gambar 6), Alice menghitung ulang h, kemudian mengirimkannya ke LastPass bersama dengan username LastPass miliknya. LastPass memeriksa dan mencocokkannya dengan data yang pernah disimpan. Kemudian, Alice mendekripsi kunci master terenkripsi rand_encrypted_key untuk memulihkan kunci masternya.

Gambar 6. Penggunaan OTP.rand_encrypted_key merupakan kunci master terenkripsi dengan hash(alice|otp). [10]⁠

4.2.3 Kerentanan

Zhiwei Li dkk. menemukan bahwa permintaan yang digunakan untuk mengatur OTP (Langkah 1 pada Gambar 5) rentan terhadap serangan CSRF. Server LastPass mengautentikasi Alice (pada Langkah 1) hanya dengan cookie-nya. Karena LastPass tidak mengetahui OTP atau kunci master, maka LastPass tidak dapat memvalidasi apakah nilai rand_encrypted_key sesuai dengan nilai yang dienkripsi dari kunci master.

4.2.4 Serangan OTP pada LastPass

Misalkan, seorang penyerang, Mallory, yang mengetahui username LastPass milik Alice, dapat masuk dengan string otp’ dan menggunakan algoritma yang sama seperti yang di atas, menghasilkan nilai palsu h’ dan rand_fake_key dengan kunci master yang dibuat-buat. Pada pengiriman permintaan CSRF POST, LastPass akan menyimpan h’ sebagai autentikasi Alice.

Mallory kemudian dapat menggunakan otp’ untuk log-in ke LastPass. Tentu saja, mendekripsi nilai rand_fake_key tidak akan memberikan Mallory kunci master Alice yang sebenarnya. Meskipun demikian, menggunakan serangan CSRF ini, Mallory memperoleh database password milik Alice yang terenkripsi.

4.3 Kerentanan User Interface pada LastPass

Pada pembahasan kerentanan bookmarklet (lihat subbab 4.1), Zhiwei Li dkk. fokus pada perilaku password manager ketika pengguna sudah terautentikasi pada password manager. Jika pengguna tidak terautentikasi pada password manager, maka pengguna perlu login ke akun masternya. Hal ini memberikan potensi phishing.

4.3.1 Serangan Phishing pada LastPass

Dalam kasus bookmarklet LastPass, jika Alice belum login, bookmarklet menunjukkan pesan yang meminta pengguna untuk login, bersamaan dengan link yang membuka halaman login LastPass dalam bentuk popup. Desain tersebut setidaknya memungkinkan browser untuk menampilkan URL dari popup. Namun begitu, seorang penyerang, Mallory, dapat merusak bookmarklet LastPass dan menunjukkan pesan yang dikendalikan oleh penyerang. Hal penting pada tahap ini adalah Mallory mengelabui Alice agar memasukkan kredensial LastPass-nya di halaman yang dikendalikan oleh penyerang.

Tahapan penyerangannya adalah Mallory membuat link halaman login LastPass yang normal, lalu ketika Alice mengklik itu, jendela baru muncul pada URL masuk LastPass. Alice dapat memeriksa URL bar dan memverifikasi bahwa lokasinya adalah https://lastpass.com. Setelah melakukan penundaan agar Alice dapat memeriksa URL, Mallory menavigasi popup ke halaman berbahaya yang terlihat identik dengan halaman login LastPass.

Normalnya, Alice akan menyadari ada navigasi ke evil.com. Mallory dapat mengurangi visibilitas navigasi ini. Mallory juga dapat menggunakan fitur modern seperti pengarah link prerender untuk menyembunyikan navigasi. URI perlu terlihat sama seperti halaman login LastPass tetapi dengan target pengiriman formulir masuk diatur ke evil.com. Zhiwei Li dkk. menemukan bahwa serangan ini sangat efektif pada Firefox untuk Android karena hanya menunjukkan judul halaman, bukan URL.

5. Kesimpulan

Berdasarkan penjelasan pada BAB 2 sampai dengan BAB 4 didapat beberapa kesimpulan sebagai berikut.

  • Password merupakan salah satu hal mendasar pada keamanan informasi. Password biasanya digunakan sebagai pertahanan awal pada suatu informasi elektronik, jaringan, server, devais, akun internet, database, dan file-file.

  • Manajemen password yang aman berarti menerapkan penggunaan password yang unik/berbeda untuk masing-masing akun. Password harus panjang dan kompleks, terdiri atas angka-angka, huruf besar mapun kecil, dan karakter khusus. Selain itu, sebaiknya bukan berupa kata, atau nama dari apapun yang berkaitan dengan pemilik akun. Lalu, perlu penggantian password secara berkala.

  • Praktik penggunaan password yang aman berarti menggunakan banyak password yang sangat sulit ditebak.

  • Password manager merupakan salah satu jawaban untuk permasalahan praktik penggunaan password yang aman. Aplikasi tersebut dapat membantu user dalam mengatur username dan password, serta informasi pribadi lainnya (misalnya nomor kartu kredit).

  • LastPass merupakan salah satu password manager online yang populer yang memiliki banyak pengguna. LastPass menggunakan password master untuk melakukan enkripsi atau mengamankan proses penggunaan password manager. LastPass menggunakan versi PBKDF2 yang lebih kuat.

  • Terdapat beberapa kerentanan pada password manager berbasis online.

    • kerentanan bookmarklet,

    • kerentanan web klasik,

    • kerentanan otorisasi, dan

    • kerentanan user interface.

  • Dari empat kerentanan tersebut, hanya tiga yang berada pada Lastpass, yaitu:

    • kerentanan bookmarklet,

    • kerentanan web klasik, dan

    • kerentanan user interface.

Daftar Pustaka

[1] S. Standridge, “Password Management Applications and Practices,” 2016.

[2] K. J. Higgins, “Stolen Passwords Used In Most Data Breaches,” Dark Reading, 2014. [Online]. Available: http://www.darkreading.com/stolen-passwords-used-in- most-data-breaches/d/d-id/1204615.

[3] N. J. Rubenking, “Survey: Hardly Anybody Uses a Password Manager,” PCMag Asia, 2015. [Online]. Available: http://sea.pcmag.com/opinion/1902/survey-hardly-anybody-uses-a-password-manager.

[4] I. Ion, R. Reeder, and S. Consolvo, “‘… no one can hack my mind’: Comparing Expert and Non-Expert Security Practices,” Symp. Usable Priv. Secur., pp. 327–346, 2015.

[5] LastPass, “LastPass.” [Online]. Available: https://www.lastpass.com/. [Accessed: 28-Feb-2017].

[6] N. J. Rubenking, “The Best Password Managers of 2017,” 2017. [Online]. Available: http://www.pcmag.com/article2/0,2817,2407168,00.asp#.

[7] J. Rotter, “The best password manager.” [Online]. Available: http://download.cnet.com/blog/download-blog/best-password-manager/. [Accessed: 28-Feb-2017].

[8] LastPass, “Password Iterations (PBKDF2).” [Online]. Available: https://helpdesk.lastpass.com/account-settings/general/password-iterations-pbkdf2/. [Accessed: 28-Feb-2017].

[9] M. Stevens, E. Bursztein, P. Karpman, A. Albertini, and Y. Markov, “The first collision for full SHA-1,” pp. 1–23, 2017.

[10] Z. Li, W. He, D. Akhawe, and D. Song, “The Emperor’s New Password Manager: Security Analysis of Web-based Password Managers,” 2014.

[11] Z. Li, W. He, D. Akhawe, and D. Song, “The Emperor’s New Password Manager: Security Analysis of Web-based Password Managers,” in 23rd USENIX Security Symposium, 2014.

[12] B. Adida, A. Barth, and C. Jackson, “Rootkits for JavaScript environments,” WOOT’09 Proc. 3rd USENIX Conf. Offensive Technol., p. 7, 2009.

[13] K. Bhargavan, A. Delignat-Lavaud, and S. Maffeis, “Language-based Defenses Against Untrusted Browser Origins,” Proc. 22Nd USENIX Conf. Secur., pp. 653–670, 2013.

[14] J. Bonneau and P. C. Van Oorschot, “The Quest to Replace Passwords : A Framework for Comparative Evaluation of Web Authentication Schemes ∗,” vol. 2012, 2012.


Footnote

1 PBKDF2 merupakan fungsi standar yang bagian dari Public-Key Cryptography Standars (PKCS).

2 Makalah ini ditulis pada bulan Februari 2017.

3 Bagian pertama disimpan secara offline di lokal dan bagian kedua disimpan secara online di server LastPass.

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *

four × one =

This site uses Akismet to reduce spam. Learn how your comment data is processed.