Apa Itu Autentikasi Dua Faktor? Panduan Sederhana
Autentikasi dua faktor (2FA) adalah cara login yang meminta dua jenis bukti berbeda bahwa Anda memang orang yang Anda klaim — biasanya sesuatu yang Anda ketahui, seperti kata sandi, ditambah sesuatu yang Anda miliki, seperti ponsel atau kunci keamanan. Jika penjahat mencuri atau menebak kata sandi Anda, mereka tetap tidak bisa masuk tanpa faktor kedua. Ini adalah salah satu cara paling sederhana untuk melindungi akun yang penting.
Mengapa ini penting saat membangun dengan AI
Ketika Anda meminta AI builder untuk fitur "login", biasanya Anda mendapatkan email dan kata sandi. Itu awal yang baik, tetapi kata sandi sering dipakai ulang, dipancing lewat phishing, dan bocor. Jika aplikasi Anda menyimpan sesuatu yang berharga — data pelanggan, faktur, kendali admin, pengaturan pembayaran — satu kata sandi yang dicuri bisa membuka semuanya.
2FA juga memengaruhi keputusan yang mungkin belum terpikirkan di awal:
- Siapa yang wajib memakainya. Opsional untuk semua orang, wajib untuk admin, atau wajib untuk semua?
- Metode apa yang didukung. Kode dari aplikasi, pesan teks, passkey, kunci keamanan.
- Apa yang terjadi jika seseorang terkunci dari akunnya. Ponsel yang hilang adalah permintaan bantuan paling umum untuk aplikasi mana pun yang memakai 2FA.
- Di mana pemeriksaannya diterapkan. Pemeriksaan harus dilakukan di server. Layar 2FA yang hanya menyembunyikan halaman di browser bisa dilewati.
Anda tidak perlu membangun kriptografinya sendiri — library yang sudah teruji dan penyedia auth menanganinya. Tetapi Anda perlu tahu apa yang harus diminta.
Analogi sehari-hari
Bayangkan kotak penyimpanan aman di bank. Untuk membukanya, Anda perlu KTP (sesuatu yang bank periksa, yaitu siapa Anda atau apa yang Anda ketahui) dan kunci fisik (sesuatu yang Anda miliki). Pencuri yang menyalin tanda tangan Anda tetap tidak punya kuncinya. Pencuri yang mencopet kunci Anda tetap tidak bisa lolos pemeriksaan KTP.
2FA bekerja dengan cara yang sama. Kata sandi adalah tanda tangan; ponsel atau kunci keamanan adalah kunci fisiknya. Masing-masing saja tidak cukup.
Tiga jenis faktor
Standar keamanan, seperti panduan identitas digital dari National Institute of Standards and Technology (NIST) di Amerika Serikat, mengelompokkan faktor menjadi tiga jenis:
| Faktor | Contoh |
|---|---|
| Sesuatu yang Anda ketahui | Kata sandi, PIN |
| Sesuatu yang Anda miliki | Ponsel dengan aplikasi autentikator, kunci keamanan, perangkat yang menyimpan passkey |
| Sesuatu yang Anda adalah | Sidik jari, wajah — biasanya dipakai untuk membuka perangkat yang kemudian melakukan pemeriksaan sebenarnya |
Kata kuncinya adalah berbeda. Kata sandi ditambah pertanyaan keamanan adalah dua hal yang Anda ketahui, jadi itu bukan autentikasi dua faktor yang sebenarnya. Jika satu kebocoran bisa mengungkap keduanya, itu hanya terhitung sebagai satu faktor.
Perbandingan metode 2FA yang umum
| Metode | Cara kerja | Kekuatan | Catatan |
|---|---|---|---|
| Kode SMS | Kode dikirim lewat pesan teks ke nomor ponsel Anda | Paling lemah | Rentan terhadap SIM swapping dan phishing, tetapi jauh lebih baik daripada tanpa 2FA |
| Kode email | Kode dikirim lewat email | Lemah | Sama amannya dengan akun email itu sendiri |
| Aplikasi autentikator (TOTP) | Aplikasi seperti Google Authenticator membuat kode 6 digit baru, biasanya setiap 30 detik | Baik | Berfungsi tanpa internet; tetap bisa diphishing jika situs palsu meminta kodenya |
| Persetujuan push | Aplikasi bertanya "Apakah ini Anda?" dan Anda mengetuk setujui | Baik | Waspadai "approve fatigue", yaitu pengguna mengetuk ya agar permintaan yang berulang berhenti |
| Passkey atau kunci keamanan | Kunci kriptografi di perangkat membuktikan Anda berada di situs yang asli | Paling kuat | Tahan terhadap phishing karena tidak merespons domain yang mirip |
Panduan NIST memperlakukan metode yang mengharuskan Anda mengetik kode (SMS, email, aplikasi autentikator) sebagai metode yang tidak tahan phishing, dan menandai pengiriman kode lewat jaringan telepon sebagai "restricted". Passkey dan kunci keamanan perangkat keras, yang berbasis standar WebAuthn/FIDO2, adalah yang dihitung sebagai tahan phishing.
Kesimpulan praktisnya: aplikasi autentikator adalah pilihan default yang kuat dan mudah untuk sebagian besar aplikasi, dan passkey layak ditawarkan jika pengguna Anda nyaman memakainya.
Contoh kerja: 2FA untuk portal klien
Misalkan Anda membangun portal tempat sebuah kantor akuntan kecil membagikan dokumen pajak kepada klien. Begini cara kerja pengaturan 2FA yang masuk akal, langkah demi langkah.
Mengaktifkannya (pendaftaran). Priya, seorang klien, membuka Pengaturan dan mengklik "Aktifkan autentikasi dua faktor." Aplikasi membuat secret dan menampilkannya sebagai kode QR. Ia memindainya dengan aplikasi autentikatornya, yang mulai menampilkan kode enam digit. Ia mengetikkan kode yang sedang berlaku kembali ke portal untuk membuktikan pengaturannya berhasil. Aplikasi menampilkan sepuluh kode pemulihan dan meminta ia menyimpannya di tempat yang aman.
Login setelahnya.
- Priya memasukkan email dan kata sandinya. Server memeriksanya.
- Alih-alih langsung memberinya akses, server menandai sesi sebagai "kata sandi OK, faktor kedua tertunda" dan menampilkan layar kode.
- Ia mengetikkan kode dari aplikasinya. Server memeriksanya terhadap secret yang tersimpan, dengan sedikit toleransi selisih jam.
- Baru setelah itu server membuat sesi penuh dan membiarkannya melihat dokumen.
Yang dilihat penyerang. Jika kata sandi Priya bocor dari situs lain, penyerang akan terhenti di langkah 3. Setiap percobaan kode yang gagal dihitung, dan setelah beberapa kali salah, akun dikunci sementara dan Priya menerima email.
Kehilangan ponsel. Priya memakai salah satu kode pemulihannya untuk masuk, mematikan 2FA lalu menyalakannya lagi dengan ponsel barunya, dan mendapatkan kode pemulihan yang baru. Kode yang sudah dipakai tidak akan pernah bisa dipakai lagi.
Untuk staf. Akuntan di kantor itu bisa melihat semua file klien, jadi portal mewajibkan 2FA untuk akun staf; mereka tidak bisa masuk ke dashboard sebelum mendaftarkan diri.
Istilah umum
| Istilah | Artinya |
|---|---|
| 2FA / MFA | Autentikasi dua faktor / multi-faktor: login dengan lebih dari satu jenis bukti. |
| Faktor | Satu jenis bukti: sesuatu yang Anda ketahui, miliki, atau adalah. |
| TOTP | Time-based one-time password — kode bergilir di aplikasi autentikator. |
| Shared secret | Nilai tersembunyi, diatur lewat kode QR, yang dipakai aplikasi dan ponsel Anda untuk membuat kode yang sama. |
| Kode pemulihan (cadangan) | Kode sekali pakai untuk masuk saat faktor kedua Anda hilang. |
| Passkey | Kredensial login yang tersimpan di perangkat Anda dan memakai kriptografi kunci publik sebagai pengganti kata sandi. |
| Kunci keamanan | Perangkat fisik kecil (USB atau NFC) yang berfungsi seperti passkey. |
| SIM swapping | Mengelabui operator seluler agar memindahkan nomor seseorang ke SIM baru, sehingga pesan teks masuk ke penyerang. |
| Phishing | Situs atau pesan palsu yang menipu orang agar menyerahkan kata sandi atau kode. |
| Step-up authentication | Meminta faktor kedua lagi sebelum tindakan sensitif, seperti mengubah rekening pencairan dana. |
Kesalahan umum dan kesalahpahaman
- "2FA membuat akun tidak bisa diretas." Ini membuatnya jauh lebih sulit. Situs phishing tetap bisa menangkap kode yang diketik secara real time, itulah sebabnya passkey ada.
- Memeriksa kode hanya di browser. Jika server memberikan sesi penuh setelah kata sandi, layar kode hanya hiasan. Server harus menolak akses sampai faktor kedua lolos.
- Tidak ada batas tebakan kode. Kode enam digit punya satu juta kemungkinan. Tanpa rate limiting dan penguncian, penyerang bisa terus menebak.
- Lupa rencana pemulihan. Tanpa kode pemulihan, setiap ponsel yang hilang menjadi tiket bantuan, atau pelanggan yang terkunci.
- Menyimpan secret TOTP dengan sembarangan. Shared secret sebaiknya dienkripsi di database, dan tidak pernah ditampilkan lagi setelah pengaturan.
- Membiarkan pengguna mematikan 2FA tanpa verifikasi ulang. Menonaktifkan 2FA atau mengubah email akun sebaiknya memerlukan kata sandi dan kode yang berlaku saat ini.
- Kata sandi ditambah pertanyaan keamanan dianggap 2FA. Tidak, keduanya adalah hal yang Anda ketahui.
Yang sebaiknya diminta ke AI builder Anda
- "Tambahkan autentikasi dua faktor opsional memakai aplikasi autentikator (TOTP), dengan kode QR untuk pengaturan dan kode konfirmasi sebelum fitur ini diaktifkan."
- "Tampilkan sepuluh kode pemulihan sekali pakai saat 2FA diaktifkan. Simpan dalam bentuk hash, sama seperti kata sandi."
- "Terapkan 2FA di server: tidak ada sesi penuh sampai faktor kedua lolos."
- "Batasi percobaan kode dan kunci login selama 15 menit setelah beberapa kali gagal. Kirim email kepada pengguna saat itu terjadi."
- "Wajibkan 2FA untuk akun admin."
- "Minta kata sandi dan kode yang berlaku saat ini sebelum menonaktifkan 2FA atau mengubah email akun."
- "Gunakan library yang sudah terkenal atau fitur 2FA bawaan dari penyedia auth kami — jangan menulis kriptografinya sendiri."
- "Jelaskan metode mana yang Anda pakai dan di mana secret disimpan."
Jika Anda memakai penyedia auth yang dihosting, periksa apakah ia sudah menawarkan 2FA atau passkey; mengaktifkan fitur bawaan biasanya lebih aman daripada kode buatan sendiri. Versi langkah demi langkahnya ada di cara menambahkan autentikasi dua faktor, dan apa itu autentikasi menjelaskan dasar login di baliknya.
Autentikasi dua faktor di Mythex
Mythex tidak menyertakan sistem login bawaan untuk pengguna aplikasi Anda, jadi 2FA menjadi bagian dari pendekatan auth apa pun yang Anda pilih — login email dan kata sandi buatan sendiri yang didukung database proyek, atau penyedia yang dihosting dan sudah menawarkan 2FA. Anda meminta agent menambahkannya lewat chat, dan kunci penyedia apa pun disimpan di secret proyek, bukan di chat. Resep dokumentasi tentang menambahkan login ke aplikasi Anda memuat prompt awal yang bisa Anda sesuaikan, dan keamanan untuk aplikasi yang Anda bangun membahas kebiasaan seputar kunci. Sebelum peluncuran, jalankan daftar periksa keamanan untuk aplikasi AI.
Pertanyaan
Apa itu autentikasi dua faktor dengan bahasa sederhana?
Autentikasi dua faktor (2FA) berarti login memerlukan dua jenis bukti yang berbeda, biasanya kata sandi Anda ditambah kode dari ponsel atau kunci keamanan. Orang yang hanya mencuri kata sandi Anda tetap tidak bisa masuk.
Apakah 2FA sama dengan MFA?
Hampir sama. Multi-factor authentication (MFA) berarti dua faktor atau lebih; autentikasi dua faktor adalah kasus paling umum dengan tepat dua faktor. Dalam penggunaan sehari-hari, istilah ini dipakai secara bergantian.
Apakah autentikasi dua faktor lewat SMS aman?
Jauh lebih baik daripada kata sandi saja, tetapi ini adalah opsi umum yang paling lemah. Pesan teks bisa disadap atau dialihkan lewat SIM swapping, dan halaman login palsu bisa mengelabui orang agar mengetikkan kodenya. Aplikasi autentikator lebih kuat, dan passkey atau kunci keamanan lebih kuat lagi.
Apakah aplikasi saya perlu autentikasi dua faktor?
Jika akun menyimpan uang, data pribadi, atau kendali admin atas pengguna lain, menawarkan 2FA adalah ide yang bagus, dan mewajibkannya untuk admin itu umum. Untuk aplikasi hobi sederhana, 2FA bisa bersifat opsional atau ditunda.
Apa yang terjadi jika pengguna kehilangan ponselnya?
Untuk itulah kode pemulihan: daftar pendek kode cadangan sekali pakai yang ditampilkan saat 2FA diaktifkan. Tanpanya, pemulihan biasanya memerlukan verifikasi identitas manual oleh pemilik aplikasi, jadi rencanakan sebelum peluncuran.