Kazalo:
Video: Arduino TOTP generator: 3 koraki
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:04
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:
- 1x Arduino Nano (Amazon)
- 1x modul DS3231 AT24C32 za uro v realnem času (RTC) (Amazon)
- 1x SH5461AS 4-mestna 7-segmentna skupna katoda (Amazon)
- 1x gumb (Amazon)
- 1x 10k upor (Amazon)
- NEOBVEZNO 1x 5 x 7 cm PCB (Amazon)
- NEOBVEZNA žica za spajkanje na tiskano vezje
- NEOBVEZNO 1x Ogledna plošča za testiranje (Amazon)
1. korak: 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
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
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:
Esp8266 Ura in generator impulzov: 3 koraki
Esp8266 Ura in generator impulzov: Ta navodila so namenjena preprostemu kosu testne opreme; generator ure in impulzov. Uporablja strojni vmesnik i2S na esp8266 za ustvarjanje preskusne ure ali impulznega zaporedja. To olajša sestavljanje, saj ni potrebna posebna strojna oprema
Generator: Fidget Spinner Generator 3 v 1: 3 korakih
Generator: Fidget Spinner Generator 3 v 1: generator fidget spinner 3 v 1 - zdaj lahko konfigurirate svoj fidget spinner generator (tri izbire), mikro generator uporablja 3 neodimske krogle in 3 neodimske diske (LED in majhno tuljavo manj) Poiščite nas NA INSTAGRAM -u si oglejte preprosto električno
Glasbeni generator, ki temelji na vremenskih pogojih (Midi generator na osnovi ESP8266): 4 koraki (s slikami)
Glasbeni generator, ki temelji na vremenskih pogojih (Midi Generator na osnovi ESP8266): Pozdravljeni, danes vam bom razložil, kako narediti lasten mali glasbeni generator na osnovi vremena. Temelji na ESP8266, ki je podoben Arduinu in se odziva na temperaturo, dež in intenzivnost svetlobe. Ne pričakujte, da bo naredil cele pesmi ali akord progr
Generator - DC generator z uporabo trstičnega stikala: 3 koraki
Generator - enosmerni generator z uporabo Reed stikala: Enostavni DC generator Generator enosmernega toka (DC) je električni stroj, ki pretvarja mehansko energijo v elektriko z enosmernim tokom. spremembe
Arduino Yún Morsejev generator: 4 koraki (s slikami)
Arduino Yún Morse Generator: Ste bili kdaj v baru, kjer se niste mogli pogovarjati s prijateljem, ker je bila glasba preglasna? no, zdaj ga lahko prosiš za pivo v Morsejevi abecedi! Začnimo