Isi kandungan:
Video: Arduino TOTP Generator: 3 Langkah
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:08
Inspirasi
Mempunyai rakan yang berminat dengan kriptografi dan keselamatan, saya ingin membuat hadiah ulang tahun yang sempurna.
* Ini adalah projek yang saya buat sebagai hadiah ulang tahun dan dibuat dalam kekangan masa yang ketat (maafkan kerja yang tidak kemas)
CATATAN: Generasi TOTP yang digunakan dalam projek ini menghasilkan dan menggunakan kod 6 digit, tetapi kerana perkakasan saya yang ada sekarang, saya memilih untuk memotong 2 digit dan paparan dan menggunakan 4, boleh dikatakan (tetapi tidak banyak) mengurangkan keselamatan.
Maklumat Am
Projek ini menghasilkan kod baru setiap 30 saat menggunakan kunci yang telah dipakai sebelumnya dan masa semasa (yang dijejaki menggunakan modul jam masa nyata) dan memaparkannya di paparan apabila butang ditekan. Kes penggunaan yang paling biasa adalah pengesahan dua faktor berdasarkan Kata Laluan Satu Masa Berasaskan Masa (TOTP) dan Kata Laluan Satu Masa (HOTP) berdasarkan HMAC untuk pengesahan.
TOTP adalah algoritma yang mengira kata laluan satu kali dari kunci rahsia yang dikongsi dan masa semasa. HTOP adalah algoritma yang menggunakan algoritma HMAC untuk menghasilkan kata laluan sekali sahaja.
Syarikat seperti Google, Microsoft, dan Steam sudah menggunakan teknologi TOTP untuk pengesahan dua faktor mereka
Pautan Menarik
Artikel yang menerangkan bagaimana Google menggunakan teknologi ini untuk mengesahkan pengguna -
Pelaksanaan JavaScript HOTP dan TOTP yang mungkin digunakan ketika membuat perisian yang menggunakan projek ini -
Perpustakaan kriptografi untuk Arduino yang digunakan dalam projek ini -
Kertas TOTP -
Tahap Kepakaran
Instructable ini adalah untuk peminat yang berminat dengan keselamatan dan mungkin ingin menerapkan komponen perkakasan yang bagus untuk generasi TOTP mereka. Instruksional ini ditulis untuk penonton yang sudah memahami asas-asas menafsirkan diagram elektronik dan pengaturcaraan asas, tetapi jika anda berencana untuk mengikuti Instructable ini dengan tepat, jangan risau jika anda tidak mempunyai pengalaman, dan jangan ragu untuk mengemukakan soalan di komen! Lebih jauh lagi, projek ini dapat menarik bagi pembuat yang lebih berpengalaman juga kerana produk akhir bukan sahaja senang dimiliki (menurut pendapat saya), tetapi mempunyai begitu banyak potensi pengembangan dan ciri baru tanpa banyak kerumitan.
Bekalan
Bahan:
- 1x Arduino Nano (Amazon)
- 1x Modul Jam Sebenar (RTC) DS3231 AT24C32 (Amazon)
- 1x SH5461AS Common Cathode 4 digit 7-segmen (Amazon)
- Butang Tekan 1x (Amazon)
- Perintang 1x 10k (Amazon)
- PILIHAN 1x 5x7cm PCB (Amazon)
- Kawat PILIHAN untuk pematerian ke PCB
- Papan roti 1x PILIHAN untuk ujian (Amazon)
Langkah 1: Pemasangan dan Pengujian
Pasang semua komponen di papan roti dan kawatnya mengikut rajah pendawaian yang dilampirkan (fail Fritzing ada di sini).
Pastikan anda memasang Arduino IDE (ia boleh didapati dalam talian jika anda tidak) dan pasangkan perpustakaan berikut:
github.com/lucadentella/TOTP-Arduino
github.com/adafruit/RTClib
github.com/maniacbug/Cryptosuite
Muat turun lakaran yang dilampirkan (juga dapat diakses di sini: https://gist.github.com/shiv213/569f01a54988cb0207966be9a65cc5ab), dan buka dengan menggunakan Arduino IDE. Buka pautan ini (https://www.lucadentella.it/OTP/) dan masukkan sebarang nama di medan nama akaun, dan kunci rahsia tersuai (panjang 10 aksara) di bidang berikut, pastikan untuk menyimpan kedua-dua nilai tersebut di tempat yang selamat untuk sandaran. Salin kandungan bidang "Arduino HEX array:", dan beralih kembali ke editor Arduino, menggantikan susunan pada baris 25 (hmacKey) dengan yang anda salin dari laman web ini.
Setelah memeriksa semula setiap sambungan wayar, pastikan modul RTC mempunyai sel duit syiling di dalamnya, dan sambungkan Arduino ke komputer riba anda menggunakan kabel mini USB, dan muat naik lakaran yang dilampirkan.
Setelah memuat naik, apabila butang ditekan, angka akan muncul di layar. Sekiranya anda memuat turun aplikasi Google Authenticator pada telefon pintar dan kembali ke laman web yang digunakan untuk menghasilkan array HEX, mengimbas kod QR atau mengetik "kod Google Authenticator" ke dalam aplikasi, anda akan melihat nombor yang ditunjukkan dalam aplikasi. Sekiranya semuanya berfungsi dengan betul, semasa anda menekan butang tekan, 4 digit yang dipaparkan harus sesuai dengan 4 pertama kod semasa yang ditunjukkan pada aplikasi telefon pintar. Sekiranya ini tidak berlaku, pastikan komputer yang digunakan untuk memuat naik kod Arduino ditetapkan ke waktu UTC dan cuba lagi.
Langkah 2: Memindahkan ke PCB
Setelah memastikan semuanya berfungsi dengan baik, anda boleh memindahkan komponen ke PCB dan menyatukan semuanya bersama-sama namun kelihatannya sesuai. Saya telah melampirkan gambar rajah PCB sebagai tambahan kepada fail Fritzing (tersedia di sini). Perhatikan bahawa saya meletakkan semua komponen di bahagian atas papan untuk estetika, tetapi juga boleh dipasang di bawahnya dan kemudian dilampirkan di beberapa jenis perumahan untuk menjadikannya lebih bersih. Saya memotong dan melekat batang popsicle yang dilekatkan dengan Sharpie ke sisi PCB untuk membuat kotak sementara untuk unit. Langkah pilihan lain ialah memasang klip bateri 9 volt ke pin VIN dan GND Arduino, menjadikannya dikendalikan bateri.
Langkah 3: Selesai
Ini adalah bagaimana penjana saya yang lengkap, jika anda mengikuti dan membuatnya sendiri, bagikan di bawah!
Pastikan anda memilih Instructable saya untuk Peraduan STEM jika anda rasa sesuai, dan tinggalkan komen / sebarang pertanyaan yang mungkin ada di bawah!
Disyorkan:
Cara Menggunakan Arduino DDS Frequency Signal Generator AD9850: 7 Langkah
Cara Menggunakan Arduino DDS Frequency Signal Generator AD9850: Dalam Tutorial ini kita akan belajar bagaimana membuat Frekuensi Signal Generator menggunakan modul AD9850 dan Arduino. Tonton Video! Catatan: Saya berjaya mendapatkan frekuensi hingga + 50MHz tetapi kualiti isyarat semakin meningkat lebih teruk dengan frekuensi yang lebih tinggi
Generator: Fidget Spinner Generator 3 in 1: 3 Langkah
Generator: Fidget Spinner Generator 3 in 1: fidget spinner generator 3 in 1 - kini anda boleh mengkonfigurasi fidget spinner generator anda (tiga pilihan) penjana mikro menggunakan 3 sfera neodymium dan 3 cakera neodymium (besi gegelung dipimpin dan kecil) Cari kami DI INSTAGRAM dan lihat elektrik sederhana
Generator - DC Generator Menggunakan Reed Switch: 3 Langkah
Penjana - Penjana DC Menggunakan Suis Reed: Penjana Dc Mudah Penjana arus terus (DC) adalah mesin elektrik yang menukar tenaga mekanikal menjadi elektrik arus terus. Penting: Penjana arus terus (DC) boleh digunakan sebagai motor DC tanpa sebarang konstruktif perubahan
Arduino Yún Morse Generator: 4 Langkah (dengan Gambar)
Arduino Yún Morse Generator: Pernah ke bar di mana anda tidak dapat bercakap dengan rakan anda kerana muziknya terlalu kuat? baik sekarang anda boleh meminta bir untuknya dalam Morse Code! Mari kita mulakan
Arduino Synth / Tone Generator: 5 Langkah
Arduino Synth / Tone Generator: Ini adalah Synth / Tone Generator yang menggunakan arahan Tone yang berasal dari Arduino. Ia mempunyai 12 kekunci individu yang dapat diatur untuk memainkan frekuensi gelombang persegi. Ia mempunyai kemampuan untuk naik dan turun oktaf dengan butang. Ia juga mempunyai