Sisällysluettelo:
Video: Arduino TOTP -generaattori: 3 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:00
Inspiraatio
Minulla oli ystävä, joka on kiinnostunut salauksesta ja turvallisuudesta, halusin luoda täydellisen syntymäpäivälahjan.
*Tämä on projekti, jonka tein syntymäpäivälahjaksi ja joka luotiin tiukoissa aikarajoissa (anteeksi sotkuinen työ)
HUOMAUTUS: Tässä projektissa käytettävä TOTP-sukupolvi luo ja käyttää 6-numeroisia koodeja, mutta nykyisen käytettävissä olevan laitteistoni vuoksi päätin leikata jäljessä olevat 2 numeroa ja näyttää ja käyttää neljää, mikä todennäköisesti (mutta ei suuresti) pienentää turvallisuus.
Yleistä tietoa
Tämä projekti luo uuden koodin 30 sekunnin välein käyttäen esijaettua avainta ja nykyistä aikaa (jota seurataan reaaliaikaisen kellomoduulin käytöstä) ja näyttää sen näytöllä, kun painiketta painetaan. Yleisin käyttötapa olisi kaksivaiheinen vahvistus, joka perustuu aikapohjaiseen kertasalasanaan (TOTP) ja HMAC-pohjainen kertakäyttösalasana (HOTP) todennusta varten.
TOTP on algoritmi, joka laskee kertakäyttöisen salasanan jaetusta salaisesta avaimesta ja nykyisestä ajasta. HTOP on algoritmi, joka luo HMAC-algoritmin avulla kertaluonteisen salasanan.
Yritykset, kuten Google, Microsoft ja Steam, käyttävät jo TOTP-tekniikkaa kaksivaiheiseen todennukseen
Mielenkiintoisia linkkejä
Artikkeli, jossa selitetään, miten Google käyttää tätä tekniikkaa käyttäjien todentamiseen-https://medium.com/@tilaklodha/google-authenticator-and-how-it-works-2933a4ece8c2
HOTP: n ja TOTP: n JavaScript -toteutus, jota voidaan käyttää tätä projektia käyttävän ohjelmiston luomisessa -
Tässä projektissa käytetty kryptografinen kirjasto Arduinolle -
TOTP -paperi -
Asiantuntemuksen taso
Tämä Instructable on tarkoitettu harrastajille, jotka ovat kiinnostuneita turvallisuudesta ja jotka haluavat ottaa käyttöön hienon laitteistokomponentin TOTP: n luomiseen. Tämä ohje on kirjoitettu yleisölle, joka ymmärtää jo elektroniikkakaavioiden tulkinnan ja alkeellisen ohjelmoinnin perusteet, mutta jos aiot yksinkertaisesti noudattaa tätä ohjeistusta tarkasti, älä huoli, jos sinulla ei ole kokemusta, ja kysy rohkeasti kysymyksiä kommentit! Lisäksi projekti voi olla mielenkiintoinen myös kokeneemmille valmistajille, koska lopputuote ei ole vain mukava pala (mielestäni), vaan sillä on niin paljon laajentumismahdollisuuksia ja uusia ominaisuuksia ilman paljon vaivaa.
Tarvikkeet
Materiaalit:
- 1x Arduino Nano (Amazon)
- 1x DS3231 AT24C32 Real-Time Clock (RTC) -moduuli (Amazon)
- 1x SH5461AS Common Cathode 4-numeroinen 7-segmentti (Amazon)
- 1x painike (Amazon)
- 1x 10k vastus (Amazon)
- VALINNAINEN 1x 5x7cm PCB (Amazon)
- LISÄVARUSTE Lanka juotettavaksi PCB: lle
- VALINNAINEN 1x leipälevy testausta varten (Amazon)
Vaihe 1: Asennus ja testaus
Kokoa kaikki leipälevyn komponentit ja johda ne oheisen kytkentäkaavion mukaisesti (Fritzing -tiedosto on täällä).
Varmista, että Arduino IDE on asennettu (se löytyy verkosta, jos et), ja asenna seuraavat kirjastot:
github.com/lucadentella/TOTP-Arduino
github.com/adafruit/RTClib
github.com/maniacbug/Cryptosuite
Lataa liitteenä oleva luonnos (saatavana myös täältä: https://gist.github.com/shiv213/569f01a54988cb0207966be9a65cc5ab) ja avaa se Arduino IDE: n avulla. Avaa tämä linkki (https://www.lucadentella.it/OTP/) ja syötä mikä tahansa nimi tilin nimi -kenttään ja mukautettu salainen avain (10 merkkiä pitkä) seuraavaan kenttään varmistaaksesi, että molemmat arvot tallennetaan turvallisessa paikassa varmuuskopiointia varten. Kopioi "Arduino HEX array:" -kentän sisältö ja vaihda takaisin Arduino -editoriin korvaamalla rivin 25 (hmacKey) taulukko sivustosta kopioidulla.
Kun olet tarkistanut jokaisen johdinliitännän, tarkista, että RTC-moduulissa on nappiparisto, ja liitä Arduino kannettavaan tietokoneeseen USB-minijohdolla ja lähetä liitteenä oleva luonnos.
Lataamisen jälkeen, kun painiketta painetaan, numeron pitäisi näkyä näytöllä. Jos lataat Google Authenticator -sovelluksen älypuhelimeen ja palaat HEX -taulukon luomiseen käytettyyn sivustoon, skannaat QR -koodin tai kirjoitat sovellukseen "Google Authenticator -koodin", sovelluksessa näkyy numero. Jos kaikki toimii oikein, kun painat painiketta, näytettävien neljän numeron on vastattava älypuhelinsovelluksessa näkyvän nykyisen koodin neljää ensimmäistä numeroa. Jos näin ei ole, varmista, että tietokone, jolla Arduino -koodi ladataan, on asetettu UTC -aikaan ja yritä uudelleen.
Vaihe 2: Siirto PCB: lle
Kun olet varmistanut, että kaikki on toimintakunnossa, voit siirtää komponentit piirilevylle ja juottaa kaiken yhteen sopivalla tavalla. Olen liittänyt piirilevykaavion Fritzing -tiedoston (saatavilla täältä) lisäksi. Huomaa, että asetin kaikki komponentit levyn yläosaan esteettisyyden vuoksi, mutta ne voidaan myös asentaa sen alle ja sulkea sitten johonkin koteloon sen puhdistamiseksi. Leikkasin ja kuumat liimatut popsicle -tikut, jotka oli värjätty Sharpie -levyllä piirilevyn sivuille, luodakseni väliaikaisen laatikon laitteelle. Toinen valinnainen vaihe on kiinnittää 9 voltin akkupidike Arduinon VIN- ja GND-nastoihin, jolloin se toimii paristolla.
Vaihe 3: Valmis
Näin valmistui generaattorini, jos seurasit ja teit sellaisen itse, jaa se alla!
Muista äänestää Instructableni STEM -kilpailua varten, jos parhaaksi näet, ja jätä kommentti/mahdolliset kysymyksesi alle!
Suositeltava:
Akustinen levitaatio Arduino Unon kanssa Askel askeleelta (8 vaihetta): 8 vaihetta
Akustinen levitaatio Arduino Unon kanssa Askel askeleelta (8 vaihetta): ultraäänikaiuttimet L298N DC-naarasadapterin virtalähde urospuolisella dc-nastalla ja analogiset portit koodin muuntamiseksi (C ++)
4G/5G HD -videon suoratoisto DJI Dronesta alhaisella latenssilla [3 vaihetta]: 3 vaihetta
4G/5G HD -videon suoratoisto DJI Dronesta alhaisella latenssilla [3 vaihetta]: Seuraava opas auttaa sinua saamaan live-HD-videovirtoja lähes mistä tahansa DJI-dronesta. FlytOS -mobiilisovelluksen ja FlytNow -verkkosovelluksen avulla voit aloittaa videon suoratoiston droonilta
Pultti - DIY -langaton latauskello (6 vaihetta): 6 vaihetta (kuvilla)
Pultti - DIY -langaton latausyökello (6 vaihetta): Induktiiviset lataukset (tunnetaan myös nimellä langaton lataus tai langaton lataus) on langattoman voimansiirron tyyppi. Se käyttää sähkömagneettista induktiota sähkön tuottamiseen kannettaville laitteille. Yleisin sovellus on langaton Qi -latauslaite
4 vaihetta akun sisäisen vastuksen mittaamiseksi: 4 vaihetta
4 vaihetta akun sisäisen vastuksen mittaamiseksi: Tässä on 4 yksinkertaista vaihetta, joiden avulla voit mitata taikinan sisäisen vastuksen
Halvin Arduino -- Pienin Arduino -- Arduino Pro Mini -- Ohjelmointi -- Arduino Neno: 6 vaihetta (kuvilla)
Halvin Arduino || Pienin Arduino || Arduino Pro Mini || Ohjelmointi || Arduino Neno: …………………………. Tilaa YouTube -kanavani saadaksesi lisää videoita ……. Tässä projektissa keskitytään kaikkien aikojen pienimpään ja halvinan arduinoon. Pienin ja halvin arduino on arduino pro mini. Se muistuttaa arduinoa