Di era digital seperti sekarang, keamanan akun menjadi hal yang sangat penting. Salah satu cara untuk meningkatkan keamanan adalah dengan menggunakan autentikasi ganda, yang dikenal dengan istilah 2FA (Two-Factor Authentication) atau MFA (Multi-Factor Authentication). Meski sering dianggap sama, keduanya sebenarnya memiliki perbedaan.
Apa itu 2FA?
Two-Factor Authentication (2FA) adalah metode autentikasi yang menggunakan dua lapisan verifikasi sebelum seseorang bisa mengakses sebuah akun atau sistem. Biasanya terdiri dari:
-
Sesuatu yang anda tahu (misalnya username dan password)
-
Sesuatu yang anda miliki (misalnya kode OTP di ponsel)
atau
Sesuatu yang anda adalah (misalnya sidik jari)
Contoh sederhananya: Anda login dengan username dan password, lalu diminta memasukkan kode OTP yang dikirim lewat SMS atau dihasilkan oleh aplikasi autentikator.
Jadi, jika Anda hanya diminta memasukkan NIP, password, dan kode TOTP dari Google Authenticator, metode ini lebih tepat disebut 2FA (Two-Factor Authentication), bukan MFA (Multi-Factor Authentication).
Namun, menyebutnya MFA pun sebenarnya tidak salah—hanya saja istilah 2FA lebih spesifik dan akurat dalam konteks ini.
Apa itu MFA?
Multi-Factor Authentication (MFA) mencakup konsep yang lebih luas dari 2FA. Sesuai namanya, MFA berarti menggunakan lebih dari dua faktor autentikasi.
Misalnya:
-
Password (sesuatu yang anda tahu)
-
Kode OTP dari aplikasi (sesuatu yang anda miliki)
-
Pemindaian wajah atau sidik jari (sesuatu yang anda adalah)
Jadi, 2FA adalah bagian dari MFA, tapi tidak semua MFA adalah 2FA.
Mengapa Perlu 2FA atau MFA?
Password saja sering kali tidak cukup untuk melindungi akun dari peretasan. Banyak pengguna memakai password yang lemah atau sama di banyak layanan. Dengan menambahkan lapisan keamanan tambahan, walaupun password bocor, akun tetap aman karena butuh verifikasi tambahan yang hanya diketahui atau dimiliki oleh pengguna.
OAuth
Selain pekerjaan utama saya sebagai guru SMK, saya juga “nyambi” membuat program komputer yang dipakai oleh guru-guru dan murid-murid. Salah satu kendala yang sering membuat saya pusing 7 keliling adalah guru dan murid sering melapor bahwa mereka lupa password. Saya telah menjelaskan bahwa bila lupa password, cukup minta sistem agar mengirim password baru ke email. Tapi mereka mengaku tidak dapat membuka emailnya. Kusut.
Maka, telah 8 tahun saya menghindari membuat aplikasi yang cara otentikasinya memakai username dan password. Sebagai gantinya, saya memilih memakai OAuth.
Salah satu keuntungan menggunakan OAuth adalah saya tidak perlu menyimpan password (bahkan dalam bentuk hash) di database server saya. Jadi, jika server saya dibobol, peretas tidak akan mendapatkan informasi login pengguna. Proses autentikasi ditangani oleh penyedia pihak ketiga seperti Google atau Facebook, sehingga password pengguna tidak pernah melewati server saya.
OAuth (Open Authorization) adalah protokol otorisasi yang memungkinkan satu aplikasi mendapatkan akses terbatas ke sumber daya pengguna tanpa harus mengetahui password pengguna.
Contoh paling umum:
Ketika kita login ke suatu situs menggunakan tombol “Login with Google” atau “Login with Facebook”, itu menggunakan OAuth. Situs tersebut tidak tahu password kita, tapi tetap dapat akses ke informasi tertentu (misalnya nama dan email).
Bagi para guru, cara login seperti ini tentu sudah tidak asing lagi. Untuk masuk ke PMM (yang kini bernama Ruang GTK), guru cukup mengklik “Masuk memakai akun Belajar.id”.
Begitu juga bagi para Guru Penggerak, mereka sudah terbiasa masuk ke LMS Pendidikan Guru Penggerak dengan akun Belajar.id yang praktis.
Tanpa disadari, para guru ini sebenarnya sedang menggunakan OAuth sebagai mekanisme autentikasi.
Kelebihan OAuth dibandingkan 2FA/MFA
-
Lebih nyaman untuk pengguna
Pengguna tidak perlu membuat akun baru atau mengingat password tambahan—cukup klik “Login with Google” atau “Login with Facebook”. Artinya, cukup menghafal satu password untuk akun Google atau Facebook, dan bisa digunakan untuk mengakses berbagai layanan di internet.
Sebagai orang yang aktif menggunakan internet, saya memiliki banyak akun di berbagai situs yang masih mengharuskan login manual dengan username dan password. Setiap situs punya aturan password yang berbeda-beda—ada yang mewajibkan simbol, tapi ada juga yang justru melarangnya.
Sebenarnya, hal ini bisa diatasi dengan menggunakan Password Manager, seperti Bitwarden. Namun, ketika saya harus menggunakan komputer publik, saya mengalami kesulitan karena tidak menghafal semua password. -
Mengurangi risiko phishing
Karena pengguna tidak memasukkan password di situs pihak ketiga, maka password tidak mudah dicuri. Tahukah anda bahwa Tokopedia, Bhinneka dan Edmodo pernah diretas, dan hash password disebar di internet? Gara-gara ini, saya terpaksa mengganti semua password agar tidak sama dengan password di website tersebut. -
Kontrol akses granular
OAuth bisa membatasi akses: hanya baca email, hanya lihat profil, dll. Sangat cocok untuk API. -
Single Sign-On (SSO)
Pengguna dapat login ke banyak layanan dengan satu akun—misalnya akun Google—tanpa perlu login ulang setiap kali berpindah layanan. Saya menerapkan SSO (Single Sign-On) pada website (menggunakan Drupal) dan LMS (menggunakan Moodle), sehingga murid dan guru dapat berpindah antar platform dengan mudah, tanpa harus mengetik ulang username dan password.
Apakah dengan memakai OAuth maka 2FA atau MFA tidak diperlukan lagi?
Jawabnya: Tidak. OAuth bukan pengganti 2FA/MFA. Justru, akun yang digunakan untuk OAuth (seperti Google) sebaiknya dilindungi dengan 2FA/MFA. Kalau tidak, kalau akun Google dibobol, semua layanan yang login via OAuth juga ikut terancam.
Gabungan OAuth + 2FA = Lebih Aman
Kalau kita login ke aplikasi via Google, dan akun Google kita dilindungi dengan 2FA, maka secara tidak langsung kita juga menggunakan 2FA untuk aplikasi tersebut, meskipun aplikasi itu sendiri tidak punya fitur 2FA.
Itulah alasan mengapa saya mulai meninggalkan metode otentikasi tradisional dengan username dan password, dan beralih menggunakan OAuth.
Dengan OAuth, proses login menjadi jauh lebih mudah bagi pengguna—cukup menggunakan akun yang sudah mereka miliki, seperti Google atau Facebook.
Dari sisi pengelola sistem, saya tidak lagi perlu memikirkan cara menyimpan dan melindungi password pengguna di dalam database, karena tidak ada password yang disimpan sama sekali—bahkan hash password pun tidak ada.
Agar proses login dapat berjalan, satu-satunya data yang dibutuhkan hanyalah alamat email pengguna.
Urusan keamanan login dan proses reset password sepenuhnya saya serahkan kepada Google atau Facebook, yang memiliki sistem keamanan jauh lebih kuat, canggih, dan lengkap dibandingkan sistem yang bisa saya bangun sendiri.
Jenis-Jenis OTP
Beberapa orang menyebut bahwa angka yang muncul di Google Authenticator adalah OTP. Ini tidak salah, tapi kurang tepat.
OTP (One-Time Password) adalah kode yang hanya bisa digunakan satu kali dalam proses autentikasi. Ada beberapa jenis OTP yang umum:
1. TOTP (Time-based One-Time Password)
-
Kode yang berubah setiap beberapa detik (biasanya 30 detik).
-
Digenerate berdasarkan waktu dan secret key.
-
Contoh aplikasi: Google Authenticator, Authy, Microsoft Authenticator.
-
Lebih aman daripada OTP via SMS karena tidak bergantung pada jaringan operator.
2. HOTP (HMAC-based One-Time Password)
-
Kode yang berubah setiap kali pengguna meminta (event-based).
-
Digenerate berdasarkan secret key dan counter.
-
Cocok untuk perangkat seperti token hardware.
3. SMS OTP
-
Kode dikirim ke nomor HP pengguna melalui SMS.
-
Mudah digunakan, tapi kurang aman karena bisa disadap atau diambil alih lewat SIM swap.
4. Email OTP
-
Kode dikirim ke email pengguna.
-
Aman jika email juga dilindungi dengan autentikasi ganda.
-
Risiko: jika email diretas, semua akses bisa dibobol.
5. Push Notification OTP
-
Pengguna menerima notifikasi untuk menyetujui login (misalnya via aplikasi seperti Duo, Microsoft Authenticator).
-
Tidak selalu menampilkan kode, tapi pengguna harus menyetujui permintaan autentikasi.
-
Mudah dan relatif aman.
Alternatif lain?
Beberapa waktu lalu saya membaca sebuah artikel menarik tentang masalah keamanan siber, khususnya soal password. Ternyata, sebagian besar kebocoran data yang terjadi di dunia ini—sekitar 74% menurut laporan Verizon tahun 2023—melibatkan kesalahan manusia. Bukan karena sistem yang diretas secara teknis, tapi karena kita, manusianya, sering lalai. Password lemah, lupa, atau menggunakan password yang sama di banyak akun. Saya jadi teringat betapa seringnya saya sendiri harus reset password hanya karena lupa kombinasi yang saya buat sendiri.
Hal ini membuat saya penasaran: apakah ada metode login yang lebih aman dan tidak terlalu bergantung pada kemampuan manusia untuk mengingat?
Ternyata ada. Dan jawabannya adalah autentikasi berbasis sertifikat (certificate-based authentication). Konsep ini mungkin terdengar teknis, tapi intinya sederhana: alih-alih menggunakan username dan password, kita bisa menggunakan “identitas digital” berupa sertifikat yang tersimpan di perangkat kita. Ketika kita login, sistem akan memverifikasi sertifikat itu. Jika cocok, akses langsung diberikan. Tanpa mengetik apa pun.
Saya sempat berpikir, bukankah itu berisiko kalau laptopnya rusak atau hilang? Tapi ternyata sistem ini sudah dipikirkan dengan matang. Di perusahaan-perusahaan besar, misalnya, proses seperti ini biasanya terintegrasi dengan sistem manajemen IT. Ketika perangkat hilang atau rusak, bagian IT tinggal mencabut sertifikat dari perangkat lama, dan menerbitkan ulang di perangkat baru. Di lingkungan pribadi pun, beberapa layanan sudah menyediakan fitur serupa, misalnya melalui recovery key atau perangkat cadangan yang bisa didaftarkan sebelumnya.
Yang paling menarik bagi saya adalah kenyataan bahwa teknologi seperti ini bisa bekerja sama dengan biometrik. Laptop saya, misalnya ASUS Vivobook M7600QE, punya sensor sidik jari yang menyatu dengan tombol Power. Selama ini saya hanya menggunakannya untuk login ke Windows menggunakan fitur Windows Hello. Dengan Windows Hello, saya tidak perlu mengetik username dan password, cukup sentuh tombol itu dengan jari. Tapi ternyata teknologi di baliknya—karena sudah mendukung standar WebAuthn atau FIDO2—bisa juga digunakan untuk login ke situs web yang kompatibel, seperti Google, Microsoft, atau GitHub. Jadi saat saya membuka Gmail, saya tak perlu lagi memasukkan password. Saya cukup menyentuh sensor sidik jari, dan sistem mengenali saya secara instan.
Buat saya pribadi, ini bukan cuma soal keamanan. Ini juga soal kenyamanan dan efisiensi. Password sudah terlalu lama menjadi beban kita bersama. Kita diminta membuat kombinasi yang rumit, tapi mudah diingat. Jangan sama dengan yang lain, tapi juga jangan lupa. Dan kalau lupa, proses reset-nya kadang memakan waktu lebih lama daripada pekerjaan yang ingin kita akses.
Teknologi autentikasi berbasis sertifikat dan biometrik memberi solusi yang lebih manusiawi. Ia mengurangi beban di pundak pengguna, tanpa mengorbankan keamanan. Bahkan, justru lebih aman, karena tidak ada lagi password yang bisa dicuri lewat email palsu atau ditebak lewat brute-force.
Saya rasa, ini saatnya kita mempertimbangkan untuk “move on” dari sistem login konvensional. Dunia digital terus berkembang, dan keamanan tak seharusnya menjadi hal yang rumit. Ia harus bekerja di balik layar—senyap, efisien, dan tentu saja, tetap aman.
WebAuthn dan Bitwarden
Terakhir, saya ingin mengenalkan lebih jauh tentang WebAuthn. Ini adalah alternatif otentikasi yang sangat mudah dan praktis—cukup dengan sekali klik. Tidak perlu lagi repot mengetik username, password, atau kode OTP. Saya yakin Anda akan tertarik dan mendukung penggunaan teknologi ini demi kenyamanan dan keamanan bersama.
Sebagai seorang guru yang juga berurusan dengan teknologi digital, saya sangat memahami bagaimana tantangan itu terasa nyata bagi sebagian besar rekan-rekan saya yang belum terbiasa dengan dunia digital. Ketika situs resmi kepegawaian menerapkan sistem keamanan tambahan berupa OTP dari Google Authenticator, saya melihat hal ini sebagai langkah positif dari sisi keamanan, tapi sekaligus problematis dari sisi kenyamanan pengguna.
OTP berbasis aplikasi seperti Google Authenticator memang kuat dalam hal keamanan, tapi ia mengharuskan pengguna untuk mengunduh aplikasi di ponsel, menyimpan barcode rahasia, dan memastikan ponsel itu selalu bisa diakses saat login. Ini terdengar sederhana bagi mereka yang terbiasa, tapi bisa menjadi momok bagi rekan-rekan saya yang tidak terbiasa dengan pengelolaan perangkat lunak atau bahkan tidak punya ponsel Android/iPhone yang mendukung.
Dari sinilah muncul pertanyaan: adakah solusi otentikasi dua faktor (2FA) yang tetap aman, namun jauh lebih mudah dan intuitif bagi pengguna awam?
Jawabannya adalah: WebAuthn dan Bitwarden.
Mengapa WebAuthn?
WebAuthn adalah standar otentikasi modern yang memungkinkan login tanpa perlu mengetik password atau kode OTP manual. Alih-alih itu, pengguna bisa mengandalkan perangkat yang mereka miliki—seperti komputer dengan fingerprint, USB security key, atau bahkan hanya dengan satu kali klik di password manager seperti Bitwarden—untuk melakukan verifikasi identitas.
Artinya: pengguna tidak perlu lagi membuka HP dan mengetik angka-angka dari aplikasi OTP. Cukup klik “Login dengan perangkat ini” dan identitas mereka terverifikasi secara kriptografis. Proses ini juga lebih aman karena tidak rentan terhadap phishing, tidak bisa dicuri hanya dengan mengetahui username dan password, dan tidak tergantung pada jaringan SMS atau aplikasi pihak ketiga.
Mengapa Bitwarden?
Bitwarden adalah aplikasi manajer kata sandi open-source yang mendukung WebAuthn. Selain menyimpan semua password secara terenkripsi, Bitwarden juga dapat digunakan sebagai “perangkat” untuk otentikasi WebAuthn. Jika Bitwarden sudah dipasang di komputer dan pengguna sudah login di dalamnya, maka proses otentikasi bisa dilakukan dengan satu klik saja. Serius! Hanya dengan sekali klik, tidak perlu username, password, dan TOTP! Aman? Tentu saja aman.
Bandingkan dengan OTP:
Aspek | Google Authenticator | WebAuthn + Bitwarden |
---|---|---|
Harus buka HP? | Ya | Tidak |
Harus ketik manual? | Ya | Tidak |
Butuh aplikasi di HP | Ya | Tidak |
Aman dari phishing | Tidak selalu | Ya |
Mudah bagi pemula | Tidak | Ya |
Teknologi seharusnya melayani manusia, bukan sebaliknya.
Jika WebAuthn dan Bitwarden bisa memberikan keamanan yang bahkan lebih baik, dan dalam waktu bersamaan mempermudah para pengguna, mengapa kita tidak mulai mendorong pengembang sistem untuk mempertimbangkan solusi ini?
Alangkah nyamannya bila kita masuk ke Tokopedia, Shopee, Gopay, RumahWeb, Gmail, atau apa pun itu, hanya dengan sekali klik, tanpa mengabaikan sisi keamanan. WebAuthn adalah jawabannya.
Saya percaya bahwa masa depan keamanan digital tidak harus rumit. Ia bisa hadir dalam bentuk yang mudah, cepat, dan tetap terpercaya. Sudah waktunya kita membicarakan WebAuthn sebagai alternatif yang lebih manusiawi.
Anda butuh contoh? Silakan klik di sini.
Username: admin Password: 123
Untuk dapat mempraktikkan Web Authn, yang dibutuhkan adalah:
- Peramban (web browser) modern yang mendukung WebAuthn:
- Chrome (desktop & Android) versi 67+
- Firefox versi 60+
- Edge versi 18+
- Safari (MacOS dan iOS) versi 13+
- Perangkat/Authenticator:
- Touch ID (Mac)
- Face ID (iOS)
- Windows Hello (Windows 10+)
- Fingerprint sensor (Android)
- YubiKey, SoloKey, dll (via USB/NFC/Bluetooth)
- Smartphone dengan biometrik.
Sedikit Kiat
Di akhir artikel ini, saya ingin berbagi kiat (trik / tips) yang semoga bermanfaat bagi pembaca blog Mawan.NET.
- Saat pertama kali Anda mengatur TOTP, akan muncul QR Code di layar. Anda diminta untuk memindai QR Code tersebut menggunakan Google Authenticator. Saran saya: sebaiknya cetak QR Code itu dan simpan dengan aman, misalnya di dalam brankas atau bersama dokumen penting seperti ijazah. Tujuannya, jika suatu saat ponsel Anda hilang atau rusak, Anda masih bisa memindai ulang QR Code tersebut menggunakan ponsel baru.
- Google Authenticator adalah aplikasi yang bagus dan dapat diandalkan. Tapi saya lebih suka menggunakan aplikasi lain, misalnya Authy. Alasannya adalah karena Authy mendukung sinkronisasi antar perangkat dan backup cloud yang terenkripsi, sehingga saya tetap bisa mengakses kode OTP meskipun ponsel saya hilang atau rusak. Alternatif selain Authy adalah Microsoft Authenticator.
- Bila anda lebih sering memakai laptop / PC, maka sebaiknya memasang extension ZeeOTP di web browser, sehingga anda tidak perlu harus selalu memegang ponsel. Alternatif ZeeOTP adalah 1OTP.
- Bila anda tertarik menggunakan Web Authn, saya menyarankan agar anda memakai YubiKey. Bentuknya seperti flash drive. Ini lebih awet dari pada biometrik internal di ponsel. Berapa usia pakai ponsel? Paling sekitar 5 tahun. YubiKey dapat lebih lama. Biometrik di laptop juga bagus, tapi anda terpaku pada satu laptop. Dengan UbiKey, anda dapat berganti-ganti laptop.
Semoga tulisan ini bermanfaat. Tergerak, bergerak, menggerakkan!
Mawan Agus Nugroho, M.Kom
Praktisi IT dan pemerhati masalah keamanan komputer.