Daftar Isi:
Video: Arduino TOTP Generator: 3 Langkah
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:55
Inspirasi
Memiliki teman yang tertarik dengan kriptografi dan keamanan, saya ingin membuat hadiah ulang tahun yang sempurna.
*Ini adalah proyek yang saya buat sebagai hadiah ulang tahun dan dibuat dalam batasan waktu yang ketat (maafkan pengerjaan yang berantakan)
CATATAN: Generasi TOTP yang digunakan dalam proyek ini menghasilkan dan menggunakan kode 6 digit, tetapi karena perangkat keras saya saat ini, saya memilih untuk memotong 2 digit yang tertinggal dan menampilkan dan menggunakan 4, bisa dibilang (tetapi tidak terlalu) mengurangi keamanan.
Informasi Umum
Proyek ini menghasilkan kode baru setiap 30 detik menggunakan kunci yang dibagikan sebelumnya dan waktu saat ini (yang dilacak menggunakan modul jam waktu nyata) dan menampilkannya di layar saat tombol ditekan. Kasus penggunaan yang paling umum adalah verifikasi dua faktor berdasarkan Time-based One Time Password (TOTP) dan One Time Password (HOTP) berbasis HMAC untuk otentikasi.
TOTP adalah algoritma yang menghitung kata sandi satu kali dari kunci rahasia bersama dan waktu saat ini. HTOP adalah algoritma yang menggunakan algoritma HMAC untuk menghasilkan kata sandi satu kali.
Perusahaan seperti Google, Microsoft, dan Steam sudah menggunakan teknologi TOTP untuk otentikasi dua faktor mereka
Tautan Menarik
Artikel yang menjelaskan cara Google menggunakan teknologi ini untuk mengautentikasi pengguna -
Implementasi JavaScript HOTP dan TOTP yang dapat digunakan saat membuat perangkat lunak menggunakan proyek ini -
Pustaka kriptografi untuk Arduino yang digunakan dalam proyek ini -
Kertas TOTP -
Tingkat Keahlian
Instruksi ini ditujukan untuk penggemar yang tertarik pada keamanan dan mungkin ingin menerapkan komponen perangkat keras yang bagus untuk generasi TOTP mereka. Instruksi ini ditulis untuk audiens yang sudah memahami dasar-dasar menafsirkan diagram elektronik dan pemrograman dasar, tetapi jika Anda berencana untuk mengikuti Instruksi ini dengan tepat, jangan khawatir jika Anda tidak memiliki pengalaman, dan jangan ragu untuk mengajukan pertanyaan di komentar! Selain itu, proyek ini juga dapat menarik bagi pembuat yang lebih berpengalaman karena produk akhir tidak hanya bagus untuk dimiliki (menurut saya), tetapi memiliki begitu banyak potensi untuk ekspansi dan fitur baru tanpa banyak kerumitan.
Perlengkapan
Bahan:
- 1x Arduino Nano (Amazon)
- 1x DS3231 AT24C32 Modul Jam Waktu Nyata (RTC) (Amazon)
- 1x SH5461AS Common Cathode 4 digit 7-segmen (Amazon)
- 1x Tombol Tekan (Amazon)
- 1x 10k Resistor (Amazon)
- OPSIONAL 1x5x7cm PCB (Amazon)
- Kawat OPSIONAL untuk menyolder ke PCB
- OPSIONAL 1x Breadboard untuk pengujian (Amazon)
Langkah 1: Perakitan dan Pengujian
Pasang semua komponen pada papan tempat memotong roti dan sambungkan sesuai dengan diagram pengkabelan terlampir (file Fritzing ada di sini).
Pastikan Anda telah menginstal Arduino IDE (dapat ditemukan online jika belum) dan instal library berikut:
github.com/lucadentella/TOTP-Arduino
github.com/adafruit/RTClib
github.com/maniacbug/Cryptosuite
Unduh sketsa terlampir (bisa juga diakses di sini: https://Gist.github.com/shiv213/569f01a54988cb0207966be9a65cc5ab), dan buka menggunakan Arduino IDE. Buka tautan ini (https://www.lucadentella.it/OTP/) dan masukkan nama apa pun di bidang nama akun, dan kunci rahasia khusus (panjang 10 karakter) di bidang berikut, pastikan untuk menyimpan kedua nilai tersebut di tempat yang aman untuk cadangan. Salin isi kolom "Arduino HEX array:", dan beralih kembali ke editor Arduino, mengganti array pada baris 25 (hmacKey) dengan yang Anda salin dari situs.
Setelah memeriksa ulang setiap koneksi kabel, pastikan modul RTC memiliki sel koin di dalamnya, dan hubungkan Arduino ke laptop Anda menggunakan kabel mini USB, dan unggah sketsa terlampir.
Setelah mengunggah, ketika tombol ditekan, nomor akan muncul di layar. Jika Anda mengunduh aplikasi Google Authenticator di ponsel cerdas dan kembali ke situs yang digunakan untuk menghasilkan larik HEX, memindai kode QR atau mengetik "kode Google Authenticator" ke dalam aplikasi, Anda akan melihat nomor yang ditampilkan di aplikasi. Jika semuanya berfungsi dengan benar, saat Anda menekan tombol, 4 digit yang ditampilkan harus sesuai dengan 4 pertama dari kode saat ini yang ditampilkan di aplikasi ponsel cerdas. Jika tidak, pastikan komputer yang digunakan untuk mengunggah kode Arduino diatur ke waktu UTC dan coba lagi.
Langkah 2: Mentransfer ke PCB
Setelah memastikan semuanya berfungsi dengan baik, Anda dapat mentransfer komponen ke PCB dan menyolder semuanya bersama-sama sesuai keinginan Anda. Saya telah melampirkan diagram PCB selain file Fritzing (tersedia di sini). Perhatikan bahwa saya menempatkan semua komponen di bagian atas papan untuk estetika, tetapi juga dapat dipasang di bawahnya dan kemudian ditutup dalam semacam wadah untuk membuatnya lebih bersih. Saya memotong dan menempelkan stik es loli yang diwarnai dengan Sharpie ke sisi PCB untuk membuat kotak darurat untuk unit. Langkah opsional lainnya adalah memasang klip baterai 9 volt ke pin VIN dan GND Arduino, membuatnya dioperasikan dengan baterai.
Langkah 3: Selesai
Ini adalah bagaimana generator saya yang sudah selesai, jika Anda mengikuti dan membuatnya sendiri, bagikan di bawah ini!
Pastikan untuk memilih Instructable saya untuk Kontes STEM jika Anda mau, dan tinggalkan komentar/pertanyaan apa pun yang mungkin Anda miliki di bawah!
Direkomendasikan:
Cara Menggunakan Generator Sinyal Frekuensi Arduino DDS AD9850: 7 Langkah
Cara Menggunakan Generator Sinyal Frekuensi Arduino DDS AD9850 : Dalam Tutorial ini kita akan belajar cara membuat Generator Sinyal Frekuensi menggunakan modul AD9850 dan Arduino. Tonton Videonya! Catatan: Saya berhasil mendapatkan frekuensi hingga +50MHz tetapi kualitas sinyal menjadi lebih buruk dengan frekuensi yang lebih tinggi
Generator / Penguji 4-20ma Menggunakan Arduino: 8 Langkah
Generator/Penguji 4-20ma Menggunakan Arduino: Generator 4-20mA tersedia di ebay, tetapi saya menyukai bagian DIY dan menggunakan bagian yang telah saya letakkan. Saya ingin menguji input analog PLC untuk memverifikasi pembacaan scada dan untuk menguji output instrumen 4-20mA. Ada lo
Generator: Generator Gelisah Spinner 3 dalam 1: 3 Langkah
Generator: Generator Gelisah Spinner 3 in 1: generator pemintal gelisah 3 in 1 - sekarang Anda dapat mengonfigurasi generator pemintal gelisah Anda (tiga pilihan) generator mikro menggunakan 3 bola neodymium dan 3 cakram neodymium (led dan besi koil kecil lebih sedikit) Temukan kami DI INSTAGRAM dan lihat listrik sederhana
Generator Musik Berbasis Cuaca (Generator Midi Berbasis ESP8266): 4 Langkah (dengan Gambar)
Weather Based Music Generator (ESP8266 Based Midi Generator): Hai, hari ini saya akan menjelaskan cara membuat generator Musik berbasis Cuaca kecil Anda sendiri. Ini didasarkan pada ESP8266, yang mirip dengan Arduino, dan merespons suhu, hujan dan intensitas ringan. Jangan berharap untuk membuat seluruh lagu atau program akord
Generator - Generator DC Menggunakan Reed Switch: 3 Langkah
Generator - Generator DC Menggunakan Reed Switch: Generator DC Sederhana Generator arus searah (DC) adalah mesin listrik yang mengubah energi mekanik menjadi listrik arus searah.Penting: Generator arus searah (DC) dapat digunakan sebagai motor DC tanpa konstruksi apapun perubahan