Password

Password adalah metode autentikasi yang paling umum. Password memiliki banyak kelebihan, tapi juga banyak kekurangan. Contoh kelebihannya: sangat sederhana, mudah dishare, tidak butuh hardware khusus. Sementara itu kelemahan password: mudah dishare artinya bisa disalin dengan mudah, bisa dibruteforce, bisa terjadi password reuse, dsb.

Saat ini masalah yang sangat umum adalah ini: orang memakai password yang sama di berbagai layanan. Jika satu layanan jebol, dan password Anda ketahuan untuk semua situs lain (bisa dengan bruteforce/dictionary attack, bisa juga situs itu menyimpan plaintext password). Banyak situs kecil yang passwordnya bocor (atau mungkin bahkan pemilik situsnya jahat), tapi jangan kira situs besar tidak bisa bocor.

Selain kebocoran dari berbagai situs, password juga kadang bisa didapatkan dari mengendus (sniff) paket jaringan.  Password juga bisa dengan mudah didapat dari menggunakan keylogger (program atau hardware yang menyimpan setiap tombol yang Anda tekan).

Ada berbagai solusi yang ditawarkan untuk masalah password ini, dari mulai tidak menyimpan password, menyimpan password, mengganti atau menambahkan autentikasi lain.

Solusi pertama adalah: tidak menyimpan password. Dasarnya adalah: membuat “formula” yang Anda sendiri yang tahu, jadi bisa dengan mudah menghasilkan password untuk berbagai situs. Saya tidak akan menjelaskan semua formula ini, tapi kita lihat saja beberapa contohnya.

Cara pertama: XKCD, silakan dibaca sendiri komiknya ini (sumber: https://xkcd.com/936/ )

Password Strength

 

Ada pembahasan teknis mengenai ini, misalnya di sini:

http://security.stackexchange.com/questions/6095/xkcd-936-short-complex-password-or-long-dictionary-passphrase

Hal yang paling praktis yang membuat sistem ini sulit dipakai: banyak situs yang hanya mengijinkan password MAKSIMAL 8 karakter. Jadi skema ini tidak bisa selalu dipakai. Untuk kasus tertentu, misalnya untuk password di Linux, ini bisa dipakai. Saya sendiri memakai varian ini di berbagai server Linux yang saya kelola.

Cara berikutnya adalah memakai formula untuk menghasilkan password dari sebuah master password, contohnya di sini. Tentunya Anda harus cukup rajin untuk mempraktikkan ini. Varian dari ini adalah menggunakan tool sha (atau hashing lain), seperti dibahas di sini.  Yang perlu diperhatikan adalah: hati-hati jangan meninggalkan jejak ketika memakai tool semacam ini (misalnya di shell/bash history) karena semuanya akan jebol.

Saya sempat memakai varian cara formula, tapi ini juga memiliki kelemahan: sebagian situs ternyata masih mengharuskan requirement password complexity: harus ada huruf besar, huruf kecil, angka, simbol. Tadinya saya ingin memecahkan persoalan itu dengan selalu menambahkan 123!. Ternyata: ada situs yang TIDAK MENGIJINKAN SIMBOL sebagai password.  Sekarang saya harus mengingat: situs yang ini boleh nggak pake simbol? Saya baru saja nemu situs seperti ini: readycard yang tidak membolehkan simbol ketika memasukkan password, tapi harus gabungan huruf dan angka dan perlu huruf kapital.

Berikutnya: kadang password kita dipaksa diganti oleh situs karena situs tersebut baru saja kebobolan. Sekarang kita harus menambahkan lagi “versi” di formula, supaya bisa membuat password versi 2. Lebih parah lagi jika kita harus mengganti password berkala. Baru-baru ini ada yang berusaha membrute force password iCloud saya, dan saya disuruh mengganti password baru dan password ini tidak boleh sama dengan password sebelumnya. Ini baru sekali di iCloud, tapi sudah terjadi puluhan kali pada account BBM saya, ada yang brute force yang membuat saya harus mereset password. Parahnya di iCloud, saya tidak bisa menggunakan password yang sama dengan setahun terakhir.

Hal seperti ini terjadi beberapa kali: menghitung password berdasarkan formula: tidak bisa login, coba sekali lagi dengan karakter spesial, ternyata gagal, coba versi 2, ternyata gagal.  dan account diblok sementara. Ini kadang terjadi karena websitenya meminta “userid” tapi ternyata hanya bisa login dengan email.

Untuk berbagai situs tidak penting, akhirnya saya memakai password yang sama. Saya mendaftar di puluhan forum demi bisa mendownload sebuah file (banyak file/program yang semi illegal yang hanya bisa didownload setelah login). Tapi bahkan situs nggak penting sekalipun kadang diretas, jadi harus ganti password, dan seringnya tidak boleh pake password yang sama. Jadi bahkan saya punya beberapa password sederhana untuk situs nggak penting.

Setelah makin pusing dengan batasan berbagai situs, tentunya langkah yang masuk akal adalah: mengingat password di browser. Cara ini paling mudah, tapi juga memiliki risiko besar: jika ada yang berhasil mencuri file password, atau ada yang berhasil membajak browser Anda (contoh kasus Team Viewer), maka autofill ini akan membahayakan. Saat ini browser bisa mensinkronisasi password Anda, jadi misalnya ketika login di Chrome  PC passwordnya bisa diingat juga ketika kita menggunakan Chrome versi Android.

Dari semua masalah tersebut, lahirlah beberapa tool untuk password management. Beberapa sifatnya open source dan offline, beberapa sifatnya online. Yang sifatnya offline (seperti KeePass) bisa dibuat semi online dengan menggunakan layanan seperti DropBox atau Google Drive.

Sebagian orang merasa takut menggunakan password manager. Jika ada yang mengakses file password Anda: siapapun bisa membrute force secara offline. Mencoba-coba jutaan password per detik bisa dilakukan tanpa takut diblok. Berbeda dengan mencoba membrute force password facebook Anda secara online (akan diblok).

Password manager offline boleh dibilang paling aman dan nyaman. Tapi jika Anda memiliki banyak mesin dan sering berpindah-pindah, maka Anda harus mau repot masalah sinkronisasi file password.

Password manager online, seperti misalnya LastPass memiliki kenyamanan yang tinggi: gampang sekali memasukkan password di browser, atau bahkan memasukkan password untuk app Android (mendukung fingerprint). Tapi layanan semacam ini sudah pernah kebobolan dan memiliki bug.

Kesimpulan saya saat ini: tidak ada cara sempurnya mengamankan password. Saya menggunakan berbagai campuran metode di atas untuk diri saya gabungan antara keamanan dan kenyamanan. Saya memakai lastpass untuk kemudahan mengingat berbagai password di situs yang tidak penting.

Saya memakai metode khusus untuk menghasilkan password di situs penting, tapi bisa dilakukan di kepala saya. Dengan lastpass, saya tidak perlu mengingat password sebuah situs dan aturannya, dengan tidak memakai metode khusus saya di semua situs (hanya di situs penting saja), maka kemungknan metode saya ketahuan juga makin kecil.

Saya juga menggunakan Google Account atau Facebook Account untuk login ke berbagai aplikasi. Khusus untuk Google, biasanya saya memakai account tambahan yang tidak penting (kita bisa login ke beberapa Google Account baik di browser maupun di Android). Facebook login ini sejauh ini aman, dan kita bisa dengan mudah merevoke akses sebuah situs dari halamannya.

Saya juga menggunakan pengamanan ekstra: mengaktifkan two factor authentication di semua layanan yang memungkinkan plus mengaktifkan semua notifikasi keamanan. Saya pernah mengimplementasikan OTP untuk jam pintar saya, dan bahkan jam yang belum benar-benar pintar.

Saya juga memakai Teensy U2F key di berbagai situs yang mendukung itu, dan bahkan mengimplementasikan sendiri protokolnya (dan sudah ada yang memakai ini di Kickstarter). Untuk koneksi ke server saya sendiri, saya akan menggunakan public key (jadi tidak perlu password).

Tentunya semuanya yang sudah saya lakukan itu bukan jaminan keamanan, jika kita sedang “sial” sebuah bug di web server atau librarynya (contoh bug heartbleed OpenSSL) bisa membuat semua usaha di atas menjadi sia-sia.

Menurut saya, minimal untuk Anda yang nggak mau repot: punyalah beberapa password. Segala macam layanan yang “penting” atau “ada duitnya” (misalnya saldo gojek) jangan sampai passwordnya sama dengan layanan lain. Untuk yang super penting (seperti online banking), jangan disamakan dengan password manapun.

 

2 thoughts on “Password”

  1. Saya merasakan hal yang sama untuk beberapa layanan yang mengharuskan passwordnya memiliki panjang tertentu, menyebalkan. Termasuk untuk layanan yang tidak mengijinkan menggunakan password yang sama dengan sebelumnya, terpaksa ganti password dan menambah beban di otak untuk mengingatnya 😀

  2. Salam kenal pak yohan.. Imo, generator passphrase bisa jadi ide project asik karena banyak yg membutuhkan. Misalnya random passphrase dari potongan kalimat di {kitab suci, buku, artikel, dll} yg berbahasa indonesia.

    Perkara password sy berkiblat ke mbah gugel:
    – Gunakan password
    – Aktifkan 2FA auth via sms/token generator apps.
    – Cetak juga beberapa token yg bisa digunakan jika device 2fa offline.
    – Cantumkan no ponsel/email lain sbg backup bila terjadi sesuatu yg tdk diinginkan.

    Juga harus parno ketika login:
    * Hanya login akun penting {ssh, ebanking, ecommerce, socmed,dll} dari device sendiri {tdk dari device temen/warnet/dll}.
    * Hanya login dari tempat aman. Pastikan gak ad yg ngintip, misal: (jgn login di gerbong kereta yg sdg padat)
    * [tambahkan security best practices disini]

    Tips utk sysAdmin:
    * Jgn share/simpan akun server secara “telanjang” via whatsapp, email, notes ponsel, dsb. Jika memang terpaksa usahakan diencrypt. Bila ponsel hilang tidak ad jaminan yg menemukan selalu org baik, bisa jadi malah “heker bertaring”.

    Jangan gara-gara henpon kiamat dunia persilatan. ^_^

Leave a Reply

Your email address will not be published. Required fields are marked *