Daftar Isi:

Arduino TOTP Generator: 3 Langkah
Arduino TOTP Generator: 3 Langkah

Video: Arduino TOTP Generator: 3 Langkah

Video: Arduino TOTP Generator: 3 Langkah
Video: TOTP Arduino authenticator with USB keyboard emulation 2024, Juli
Anonim
Arduino TOTP Generator
Arduino TOTP Generator
Arduino TOTP Generator
Arduino TOTP Generator
Arduino TOTP Generator
Arduino TOTP Generator

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:

  1. 1x Arduino Nano (Amazon)
  2. 1x DS3231 AT24C32 Modul Jam Waktu Nyata (RTC) (Amazon)
  3. 1x SH5461AS Common Cathode 4 digit 7-segmen (Amazon)
  4. 1x Tombol Tekan (Amazon)
  5. 1x 10k Resistor (Amazon)
  6. OPSIONAL 1x5x7cm PCB (Amazon)
  7. Kawat OPSIONAL untuk menyolder ke PCB
  8. OPSIONAL 1x Breadboard untuk pengujian (Amazon)

Langkah 1: Perakitan dan Pengujian

Perakitan dan Pengujian
Perakitan dan Pengujian
Perakitan dan Pengujian
Perakitan dan Pengujian
Perakitan dan Pengujian
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

Mentransfer ke PCB
Mentransfer ke PCB
Mentransfer ke PCB
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

Selesai!
Selesai!
Selesai!
Selesai!
Selesai!
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: