Sisällysluettelo:

Arduino TOTP -generaattori: 3 vaihetta
Arduino TOTP -generaattori: 3 vaihetta

Video: Arduino TOTP -generaattori: 3 vaihetta

Video: Arduino TOTP -generaattori: 3 vaihetta
Video: TOTP Arduino authenticator with USB keyboard emulation 2024, Marraskuu
Anonim
Arduino TOTP -generaattori
Arduino TOTP -generaattori
Arduino TOTP -generaattori
Arduino TOTP -generaattori
Arduino TOTP -generaattori
Arduino TOTP -generaattori

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:

  1. 1x Arduino Nano (Amazon)
  2. 1x DS3231 AT24C32 Real-Time Clock (RTC) -moduuli (Amazon)
  3. 1x SH5461AS Common Cathode 4-numeroinen 7-segmentti (Amazon)
  4. 1x painike (Amazon)
  5. 1x 10k vastus (Amazon)
  6. VALINNAINEN 1x 5x7cm PCB (Amazon)
  7. LISÄVARUSTE Lanka juotettavaksi PCB: lle
  8. VALINNAINEN 1x leipälevy testausta varten (Amazon)

Vaihe 1: Asennus ja testaus

Kokoonpano ja testaus
Kokoonpano ja testaus
Kokoonpano ja testaus
Kokoonpano ja testaus
Kokoonpano ja testaus
Kokoonpano 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

Siirto PCB: lle
Siirto PCB: lle
Siirto PCB: lle
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

Valmis!
Valmis!
Valmis!
Valmis!
Valmis!
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: