Kazalo:

Arduino TOTP generator: 3 koraki
Arduino TOTP generator: 3 koraki

Video: Arduino TOTP generator: 3 koraki

Video: Arduino TOTP generator: 3 koraki
Video: TOTP Arduino authenticator with USB keyboard emulation 2024, November
Anonim
Arduino TOTP generator
Arduino TOTP generator
Arduino TOTP generator
Arduino TOTP generator
Arduino TOTP generator
Arduino TOTP generator

Navdih

Ker sem imel prijatelja, ki ga zanima kriptografija in varnost, sem si želel ustvariti popolno darilo za rojstni dan.

*To je projekt, ki sem ga naredil kot darilo za rojstni dan in je nastal v kratkih časovnih omejitvah (oprostite neurejeni izdelavi)

OPOMBA: Generacija TOTP, ki se uporablja v tem projektu, ustvarja in uporablja 6-mestne kode, vendar sem se zaradi trenutne strojne opreme pri roki odločil, da skrajšam 2 števki in prikažem ter uporabim 4, kar verjetno (vendar ne močno) zmanjša varnost.

Splošne informacije

Ta projekt vsakih 30 sekund ustvari novo kodo s predhodno dodeljenim ključem in trenutnim časom (ki se spremlja z uporabo modula ure v realnem času) in ga prikaže na zaslonu, ko pritisnete gumb. Najpogostejši primer uporabe bi bilo dvofaktorsko preverjanje, ki temelji na enkratnem geslu na podlagi časa (TOTP) in enkratnem geslu na osnovi HMAC (HOTP) za preverjanje pristnosti.

TOTP je algoritem, ki izračuna enkratno geslo iz skupnega tajnega ključa in trenutnega časa. HTOP je algoritem, ki uporablja algoritem HMAC za generiranje enkratnega gesla.

Podjetja, kot so Google, Microsoft in Steam, za dvofaktorsko preverjanje pristnosti že uporabljajo tehnologijo TOTP

Zanimive povezave

Članek, ki pojasnjuje, kako Google uporablja to tehnologijo za preverjanje pristnosti uporabnikov-https://medium.com/@tilaklodha/google-authenticator-and-how-it-works-2933a4ece8c2

JavaScript izvedba HOTP in TOTP, ki se lahko uporablja pri ustvarjanju programske opreme, ki uporablja ta projekt -

Kritografska knjižnica za Arduino, uporabljena v tem projektu -

TOTP dokument -

Raven strokovnosti

Ta Instructable je za navdušence, ki jih zanima varnost in bi morda želeli v generacijo svojega TOTP -a uvesti lepo komponento strojne opreme. Ta navodila so napisana za občinstvo, ki že razume osnove tolmačenja elektronskih diagramov in osnovnega programiranja, če pa nameravate natančno slediti temu navodilu, ne skrbite, če nimate izkušenj, in vas prosimo, da zastavite vprašanja v komentarji! Poleg tega je projekt lahko zanimiv tudi za bolj izkušene izdelovalce, saj končni izdelek ni le lep kos (po mojem mnenju), ampak ima toliko možnosti za razširitev in nove funkcije brez veliko težav.

Zaloge

Materiali:

  1. 1x Arduino Nano (Amazon)
  2. 1x modul DS3231 AT24C32 za uro v realnem času (RTC) (Amazon)
  3. 1x SH5461AS 4-mestna 7-segmentna skupna katoda (Amazon)
  4. 1x gumb (Amazon)
  5. 1x 10k upor (Amazon)
  6. NEOBVEZNO 1x 5 x 7 cm PCB (Amazon)
  7. NEOBVEZNA žica za spajkanje na tiskano vezje
  8. NEOBVEZNO 1x Ogledna plošča za testiranje (Amazon)

1. korak: Montaža in testiranje

Montaža in testiranje
Montaža in testiranje
Montaža in testiranje
Montaža in testiranje
Montaža in testiranje
Montaža in testiranje

Sestavite vse komponente na plošči in jih ožičite v skladu s priloženo shemo ožičenja (tukaj je datoteka Fritzing).

Prepričajte se, da imate nameščen Arduino IDE (če ga ne najdete na spletu) in namestite naslednje knjižnice:

github.com/lucadentella/TOTP-Arduino

github.com/adafruit/RTClib

github.com/maniacbug/Cryptosuite

Prenesite priloženo skico (dostopna je tudi tukaj: https://gist.github.com/shiv213/569f01a54988cb0207966be9a65cc5ab) in jo odprite z uporabo Arduino IDE. Odprite to povezavo (https://www.lucadentella.it/OTP/) in v polje za ime računa vnesite poljubno ime, v naslednje polje pa skrivni ključ po meri (dolg 10 znakov), pri tem pa shranite obe vrednosti na varnem mestu za varnostno kopiranje. Kopirajte vsebino polja "Arduino HEX array:" in se preklopite nazaj v urejevalnik Arduino, pri čemer matriko v vrstici 25 (hmacKey) zamenjate s tisto, ki ste jo kopirali s spletnega mesta.

Po dvakratnem preverjanju vsake žične povezave se prepričajte, da ima modul RTC v obliki kovanca in povežite Arduino s prenosnim računalnikom z mini kablom USB in naložite priloženo skico.

Po nalaganju, ko pritisnete gumb, se mora na zaslonu prikazati številka. Če prenesete aplikacijo Google Authenticator na pametni telefon in se vrnete na spletno mesto za ustvarjanje matrike HEX, skenirate kodo QR ali v aplikacijo vnesete »kodo Google Authenticator«, bi morala biti prikazana številka v aplikaciji. Če vse deluje pravilno, ko pritisnete gumb, se morajo prikazane 4 številke ujemati s prvimi 4 trenutne kode, prikazane v aplikaciji za pametni telefon. Če temu ni tako, se prepričajte, da je računalnik, ki se uporablja za nalaganje kode Arduino, nastavljen na čas UTC in poskusite znova.

Korak: Prenos na tiskano vezje

Prenos na tiskano vezje
Prenos na tiskano vezje
Prenos na tiskano vezje
Prenos na tiskano vezje

Ko se prepričate, da je vse v brezhibnem stanju, lahko komponente prenesete na tiskano vezje in vse skupaj spajkate, če se vam zdi primerno. Poleg datoteke Fritzing sem priložil diagram PCB (na voljo tukaj). Upoštevajte, da sem vse komponente postavil na vrh plošče zaradi estetike, lahko pa jih namestim tudi spodaj in jih nato zaprim v nekakšno ohišje, da bo čistejše. Na stranice tiskanega vezja sem izrezala in vroče zlepila palčke za popsicle, obarvane s Sharpiejem, da sem ustvarila improvizirano škatlo za enoto. Drugi izbirni korak je pritrditev 9-voltne sponke za baterijo na vmesnike VIN in GND Arduina, tako da deluje na baterije.

3. korak: Končano

Dokončano!
Dokončano!
Dokončano!
Dokončano!
Dokončano!
Dokončano!

Tako se je izkazal moj dokončani generator, če ste ga spremljali in sami izdelali, ga delite spodaj!

Če se vam zdi primerno, glasujte z mojim navodilom za tekmovanje STEM in spodaj pustite komentar/morebitna vprašanja!

Priporočena: