Mündəricat:

Arduino TOTP Generator: 3 addım
Arduino TOTP Generator: 3 addım

Video: Arduino TOTP Generator: 3 addım

Video: Arduino TOTP Generator: 3 addım
Video: TOTP Arduino authenticator with USB keyboard emulation 2024, Noyabr
Anonim
Arduino TOTP generatoru
Arduino TOTP generatoru
Arduino TOTP generatoru
Arduino TOTP generatoru
Arduino TOTP generatoru
Arduino TOTP generatoru

İlham

Kriptoqrafiya və təhlükəsizlik ilə maraqlanan bir dostum olduğu üçün mükəmməl bir ad günü hədiyyəsi yaratmaq istədim.

*Bu, doğum günü hədiyyəsi olaraq hazırladığım və qısa müddət ərzində yaradılmış bir layihədir (səliqəsiz işçiliyi bağışla)

QEYD: Bu layihədə istifadə olunan TOTP nəsli 6 rəqəmli kodlar yaradır və istifadə edir, lakin hazırkı əlimdəki avadanlıq səbəbiylə son 2 rəqəmi kəsib 4 rəqəmi göstərib istifadə etməyi üstün tutdum. təhlükəsizlik.

Ümumi məlumat

Bu layihə, hər 30 saniyədə əvvəlcədən paylaşılmış bir düyməni və cari vaxtı (real vaxt saat modulunun istifadəsini izləyir) istifadə edərək yeni bir kod yaradır və düyməyə basıldıqda ekranda göstərilir. Ən çox istifadə olunan vəziyyət, vaxta əsaslanan birdəfəlik şifrə (TOTP) və HMAC əsaslı birdəfəlik şifrəyə (HOTP) əsaslanan iki faktorlu yoxlama olardı.

TOTP, paylaşılan gizli açardan birdəfəlik şifrəni və cari vaxtı hesablayan bir alqoritmdir. HTOP, birdəfəlik parol yaratmaq üçün HMAC alqoritmindən istifadə edən bir alqoritmdir.

Google, Microsoft və Steam kimi şirkətlər artıq iki faktorlu identifikasiyası üçün TOTP texnologiyasından istifadə edirlər

Maraqlı Linklər

Google-un istifadəçilərin kimliyini təsdiqləmək üçün Google-un bu texnologiyadan necə istifadə etdiyini izah edən məqalə-https://medium.com/@tilaklodha/google-authenticator-and-how-it-works-2933a4ece8c2

Bu layihədən istifadə edərək proqram yaratarkən istifadə edilə bilən HOTP və TOTP -nin JavaScript tətbiqi -

Bu layihədə istifadə olunan Arduino üçün kriptoqrafik kitabxana -

TOTP Kağızı -

Təcrübə səviyyəsi

Bu Təlimat, təhlükəsizlik ilə maraqlanan və TOTP -nin yaradılmasına gözəl bir hardware komponenti tətbiq etmək istəyənlər üçündür. Bu təlimat elektronika diaqramlarının təfsirinin və ilkin proqramlaşdırmanın əsaslarını artıq başa düşən bir tamaşaçı üçün yazılmışdır, ancaq bu Təlimatı tam olaraq yerinə yetirməyi planlaşdırırsınızsa, heç bir təcrübəniz yoxdursa narahat olmayın və suallar verməkdən çekinmeyin. şərhlər! Bundan əlavə, layihə daha təcrübəli istehsalçılar üçün də maraqlı ola bilər, çünki son məhsul yalnız mənim fikrimcə gözəl bir parça deyil, həm də genişlənmə potensialına və çox çətinlik çəkmədən yeni xüsusiyyətlərə malikdir.

Təchizat

Materiallar:

  1. 1x Arduino Nano (Amazon)
  2. 1x DS3231 AT24C32 Real-Time Clock (RTC) Modulu (Amazon)
  3. 1x SH5461AS Ümumi Katod 4 rəqəmli 7 seqment (Amazon)
  4. 1x düymə (Amazon)
  5. 1x 10k rezistor (Amazon)
  6. İSTƏYƏN 1x 5x7cm PCB (Amazon)
  7. İsteğe bağlı PCB -yə lehimləmə üçün tel
  8. İsteğe bağlı 1x test üçün çörək paneli (Amazon)

Addım 1: Montaj və Test

Montaj və Test
Montaj və Test
Montaj və Test
Montaj və Test
Montaj və Test
Montaj və Test

Çörək taxtasındakı bütün komponentləri bir yerə yığın və əlavə edilmiş sxemə görə tel edin (Fritzing faylı burada).

Arduino IDE -ni quraşdırdığınızdan əmin olun (yoxsa onlayn olaraq tapa bilərsiniz) və aşağıdakı kitabxanaları quraşdırın:

github.com/lucadentella/TOTP-Arduino

github.com/adafruit/RTClib

github.com/maniacbug/Cryptosuite

Əlavə edilmiş eskizi yükləyin (bura da daxil olmaq olar: https://gist.github.com/shiv213/569f01a54988cb0207966be9a65cc5ab) və Arduino IDE -dən istifadə edərək açın. Bu linki açın (https://www.lucadentella.it/OTP/) və hesab adı sahəsinə hər hansı bir ad daxil edin və bu dəyərlərin hər ikisini də saxladığınızdan əmin olaraq aşağıdakı sahəyə xüsusi bir gizli açar (10 simvol uzunluğunda) daxil edin. ehtiyat üçün təhlükəsiz bir yerdə. "Arduino HEX array:" sahəsinin məzmununu kopyalayın və Arduino redaktoruna geri dönün, 25 -ci sətirdəki (hmacKey) silsiləni saytdan kopyaladığınızla əvəz edin.

Hər bir tel bağlantısını iki dəfə yoxladıqdan sonra, RTC modulunun içərisində bir sikkə yuvası olduğundan əmin olun və USB mini kabeli istifadə edərək Arduino noutbuka qoşun və əlavə edilmiş eskizi yükləyin.

Yüklədikdən sonra düyməyə basıldıqda ekranda bir rəqəm görünməlidir. Google Authenticator tətbiqini bir ağıllı telefona yükləsəniz və QEX kodunu skan edərək və ya "Google Authenticator kodu" nu yazaraq HEX dizisini yaratmaq üçün istifadə olunan sayta qayıtsanız, tətbiqdə göstərilən bir rəqəm görməli olacaqsınız. Hər şey düzgün işləyirsə, düyməni basdığınız zaman, göstərilən 4 rəqəm smartfon tətbiqində göstərilən cari kodun ilk 4 -ə uyğun olmalıdır. Əgər belə deyilsə, Arduino kodunu yükləmək üçün istifadə olunan kompüterin UTC vaxtına təyin olunduğundan əmin olun və yenidən cəhd edin.

Addım 2: PCB -yə köçürmə

PCB -yə köçürmə
PCB -yə köçürmə
PCB -yə köçürmə
PCB -yə köçürmə

Hər şeyin işlək vəziyyətdə olduğundan əmin olduqdan sonra, komponentləri PCB -yə köçürə və uyğun göründüyünüz halda hər şeyi birlikdə lehimləyə bilərsiniz. Fritzing faylına əlavə olaraq bir PCB diaqramı əlavə etdim (burada mövcuddur). Diqqət yetirin ki, bütün komponentləri estetika üçün lövhənin üstünə qoydum, həm də altına quraşdırıla bilər və sonra daha təmiz etmək üçün bir növ korpusa daxil edə bilərik. Bölmə üçün müvəqqəti bir qutu yaratmaq üçün PCB tərəflərinə Sharpie ilə rənglənmiş popsicle çubuqlarını kəsdim və isti yapışdırdım. Başqa bir əlavə addım, Arduinonun VIN və GND pinlərinə 9 voltluq bir batareya klipi bağlamaqdır ki, bu da onu batareyadan idarə edir.

Addım 3: Bitdi

Bitdi!
Bitdi!
Bitdi!
Bitdi!
Bitdi!
Bitdi!

Tamamlanmış generatorum belə oldu, əgər izləyib özünüz yaratmısınızsa, aşağıda paylaşın!

Uyğun görürsünüzsə, STEM Müsabiqəsi üçün Təlimatçılığımı səsləndirdiyinizə əmin olun və aşağıda suallarınızı verə bilərsiniz.

Tövsiyə: