Cuprins:
Video: Generator Arduino TOTP: 3 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:43
Inspirație
Având un prieten interesat de criptografie și securitate, am vrut să creez cadoul de ziua perfectă.
* Acesta este un proiect pe care l-am făcut ca cadou de ziua de naștere și a fost creat în condiții de timp restrânse (scuzați manopera dezordonată)
NOTĂ: generația TOTP care este utilizată în acest proiect generează și utilizează coduri de 6 cifre, dar datorită hardware-ului meu actual, am optat pentru tăierea celor 2 cifre finale și afișarea și utilizarea a 4, fără îndoială (dar nu foarte mult) reducerea Securitate.
Informații generale
Acest proiect generează un nou cod la fiecare 30 de secunde, utilizând o tastă preshared și ora curentă (care se ține evidența utilizării modulului de ceas în timp real) și îl afișează pe afișaj atunci când butonul este apăsat. Cel mai frecvent caz de utilizare ar fi verificarea în doi factori, bazată pe Parolă bazată pe o singură dată (TOTP) și Parolă cu o singură dată (HOTP) bazată pe HMAC pentru autentificare.
TOTP este un algoritm care calculează o parolă unică dintr-o cheie secretă partajată și ora curentă. HTOP este un algoritm care folosește algoritmul HMAC pentru a genera o parolă unică.
Companii precum Google, Microsoft și Steam folosesc deja tehnologia TOTP pentru autentificarea lor cu doi factori
Link-uri interesante
Articol care explică modul în care Google folosește această tehnologie pentru autentificarea utilizatorilor -
Implementarea JavaScript a HOTP și TOTP care pot fi utilizate la crearea de software utilizând acest proiect -
Biblioteca criptografică pentru Arduino utilizată în acest proiect -
Hârtie TOTP -
Nivelul de expertiză
Acest instructabil este pentru entuziaștii interesați de securitate și care ar putea dori să implementeze o componentă hardware plăcută la generația TOTP-ului lor. Acest instructable este scris pentru un public care înțelege deja elementele de bază ale interpretării diagramelor electronice și a programării rudimentare, dar dacă intenționați să urmați exact acest Instructable, nu vă faceți griji dacă nu aveți experiență și nu ezitați să puneți întrebări în comentarii! În plus, proiectul poate fi interesant și pentru producătorii mai experimentați, deoarece produsul final nu este doar o piesă drăguță de avut (în opinia mea), dar are atât de mult potențial de extindere și caracteristici noi, fără prea multe probleme.
Provizii
Materiale:
- 1x Arduino Nano (Amazon)
- 1x modul DS3231 AT24C32 cu ceas în timp real (RTC) (Amazon)
- 1x SH5461AS Catod comun 4 cifre cu 7 segmente (Amazon)
- 1x Buton (Amazon)
- 1x rezistor 10k (Amazon)
- OPȚIONAL 1x 5x7cm PCB (Amazon)
- Sârm OPȚIONAL pentru lipire la PCB
- OPȚIONAL 1x Breadboard pentru testare (Amazon)
Pasul 1: Asamblare și testare
Asamblați toate componentele de pe panou și conectați-le conform schemei de conectare atașate (fișierul Fritzing este aici).
Asigurați-vă că aveți instalat Arduino IDE (poate fi găsit online dacă nu aveți) și instalați următoarele biblioteci:
github.com/lucadentella/TOTP-Arduino
github.com/adafruit/RTClib
github.com/maniacbug/Cryptosuite
Descărcați schița atașată (poate fi accesată și aici: https://gist.github.com/shiv213/569f01a54988cb0207966be9a65cc5ab) și deschideți-o utilizând ID-ul Arduino. Deschideți acest link (https://www.lucadentella.it/OTP/) și introduceți orice nume în câmpul nume de cont și o cheie secretă personalizată (lungă cu 10 caractere) în câmpul următor, asigurându-vă că salvați ambele valori. într-un loc sigur pentru backup. Copiați conținutul câmpului „Arduino HEX array:” și reveniți la editorul Arduino, înlocuind tabloul de pe linia 25 (hmacKey) cu cel pe care l-ați copiat de pe site.
După verificarea dublă a fiecărei conexiuni, asigurați-vă că modulul RTC are o celulă monedă și conectați Arduino la laptop folosind un mini cablu USB și încărcați schița atașată.
După încărcare, când butonul este apăsat, un număr ar trebui să apară pe ecran. Dacă descărcați aplicația Google Authenticator pe un smartphone și reveniți la site-ul folosit pentru a genera matricea HEX, scanând codul QR sau tastând „Google Authenticator code” în aplicație, ar trebui să vedeți un număr afișat în aplicație. Dacă totul funcționează corect, când apăsați butonul, cele 4 cifre afișate trebuie să se potrivească cu primele 4 din codul curent afișat în aplicația pentru smartphone. Dacă nu este cazul, asigurați-vă că computerul utilizat pentru încărcarea codului Arduino este setat la ora UTC și încercați din nou.
Pasul 2: Transferul pe PCB
După ce vă asigurați că totul este în stare de funcționare, puteți transfera componentele pe PCB și să lipiți totul împreună, oricum vi se pare potrivit. Am atașat o diagramă PCB în plus față de fișierul Fritzing (disponibil aici). Rețineți că am așezat toate componentele pe partea superioară a plăcii pentru estetică, dar pot fi montate și dedesubt și apoi închise într-un fel de carcasă pentru ao face mai curată. Am tăiat și lipit la cald bețe de gheață colorate cu Sharpie pe părțile laterale ale PCB-ului pentru a crea o cutie improvizată pentru unitate. Un alt pas opțional este să atașați o clemă de baterie de 9 volți la pinii VIN și GND ai Arduino, făcându-l să funcționeze pe baterie.
Pasul 3: Finalizat
Așa s-a dovedit generatorul meu completat, dacă ați urmat și ați făcut unul singur, împărtășiți-l mai jos!
Asigurați-vă că votați instructabilul meu pentru concursul STEM, dacă considerați că este potrivit, și lăsați un comentariu / orice întrebări pe care le aveți mai jos!
Recomandat:
Generator / Tester 4-20ma folosind Arduino: 8 pași
Generator / Tester 4-20ma folosind Arduino: Generatoarele de 4-20mA sunt disponibile pe eBay, dar eu iubesc partea DIY a lucrurilor și folosesc piesele pe care le-am așezat. Am vrut să testez intrările analogice ale PLC-ului nostru pentru a verifica citirile noastre scada și pentru a testa ieșirea instrumentelor de 4-20mA. Există loa
Generator de semnal RF 100 KHz-600 MHZ pe DDS AD9910 Arduino Shield: 5 pași
Generator de semnal RF 100 KHz-600 MHZ pe DDS AD9910 Arduino Shield: Cum se face un generator RF stabil, de înaltă precizie, stabil (cu modulare AM, FM) pe Arduino
Generator: Fidget Spinner Generator 3 în 1: 3 Pași
Generator: Fidget Spinner Generator 3 in 1: fidget spinner generator 3 in 1 - acum vă puteți configura generatorul fidget spinner (trei opțiuni) microgeneratorul folosește 3 sfere de neodim și 3 discuri de neodim (cu led și bobină mică mai puțin) PE INSTAGRAM și vedeți un simplu electric
Generator de muzică bazat pe vreme (Generator Midi bazat pe ESP8266): 4 pași (cu imagini)
Generator de muzică bazat pe vreme (Generator midi bazat pe ESP8266): Bună, astăzi vă voi explica cum să vă creați propriul generator de muzică bazat pe vreme. Se bazează pe un ESP8266, care este un fel ca un Arduino și răspunde la temperatură, ploaie și intensitatea luminii. Nu vă așteptați să producă melodii întregi sau programe de acord
Generator - Generator de curent continuu folosind comutatorul Reed: 3 pași
Generator - Generator de curent continuu utilizând comutatorul Reed: Generator de curent continuu simplu Un generator de curent continuu (DC) este o mașină electrică care convertește energia mecanică în electricitate de curent continuu. schimbări