Satura rādītājs:

Arduino TOTP ģenerators: 3 soļi
Arduino TOTP ģenerators: 3 soļi

Video: Arduino TOTP ģenerators: 3 soļi

Video: Arduino TOTP ģenerators: 3 soļi
Video: TOTP Arduino authenticator with USB keyboard emulation 2024, Novembris
Anonim
Arduino TOTP ģenerators
Arduino TOTP ģenerators
Arduino TOTP ģenerators
Arduino TOTP ģenerators
Arduino TOTP ģenerators
Arduino TOTP ģenerators

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:

  1. 1x Arduino Nano (Amazon)
  2. 1x DS3231 AT24C32 reālā laika pulksteņa (RTC) modulis (Amazon)
  3. 1x SH5461AS kopējā katoda 4 ciparu 7 segmentu (Amazon)
  4. 1x spiedpoga (Amazon)
  5. 1x 10k rezistors (Amazon)
  6. IZVĒLES 1x 5x7cm PCB (Amazon)
  7. IZVĒLES vads lodēšanai pie PCB
  8. IZVĒLES 1x maizes dēlis testēšanai (Amazon)

1. darbība: montāža un pārbaude

Montāža un pārbaude
Montāža un pārbaude
Montāža un pārbaude
Montāža un pārbaude
Montāža un pārbaude
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ārsūtīšana uz PCB
Pārsūtīšana uz PCB
Pārsūtīšana uz PCB
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

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