Satura rādītājs:
Video: Arduino TOTP ģenerators: 3 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:54
Iedvesma
Man bija draugs, kurš interesējās par kriptogrāfiju un drošību, es gribēju izveidot perfektu dzimšanas dienas dāvanu.
*Šis ir projekts, ko es uztaisīju kā dzimšanas dienas dāvanu un tika izveidots ierobežotā laika ierobežojumā (piedodiet par nekārtīgo darbu)
PIEZĪME: TOTP paaudze, kas tiek izmantota šajā projektā, ģenerē un izmanto 6 ciparu kodus, bet, pateicoties manai pašreizējai aparatūrai, es izvēlējos samazināt pēdējos 2 ciparus un parādīt un izmantot 4, iespējams (bet ne ievērojami) drošība.
Galvenā informācija
Šis projekts ģenerē jaunu kodu ik pēc 30 sekundēm, izmantojot iepriekš koplietotu atslēgu un pašreizējo laiku (kas tiek reģistrēts, izmantojot reālā laika pulksteņa moduli), un parāda to displejā, nospiežot pogu. Visizplatītākais izmantošanas gadījums būtu divu faktoru verifikācija, kuras pamatā ir uz laiku balstīta vienreizēja parole (TOTP) un HMAC balstīta vienreizēja parole (HOTP) autentifikācijai.
TOTP ir algoritms, kas no koplietotas slepenās atslēgas un pašreizējā laika aprēķina vienreizēju paroli. HTOP ir algoritms, kas izmanto HMAC algoritmu, lai ģenerētu vienreizēju paroli.
Uzņēmumi, piemēram, Google, Microsoft un Steam, divu faktoru autentifikācijai jau izmanto TOTP tehnoloģiju
Interesantas saites
Raksts, kurā paskaidrots, kā Google izmanto šo tehnoloģiju lietotāju autentificēšanai-https://medium.com/@tilaklodha/google-authenticator-and-how-it-works-2933a4ece8c2
HOTP un TOTP JavaScript ieviešana, ko var izmantot, veidojot programmatūru, izmantojot šo projektu -
Šajā projektā izmantotā Arduino kriptogrāfiskā bibliotēka -
TOTP papīrs -
Ekspertīzes līmenis
Šī pamācība ir paredzēta entuziastiem, kurus interesē drošība un kuri varētu vēlēties ieviest jauku aparatūras komponentu savas TOTP ģenerēšanai. Šī pamācība ir rakstīta auditorijai, kas jau saprot elektronikas diagrammu interpretācijas un elementāras programmēšanas pamatus, bet, ja jūs plānojat vienkārši precīzi ievērot šo pamācību, neuztraucieties, ja jums nav pieredzes, un uzdodiet jautājumus sadaļā komentāri! Turklāt projekts var būt interesants arī pieredzējušākiem veidotājiem, jo galaprodukts ir ne tikai jauks gabals, kas ir pieejams (manuprāt), bet tam ir tik daudz paplašināšanas un jaunu iespēju bez lielām problēmām.
Piegādes
Materiāli:
- 1x Arduino Nano (Amazon)
- 1x DS3231 AT24C32 reālā laika pulksteņa (RTC) modulis (Amazon)
- 1x SH5461AS kopējā katoda 4 ciparu 7 segmentu (Amazon)
- 1x spiedpoga (Amazon)
- 1x 10k rezistors (Amazon)
- IZVĒLES 1x 5x7cm PCB (Amazon)
- IZVĒLES vads lodēšanai pie PCB
- IZVĒLES 1x maizes dēlis testēšanai (Amazon)
1. darbība: montāža un pārbaude
Salieciet visas maizes dēļa sastāvdaļas un pievienojiet vadus atbilstoši pievienotajai elektroinstalācijas shēmai (Fritzing fails ir šeit).
Pārliecinieties, vai esat instalējis Arduino IDE (ja ne, to var atrast tiešsaistē) un instalējiet šādas bibliotēkas:
github.com/lucadentella/TOTP-Arduino
github.com/adafruit/RTClib
github.com/maniacbug/Cryptosuite
Lejupielādējiet pievienoto skici (tai var piekļūt arī šeit: https://gist.github.com/shiv213/569f01a54988cb0207966be9a65cc5ab) un atveriet to, izmantojot Arduino IDE. Atveriet šo saiti (https://www.lucadentella.it/OTP/) un ievadiet jebkuru vārdu konta nosaukuma laukā un pielāgotu slepeno atslēgu (10 rakstzīmes garu) nākamajā laukā, lai saglabātu abas šīs vērtības drošā vietā dublēšanai. Kopējiet lauka "Arduino HEX masīvs:" saturu un pārslēdzieties atpakaļ uz Arduino redaktoru, aizstājot masīvu 25. rindā (hmacKey) ar to, kuru esat nokopējis no vietnes.
Pēc katra vadu savienojuma atkārtotas pārbaudes pārliecinieties, vai RTC modulī ir monētu šūna, un pievienojiet Arduino klēpjdatoram, izmantojot USB mini vadu, un augšupielādējiet pievienoto skici.
Pēc augšupielādes, nospiežot pogu, ekrānā vajadzētu parādīties skaitlim. Ja lejupielādējat lietotni Google autentifikators viedtālrunī un dodaties atpakaļ uz vietni, kas izmantota HEX masīva ģenerēšanai, skenējot QR kodu vai ierakstot lietotnē “Google autentifikatora kods”, lietotnē ir redzams cipars. Ja viss darbojas pareizi, nospiežot spiedpogu, parādītajiem 4 cipariem jāatbilst pirmajiem 4 no pašreizējā koda, kas parādīts viedtālruņa lietotnē. Ja tas tā nav, pārliecinieties, vai dators, kas tiek izmantots Arduino koda augšupielādei, ir iestatīts uz UTC laiku, un mēģiniet vēlreiz.
2. darbība: pārsūtīšana uz PCB
Pēc tam, kad esat pārliecinājies, ka viss ir darba kārtībā, jūs varat pārsūtīt komponentus uz PCB un pielodēt visu kopā, kā jums šķiet piemērots. Papildus Fritzing failam (pieejams šeit) esmu pievienojis PCB diagrammu. Ņemiet vērā, ka estētikas labad es novietoju visus tāfeles augšdaļas elementus, taču tos var arī uzstādīt zem un pēc tam ieslēgt kaut kādā korpusā, lai padarītu to tīrāku. Nogriezu un karstā veidā pielīmējušās popsicle nūjas, kas iekrāsotas ar Sharpie, uz PCB malām, lai vienībai izveidotu pagaidu kastīti. Vēl viens izvēles solis ir piestiprināt 9 voltu akumulatora skavu Arduino VIN un GND tapām, padarot to darbināmu ar akumulatoru.
3. solis: pabeigts
Šādi izrādījās mans pabeigtais ģenerators, ja sekojāt un pats to uztaisījāt, dalieties tajā zemāk!
Noteikti balsojiet par manu Instructable par STEM konkursu, ja uzskatāt to par vajadzīgu, un atstājiet komentāru/visus jautājumus, kas jums varētu rasties zemāk!
Ieteicams:
4-20ma ģenerators/testeris, izmantojot Arduino: 8 soļi
4-20ma ģenerators/testeris, izmantojot Arduino: 4-20mA ģeneratori ir pieejami ebay, bet es viens mīlu DIY daļu no lietām un izmantojot manis esošās daļas. Es gribēju pārbaudīt mūsu PLC analogās ieejas, lai pārbaudītu mūsu scada rādījumus un lai pārbaudītu 4-20mA instrumentu izeju. Ir loa
RF signālu ģenerators 100 KHz-600 MHZ uz DDS AD9910 Arduino vairoga: 5 soļi
RF signālu ģenerators 100 KHz-600 MHZ uz DDS AD9910 Arduino Shield: Kā izveidot zemu troksni, augstu precizitāti, stabilu RF ģeneratoru (ar AM, FM modulāciju) Arduino
Interaktīvs lāzera lokšņu ģenerators ar Arduino: 11 soļi (ar attēliem)
Interaktīvs lāzera lokšņu ģenerators ar Arduino: Lāzerus var izmantot, lai radītu neticamus vizuālos efektus. Šajā projektā es izveidoju jauna veida lāzera displeju, kas ir interaktīvs un atskaņo mūziku. Ierīce rotē divus lāzerus, veidojot divas virpuļveida gaismas loksnes. Es iekļāvu attāluma sensoru
Mūzikas ģenerators uz laika apstākļiem (ESP8266 balstīts Midi ģenerators): 4 soļi (ar attēliem)
Mūzikas ģenerators uz laika apstākļiem (ESP8266 balstīts Midi ģenerators): Sveiki, šodien es paskaidrošu, kā izveidot savu mazo laika apstākļu mūzikas ģeneratoru. Tas ir balstīts uz ESP8266, kas ir kā Arduino, un tas reaģē uz temperatūru, lietu un gaismas intensitāte. Negaidiet, ka tas radīs visas dziesmas vai akordu programmu
Ģenerators - līdzstrāvas ģenerators, izmantojot Reed slēdzi: 3 soļi
Ģenerators - līdzstrāvas ģenerators, izmantojot Reed slēdzi: vienkāršs līdzstrāvas ģenerators Līdzstrāvas (DC) ģenerators ir elektriskā mašīna, kas mehānisko enerģiju pārvērš līdzstrāvas elektrībā. Svarīgi: līdzstrāvas (DC) ģeneratoru var izmantot kā līdzstrāvas motoru bez jebkādas konstrukcijas izmaiņas