Turinys:
Video: „Arduino TOTP“generatorius: 3 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:46
Į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:
- 1x „Arduino Nano“(„Amazon“)
- 1x DS3231 AT24C32 realaus laiko laikrodžio (RTC) modulis („Amazon“)
- 1x SH5461AS Bendrasis katodas 4 skaitmenų 7 segmentų („Amazon“)
- 1x mygtukas („Amazon“)
- 1x 10k rezistorius („Amazon“)
- PASIRENKAMA 1x 5x7 cm PCB („Amazon“)
- PASIRENKAMA viela, skirta litavimui prie PCB
- PASIRENKAMA 1x duonos lenta bandymui („Amazon“)
1 žingsnis: 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
Į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
Š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:
4-20ma generatorius/testeris naudojant „Arduino“: 8 žingsniai
4-20ma generatorius/testeris naudojant „Arduino“: 4–20 mA generatoriai yra prieinami „ebay“, bet aš vienas myliu „pasidaryk pats“dalykų dalį ir naudoju dalis, kurias turiu. Aš norėjau išbandyti mūsų PLC analoginius įėjimus, kad patikrintų mūsų „scada“rodmenis ir išbandyti 4-20 mA instrumentų išėjimą. Yra štai
RF signalų generatorius 100 kHz-600 MHz DDS AD9910 „Arduino“skyde: 5 žingsniai
RF signalų generatorius 100 KHz-600 MHZ DDS AD9910 „Arduino Shield“: kaip „Arduino“sukurti mažo triukšmo, didelio tikslumo ir stabilų RF generatorių (su AM, FM moduliacija)
„Arduino“bangų formos generatorius: 5 žingsniai (su nuotraukomis)
„Arduino Waveform Generator“: 2021 m. Vasario mėn. Atnaujinimas: patikrinkite naują versiją, kurios mėginių ėmimo dažnis yra 300 kartų didesnis, remiantis Raspberry Pi Pico. Laboratorijoje dažnai reikia pasikartojančio tam tikro dažnio, formos ir amplitudės signalo. Gali būti, kad išbandysite stiprintuvą, patikrinsite grandinę
Orų muzikos generatorius (ESP8266 pagrįstas Midi generatorius): 4 žingsniai (su nuotraukomis)
Orų muzikos generatorius (ESP8266 pagrįstas Midi generatorius): Sveiki, šiandien paaiškinsiu, kaip susikurti savo mažą orų muzikos generatorių. Jis pagrįstas ESP8266, kuris yra tarsi „Arduino“ir reaguoja į temperatūrą, lietų ir šviesos intensyvumas. Nesitikėkite, kad tai sukels visas dainas ar akordų programą
Generatorius - nuolatinės srovės generatorius naudojant „Reed“jungiklį: 3 žingsniai
Generatorius - nuolatinės srovės generatorius naudojant Reed jungiklį: paprastas nuolatinės srovės generatorius Nuolatinės srovės (DC) generatorius yra elektros mašina, kuri mechaninę energiją paverčia nuolatinės srovės elektros energija. Svarbu: nuolatinės srovės (DC) generatorius gali būti naudojamas kaip nuolatinės srovės variklis be jokių konstrukcinių konstrukcijų pokyčiai