Turinys:

„Arduino TOTP“generatorius: 3 žingsniai
„Arduino TOTP“generatorius: 3 žingsniai

Video: „Arduino TOTP“generatorius: 3 žingsniai

Video: „Arduino TOTP“generatorius: 3 žingsniai
Video: Уроки Ардуино #0 - что такое Arduino, куда подключаются датчики и как питать Ардуино 2024, Liepa
Anonim
„Arduino TOTP“generatorius
„Arduino TOTP“generatorius
„Arduino TOTP“generatorius
„Arduino TOTP“generatorius
„Arduino TOTP“generatorius
„Arduino TOTP“generatorius

Įkvėpimas

Turėdamas draugą, besidomintį kriptografija ir saugumu, norėjau sukurti puikią gimtadienio dovaną.

*Tai projektas, kurį padariau kaip gimtadienio dovaną ir kuris buvo sukurtas per trumpą laiką (atsiprašau už netvarkingą darbą)

PASTABA: šiame projekte naudojama TOTP karta generuoja ir naudoja 6 skaitmenų kodus, tačiau dėl savo dabartinės techninės įrangos nusprendžiau sumažinti galinius 2 skaitmenis ir rodyti bei naudoti 4, neabejotinai (bet ne labai) saugumas.

Bendra informacija

Šis projektas kas 30 sekundžių generuoja naują kodą, naudodamas iš anksto bendrinamą raktą ir dabartinį laiką (kuris stebimas naudojant realaus laiko laikrodžio modulį), ir parodo jį ekrane, kai paspaudžiamas mygtukas. Dažniausiai naudojamas dviejų veiksnių patvirtinimas, pagrįstas vienkartiniu slaptažodžiu (TOTP) ir HMAC pagrįstas vienkartinis slaptažodis (HOTP).

TOTP yra algoritmas, kuris apskaičiuoja vienkartinį slaptažodį iš bendro slapto rakto ir dabartinio laiko. HTOP yra algoritmas, kuris naudoja HMAC algoritmą vienkartiniam slaptažodžiui generuoti.

Tokios įmonės kaip „Google“, „Microsoft“ir „Steam“jau naudoja TOTP technologiją dviejų veiksnių autentifikavimui

Įdomios nuorodos

Straipsnis, paaiškinantis, kaip „Google“naudoja šią technologiją naudotojams autentifikuoti-https://medium.com/@tilaklodha/google-authenticator-and-how-it-works-2933a4ece8c2

HOTP ir TOTP „JavaScript“diegimas, kuris gali būti naudojamas kuriant programinę įrangą naudojant šį projektą -

Šiame projekte naudojama „Arduino“kriptografinė biblioteka -

TOTP popierius -

Ekspertizės lygis

Ši instrukcija skirta entuziastams, besidomintiems saugumu ir galbūt norintiems įdiegti gražų aparatūros komponentą savo TOTP kartai sukurti. Ši instrukcija skirta auditorijai, kuri jau supranta elektronikos schemų aiškinimo ir pradinio programavimo pagrindus, tačiau jei planuojate tiksliai sekti šią instrukciją, nesijaudinkite, jei neturite patirties, ir nedvejodami užduokite klausimus komentarus! Be to, projektas gali būti įdomus ir labiau patyrusiems kūrėjams, nes galutinis produktas yra ne tik gražus kūrinys (mano nuomone), bet ir turi daug galimybių plėstis ir naujų funkcijų be didelių rūpesčių.

Prekės

Medžiagos:

  1. 1x „Arduino Nano“(„Amazon“)
  2. 1x DS3231 AT24C32 realaus laiko laikrodžio (RTC) modulis („Amazon“)
  3. 1x SH5461AS Bendrasis katodas 4 skaitmenų 7 segmentų („Amazon“)
  4. 1x mygtukas („Amazon“)
  5. 1x 10k rezistorius („Amazon“)
  6. PASIRENKAMA 1x 5x7 cm PCB („Amazon“)
  7. PASIRENKAMA viela, skirta litavimui prie PCB
  8. PASIRENKAMA 1x duonos lenta bandymui („Amazon“)

1 žingsnis: surinkimas ir bandymas

Surinkimas ir bandymas
Surinkimas ir bandymas
Surinkimas ir bandymas
Surinkimas ir bandymas
Surinkimas ir bandymas
Surinkimas ir bandymas

Surinkite visus duonos lentos komponentus ir prijunkite juos pagal prijungimo schemą (čia yra Fritzing failas).

Įsitikinkite, kad turite įdiegtą „Arduino IDE“(jei ne, galite ją rasti internete) ir įdiekite šias bibliotekas:

github.com/lucadentella/TOTP-Arduino

github.com/adafruit/RTClib

github.com/maniacbug/Cryptosuite

Atsisiųskite pridėtą eskizą (jį taip pat galite pasiekti čia: https://gist.github.com/shiv213/569f01a54988cb0207966be9a65cc5ab) ir atidarykite jį naudodami „Arduino IDE“. Atidarykite šią nuorodą (https://www.lucadentella.it/OTP/) ir įveskite bet kurį pavadinimą į paskyros pavadinimo lauką, o pasirinktinį slaptą raktą (10 simbolių) - į kitą lauką, būtinai išsaugodami abi šias reikšmes saugioje atsarginės kopijos vietoje. Nukopijuokite lauko „Arduino HEX masyvas:“turinį ir grįžkite į „Arduino“redaktorių, 25 eilutėje esantį masyvą („hmacKey“) pakeisdami tuo, kurį nukopijavote iš svetainės.

Dar kartą patikrinę kiekvieną laido jungtį, įsitikinkite, kad RTC modulyje yra monetos elementas, ir prijunkite „Arduino“prie nešiojamojo kompiuterio naudodami USB mini laidą ir įkelkite pridėtą eskizą.

Įkėlus, paspaudus mygtuką, ekrane turėtų būti rodomas skaičius. Jei atsisiųsite „Google“autentifikavimo priemonės programą išmaniajame telefone ir grįšite į svetainę, naudojamą HEX masyvui generuoti, nuskaitydami QR kodą arba įvesdami „Google“autentifikavimo priemonės kodą, programoje turėtumėte matyti skaičių. Jei viskas veikia tinkamai, paspaudus mygtuką, rodomi 4 skaitmenys turi sutapti su pirmaisiais 4 dabartinio kodo, rodomo išmaniojo telefono programėlėje. Jei taip nėra, įsitikinkite, kad kompiuteris, naudojamas „Arduino“kodui įkelti, nustatytas į UTC laiką ir bandykite dar kartą.

2 veiksmas: perkėlimas į PCB

Perkėlimas į PCB
Perkėlimas į PCB
Perkėlimas į PCB
Perkėlimas į PCB

Įsitikinę, kad viskas veikia, galite perkelti komponentus į PCB ir lituoti viską kartu, kaip jums atrodo tinkama. Be „Fritzing“failo (jį rasite čia) pridėjau PCB diagramą. Atkreipkite dėmesį, kad visus komponentus padėjau ant plokštės viršaus, kad būtų estetiška, bet taip pat galima sumontuoti po juo ir uždaryti į tam tikrą korpusą, kad būtų švaresnis. Aš supjaustiau ir karštai priklijuotas popsicle lazdeles, nuspalvintas „Sharpie“, prie PCB šonų, kad sukurtų vienkartinę dėžutę. Kitas neprivalomas žingsnis yra pritvirtinti 9 voltų akumuliatoriaus spaustuką prie „Arduino“VIN ir GND kaiščių, kad jis veiktų baterijomis.

3 žingsnis: baigta

Baigta!
Baigta!
Baigta!
Baigta!
Baigta!
Baigta!

Štai kaip pasirodė mano baigtas generatorius, jei sekėte ir pats pasigaminote, pasidalykite juo žemiau!

Būtinai balsuokite už „Instructable“už STEM konkursą, jei manote, kad tai yra tinkama, ir palikite komentarą/bet kokius klausimus, esančius žemiau!

Rekomenduojamas: