Theo Budiyanto

Navigate back to the homepage

Identitas Daring

Theo Budiyanto
February 1st, 2020 · 4 min read

Pernahkah kamu bertemu teman yang telah lama tak bersua? Pernah enggan menyapa karena berbeda?

“Bro, Budi ya?”

“Iya, Siapa ya?”

“Andre, Andre Setiawan”

“Hah, yang mana ya”

“Kita dulu main bareng waktu SD, kita dulu tetangga, selisih 32 rumah”

“Hah?”

“Lu pernah gigit gw sampai ada bekas luka ini”

“OOOOOOOOOOooooooooooo”

Anekdot tadi menggambarkan dasar dari sistem otentikasi — sebuah sistem pembuktikan identitas. Untuk membuktikan kebenaran klaim identitas Andre, Budi harus berulang kali bertanya hingga akhirnya Budi mendapatkan informasi yang cukup untuk membuktikan bahwa Andre adalah Andre yang dia kenal. Dalam dunia teknologi, inilah yang disebut sebagai Two Factor Authentication (2FA): sebuah metode pengecekkan yang memerlukan kecocokan dari dua faktor dari tiga buah faktor yang ada.

Tiga faktor tersebut adalah:

  • Sesuatu yang kamu tahu (Knowledge factor)
  • Sesuatu yang kamu punya (Ownership factor)
  • Sesuatu yang hanya ada di kamu (Inherence factor)

Jika sebuah proses klaim identitas memenuhi dua dari tiga faktor diatas, maka syarat verifikasi terpenuhi. Sebagai contoh, mari kita ikuti alur login pada umumnya — bayangkan kamu sedang mengakses Gmail.

Pertama, kamu akan memasukkan username; ini adalah klaim identitasmu. Kemudian waktunya untuk memasukkan password. Ini adalah faktor pertama (sesuatu yang kamu tahu).

Selanjutnya, untuk menjamin tingkat kepastian sesuai dengan ilustrasi diatas, harus ada salah satu dari dua faktor lain yang terpenuhi misalnya, SMS (sesuatu yang kamu punya), atau sidik jari / kornea mata (sesuatu yang hanya ada di kamu). Pemenuhan dua dari tiga faktor inilah yang disebut dengan Two Factor Authentication.

Sekarang, mari kita coba telaah penggunaan 2FA yaitu SMS. Sebuah website akan mengirimkan kode khusus yang dibuat secara acak melalui SMS. Kode ini kemudian akan dikonfirmasikan di halaman web. Dengan kata lain, rangkaian proses ini ingin mengonfirmasi kepemilikan nomor telepon tersebut. (sesuatu yang kamu punya). Kode ini biasa disebut sebagai OTP atau One Time Password. Seperti namanya, OTP hanya dapat digunakan sekali dan memiliki waktu hidup yang singkat — biasanya akan hangus dalam waktu tiga hingga lima menit. Inilah sebabnya OTP bersifat pribadi dan lantas harus dijaga kerahasiaannya.

Jika diimplementasi dengan baik, Two Factor Authentication sangatlah ampuh dalam meminimalkan terjadinya peretasan pada suatu akun — namun pada praktiknya, ada beberapa informasi yang perlu diperhatikan.

Satu kritik keras datang dari penggunaan nomor telepon sebagai salah satu sarana pembuktian sesuatu yang kamu punya tidaklah sempurna. Pertama, banyak pakar informatika berpendapat bahwa Kartu SIM sangatlah mudah untuk disalin atau disadap. Dengan sedikit rekayasa sosial (social engineering) atau dengan menggunakan alat penyalin Kartu Sim yang dijual bebas, penyerang dapat dengan mudah memperoleh salinan dari sebuah Kartu SIM — dengan demikian setiap SMS yang dikirimkan menuju nomor tersebut akan masuk ke kedua perangkat.

Kedua, karena limitasi teknologi, SMS dikirimkan dalam jaringan tanpa enkripsi, dengan kata lain, semua pesan singkat yang dikirim maupun diterima, dapat dibaca oleh pemerintah / penyedia layanan telekomunikasi; sehingga asumsi OTP SMS sebagai faktor sesuatu yang kamu punya menjadi gagal karena banyak pihak dapat mempunyai OTP ini.

Ada beberapa metode yang lebih direkomendasikan penggiat teknologi seperti U2F, HTOP, TOTP. Mari kita bahas TOTP dahulu ya. Kepanjangan dari TOTP adalah Time-based One Time Password. Cara pemakaian TOTP cukup sederhana:

  1. Unduh aplikasi TOTP (google authenticator, authy, andOTP).
  2. Buka situs yang menyediakan 2FA dengan TOTP seperti Google, dan aktifkan fitur 2FA.
  3. Scan QR TOTP menggunakan aplikasi yang sudah diunduh sebelumnya.
  4. OTP akan terlihat di layar tampilan aplikasi.

Setelah mengaktifkan 2FA, proses login akan menjadi semakin diperpanjang (baca: semakin aman). Setelah memasukkan email dan password — seperti pada lazimnya — akan muncul kolom untuk memasukkan kode TOTP. Buka aplikasi TOTP pilihan kamu dan masukan. Selamat — anda telah mengamankan akun Google anda. Cara ini dinilai lebih baik dari SMS karena kode OTP akan dibuat secara terus menerus dan luring (offline) sehingga meminimalkan adanya kebocoran informasi. Perlu dicatat, pengguna harus melakukan backup terhadap TOTP ini jika berganti telepon. Pastikan kamu simpan backup dengan baik. Bagaimana cara aplikasi ini bekerja? Apa itu U2F dan HOTP? Nanti kita coba pecahkan di artikel berikutnya (#NKCPDAB).

Setelah kita paham proses 2FA, kita mengerti bahwa password saja kurang memadai, terlebih jika login dapat dilakukan tanpa password. Banyak aplikasi yang sayangnya melakukan praktik ini.

Mari kita coba logout dari aplikasi Gojek dan mengamati alur proses loginnya. Setelah keluar dari akun, kita akan disapa dengan tampilan awal dengan tombol login di bagian bawah layar. Menekan tombol login akan membawa kita menuju halaman dengan satu kolom isian untuk nomor telepon. Setelah kita memasukkan nomor telepon dan menekan tombol submit, sebuah pesan singkat yang berisikan kode OTP akan tiba.

Proses login kita diakhiri dengan pengisian kode OTP tersebut.

Apakah ini aman? Tidak.

Proses klaim identitas ini hanya memenuhi satu faktor yaitu sesuatu yang kamu punya (nomor telepon), bahkan kita bisa berargumen bahwa fitur ini jauh lebih buruk dari kombinasi tradisional email dan password karena alasan yang telah kita bicarakan di atas (Kartu SIM yang tersalin dsb). Bagaimana dengan fitur PIN? Jika ditanyakan pada saat proses login, PIN dapat berfungsi sebagai salah satu faktor sesuatu yang kamu tahu. Sayangnya PIN tidak selalu ditanyakan pada setiap aksi yang user lakukan. Yang saya sayangkan pula, proses mengatur ulang PIN dilakukan hanya dengan melakukan proses SMS OTP.

Mengapa pola otentikasi ini marak terjadi di Indonesia? Pertama, literasi dari penggunaan email sangatlah rendah. Lain dari pada itu, banyak dari kita yang selalu lupa akan password. Ada lagi permasalahan dimana kita menggunakan password yang sama untuk semua akun-akun kita.

Dengan kata lain, penggunaan OTP melalui SMS adalah sebuah jalan pintas. Memang nomor telepon dan SMS adalah dua hal yang mudah dimengerti dan umum digunakan. Namun, seperti yang sudah kita bahas, metode verifikasi melalui SMS dan OTP tidaklah 100% efektif.

Jadi apa yang dapat kita lakukan untuk melindungi akun kita?

  1. Kita harus mengangkat isu ini dan mendesak para penyedia aplikasi untuk menyediakan fitur yang memperbolehkan user untuk menambah faktor otentikasi seperti otentikasi tradisional email dan password ataupun TOTP, HTOP dan U2F.
  2. Segera aktifkan 2FA, jika mungkin jangan gunakan SMS / nomor telepon, dan beralih menuju HTOP, TOTP atau U2F.
  3. Gunakan password manager seperti LastPass, Bitwarden, 1 Password untuk mengelola semua password kalian.
  4. Jangan gunakan password lebih dari sekali; gunakan password manager untuk membuat password acak (random) dan unik untuk setiap akun.

Akhir kata, saya berterima kasih pada @coffeegulaaren, @tyohan, dan @joshuabezaleel yang telah membantu menyunting tulisan ini. Semoga saya semakin rajin menuliskan artikel.

Seperti biasa, silahkan cuitkan komentar, kritik serta saran di @tibudiyanto ✌️.

More articles from @tibudiyanto

Saweria Stack

The boring the better

January 11th, 2020 · 2 min read

Things to do in 2020

My checklist for 2020

January 1st, 2020 · 1 min read
© 2020 @tibudiyanto
Link to $https://twitter.com/tibudiyantoLink to $https://github.com/tibudiyantoLink to $https://instagram.com/tibudiyanto