Cuprins:

Generator Arduino TOTP: 3 pași
Generator Arduino TOTP: 3 pași

Video: Generator Arduino TOTP: 3 pași

Video: Generator Arduino TOTP: 3 pași
Video: 7 ПОЛЕЗНЫХ устройств на АРДУИНО, которые можно собрать за 15 минут. 2024, Iulie
Anonim
Generator Arduino TOTP
Generator Arduino TOTP
Generator Arduino TOTP
Generator Arduino TOTP
Generator Arduino TOTP
Generator Arduino TOTP

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:

  1. 1x Arduino Nano (Amazon)
  2. 1x modul DS3231 AT24C32 cu ceas în timp real (RTC) (Amazon)
  3. 1x SH5461AS Catod comun 4 cifre cu 7 segmente (Amazon)
  4. 1x Buton (Amazon)
  5. 1x rezistor 10k (Amazon)
  6. OPȚIONAL 1x 5x7cm PCB (Amazon)
  7. Sârm OPȚIONAL pentru lipire la PCB
  8. OPȚIONAL 1x Breadboard pentru testare (Amazon)

Pasul 1: Asamblare și testare

Asamblare și testare
Asamblare și testare
Asamblare și testare
Asamblare și testare
Asamblare și testare
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

Transferul la PCB
Transferul la PCB
Se transferă pe PCB
Se transferă 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

Terminat!
Terminat!
Terminat!
Terminat!
Terminat!
Terminat!

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: