Algoritma Kata Sandi Sekali-pakai berbasis Waktu: Perbedaan antara revisi
Konten dihapus Konten ditambahkan
Dibuat dengan menerjemahkan halaman "Time-based One-time Password algorithm" |
kTidak ada ringkasan suntingan |
||
Baris 1:
'''Algoritme Kata Sandi Sekali-Pakai berbasis Waktu''' ({{lang-en|Time-based One-time Password algorithm}}, '''TOTP''') adalah perpanjangan fungsi dari [[
Karena adanya latensi, baik bersumber dari jaringan dan manusia, dan jam yang belum diselaraskan, kata sandi satu kali ini harus divalidasi dalam rentang waktu tertentu antara autentikator dan perangkat yang diautentikasi. Dalam hal ini, waktu latensi dipanjangkan menjadi durasi yang lebih besar (misalnya, 30 detik) yang memungkinkan untuk memvalidasi para pihak. Namun, seperti halnya HOTP, hal tersebut membutuhkan tindakan pencegahan tambahan untuk memmastikan keamanannya, seperti pembatasan tingkat permintaan.
▲'''Algoritme Kata Sandi Sekali-Pakai berbasis Waktu''' ('''TOTP''') adalah perpanjangan fungsi dari [[ Algoritma Sandi Satu Kali berbasis HMAC |algoritme Kata Sandiri Sekali-Pakai berbasis HMAC]] (HOTP) yang menghasilkan kata sandi satu kali pakai dengan cara mengambil keunikan dari waktu saat ini (sekarang). Algoritme ini telah diadopsi sebagai standar [[Internet Engineering Task Force]] RFC 6238,<ref name="RFC6238" /> yang merupakan landasan dari [[ Inisiatif Untuk Otentikasi Terbuka |Initiative For Open Authentication]] (OATH), dan digunakan dalam sejumlah sistem [[ Otentikasi dua faktor |otentikasi dua faktor]].
▲Karena adanya latensi, baik bersumber dari jaringan dan manusia, dan jam yang belum diselaraskan, kata sandi satu kali ini harus divalidasi dalam rentang waktu tertentu antara autentikator dan perangkat yang diautentikasi. Dalam hal ini, waktu latensi dipanjangkan menjadi durasi yang lebih besar (misalnya, 30 detik) yang memungkinkan untuk memvalidasi para pihak. Namun, seperti halnya HOTP, hal tersebut membutuhkan tindakan pencegahan tambahan untuk memmastikan keamanannya, seperti pembatasan tingkat permintaan.
== Algoritme ==
Untuk menetapkan otentikasi TOTP, perangkat yang diautentikasi dan autentikator harus terlebih dahulu menetapkan [[
* ''T''{{Sub|0}}, waktu Unix untuk mulai menghitung langkah waktu (standarnya adalah 0)
* ''T{{Sub|X}}'', interval yang akan digunakan untuk menghitung nilai penghitung ''C<sub>T</sub>'' (standarnya adalah 30 detik)
=== Nilai TOTP ===
Nilai yang dihasilkan oleh TOTP menggunakan algoritme HOTP yang menggantikan penghitung dengan nilai yang tidak berkurang berdasarkan waktu saat ini (sekarang).
: Nilai TOTP (''K'') = nilai HOTP (''K'', ''C{{Sub|T}}'' )
Penghitung waktu, ''C{{Sub|T}}'', adalah bilangan bulat menghitung jumlah durasi, ''T {{Sub|X}}'' dalam perbedaan antara arus waktu Unix, ''T,'' dan beberapa [[epos]] ''(T''{{Sub|0}}; bandingkan dengan [[epos Unix]]); nilai yang terakhir semua berada di detik integer.
: <math>C_T = \left\lfloor\frac{T - T_0}{T_X}\right\rfloor
== Pertimbangan praktis ==
Agar autentikasi berikutnya dapat berfungsi, jam dari yang terautentikasi dan autentikator perlu diselaraskan (autentikator akan biasanya menerima kata sandi satu kali yang dihasilkan dari stempel waktu yang berbeda dengan lebih kurang 1 interval waktu dari stempel waktu yang diautentikasi).
== Kelemahan dan kerentanan ==
Nilai-nilai TOTP dapat dipancing seperti halnya kata sandi, meskipun membutuhkan penyerang untuk mengelabui kredensial selama waktu berjalan daripada mengumpulkannya dalam waktu yang tepat.
Implementasi yang tidak membatasi upaya masuk log rentan terhadap pencocokan nilai-nilai tersebut secara kasar.
Seorang penyerang yang mencuri nilai rahasia bersama dapat menghasilkan nilai TOTP baru yang valid sesuka hati. Ini bisa menjadi masalah tertentu jika penyerang menargetkan sebuah basis data otentikasi yang besar.<ref>{{Cite news|url=https://www.wired.com/2011/06/rsa-replaces-securid-tokens/|title=RSA Agrees to Replace Security Tokens After Admitting Compromise|last=Zetter|first=Kim|work=WIRED|access-date={{date|2017-02-17}}|language=en
Karena perangkat TOTP memiliki baterai yang dapat habis sewaktu-waktu dan jam yang dapat diselaraskan, dan perangkat lunak TOTP pada ponsel yang dapat hilang dan/atau dicuri, semua implementasi dunia nyata memiliki metode untuk memintas perlindungan (misalnya: kode cetak, pengaturan ulang kata sandi, dll.). Hal ini dapat menyebabkan beban dukungan yang cukup besar untuk basis pengguna yang besar, dan juga memberi jalan tambahan bagi pengguna palsu untuk dieksploitasi.
Nilai TOTP ini akan berlaku lebih lama dari jumlah waktu yang ditampilkan di layar perangkat (pada umumnya dua kali lebih panjang).
== Sejarah ==
Draf TOTP sebelumnya dikembangkan melalui kerja sama beberapa anggota OATH untuk menciptakan standar yang didukung oleh sejumlah industri. TOTP melengkapi standar HOTP sekali-pakai berbasis-kejadian dan menawarkan lebih banyak opsi bagi organisasi dan perusahaan dalam memilih teknologi yang paling sesuai dengan persyaratan aplikasi dan pedoman keamanan mereka. Pada tahun 2008, OATH menyerahkan versi draf spesifikasi tersebut kepada IETF. Versi ini menggabungkan semua umpan balik dan komentar yang diterima penulis dari komunitas teknis berdasarkan versi sebelumnya.<ref>{{Cite web|url=http://www.openauthentication.org/news/20080408|title=OATH Submits TOTP: Time-Based One Time Password Specification to IETF|last=Alexander|first=Madison|date=|website=Open Authentication|access-date=22 February 2010}}</ref> Pada bulan Mei 2011, TOTP secara resmi menjadi [[Request for Comments|RFC]] 6238.<ref name="RFC6238/">
== Referensi ==
{{Reflist
== Pranala luar ==
* [https://nbviewer.jupyter.org/github/algorithmic-space/cryptoy/blob/master/rfc6238.ipynb Langkah demi langkah implementasi Python di Notebook Jupyter]
* [https://www.docker.com/blog/designing-docker-hub-2fa/ Merancang Hub Docker Otentikasi Dua Faktor], (bagian "Menggunakan Otentikasi Sandi Satu Kali Berbasis Waktu (TOTP)").
[[Kategori:Algoritma kriptografi]]
[[Kategori:Protokol Internet]]
|