Arduino TOTP generátor: 3 lépés
Arduino TOTP generátor: 3 lépés
Anonim
Arduino TOTP generátor
Arduino TOTP generátor
Arduino TOTP generátor
Arduino TOTP generátor
Arduino TOTP generátor
Arduino TOTP generátor

Ihlet

Miután volt egy barátom, akit érdekel a kriptográfia és a biztonság, meg akartam teremteni a tökéletes születésnapi ajándékot.

*Ezt a projektet születésnapi ajándékként készítettem, és szűk határidőn belül hoztam létre (elnézést a rendetlen kivitelezésért)

MEGJEGYZÉS: Az ebben a projektben használt TOTP generáció 6 számjegyű kódokat hoz létre és használ, de a jelenlegi hardverem miatt úgy döntöttem, hogy levágom a második számjegyet, és megjelenítem és 4-et használok, vitathatatlanul (de nem nagy mértékben) Biztonság.

Általános információ

Ez a projekt 30 másodpercenként generál egy új kódot egy előre megosztott kulccsal és az aktuális idővel (amelyet nyomon követnek a valós idejű óra modul használatával), és megjeleníti azt a kijelzőn, amikor megnyomja a gombot. A leggyakoribb eset az időalapú egyszeri jelszó (TOTP) és a HMAC-alapú egyszeri jelszó (HOTP) alapú kéttényezős hitelesítés lenne.

A TOTP egy algoritmus, amely egyszeri jelszót számít ki a megosztott titkos kulcsból és az aktuális időből. A HTOP egy algoritmus, amely a HMAC algoritmust használja az egyszeri jelszó létrehozásához.

Az olyan vállalatok, mint a Google, a Microsoft és a Steam, már használják a TOTP technológiát kéttényezős hitelesítésükhöz

Érdekes linkek

Cikk, amely elmagyarázza, hogyan használja a Google ezt a technológiát a felhasználók hitelesítésére-https://medium.com/@tilaklodha/google-authenticator-and-how-it-works-2933a4ece8c2

A HOTP és a TOTP JavaScript -implementációja, amely használható a projektet használó szoftver létrehozásakor -

A projektben használt Arduino kriptográfiai könyvtár -

TOTP Paper -

Szakértelem szintje

Ez az Instructable azoknak a rajongóknak szól, akik érdeklődnek a biztonság iránt, és szeretnének egy szép hardverkomponenst megvalósítani TOTP -juk generálásához. Ez az oktatóanyag olyan közönségnek készült, aki már érti az elektronikai diagramok értelmezésének és a kezdetleges programozás alapjait, de ha egyszerűen csak követi ezt az utasítást, ne aggódjon, ha nincs tapasztalata, és tegyen fel kérdéseket a Hozzászólások! Ezenkívül a projekt a tapasztaltabb gyártók számára is érdekes lehet, mivel a végtermék nemcsak egy szép darab (szerintem), hanem rengeteg bővítési és új funkcióval rendelkezik, sok gond nélkül.

Kellékek

Anyagok:

  1. 1x Arduino Nano (Amazon)
  2. 1x DS3231 AT24C32 valós idejű óra (RTC) modul (Amazon)
  3. 1x SH5461AS közös katód 4 számjegyű 7 szegmens (Amazon)
  4. 1x nyomógomb (Amazon)
  5. 1x 10k ellenállás (Amazon)
  6. Választható 1x 5x7 cm -es NYÁK (Amazon)
  7. Választható huzal PCB -hez való forrasztáshoz
  8. Választható 1x Breadboard teszteléshez (Amazon)

1. lépés: Összeszerelés és tesztelés

Összeszerelés és tesztelés
Összeszerelés és tesztelés
Összeszerelés és tesztelés
Összeszerelés és tesztelés
Összeszerelés és tesztelés
Összeszerelés és tesztelés

Szerelje össze az összes alkatrészt a kenyértáblán, és kösse be őket a mellékelt kapcsolási rajz szerint (a Fritzing fájl itt található).

Győződjön meg róla, hogy telepítve van az Arduino IDE (ha nem, akkor megtalálható az interneten), és telepítse a következő könyvtárakat:

github.com/lucadentella/TOTP-Arduino

github.com/adafruit/RTClib

github.com/maniacbug/Cryptosuite

Töltse le a mellékelt vázlatot (itt is elérhető: https://gist.github.com/shiv213/569f01a54988cb0207966be9a65cc5ab), és nyissa meg az Arduino IDE használatával. Nyissa meg ezt a linket (https://www.lucadentella.it/OTP/), és írjon be bármilyen nevet a fióknév mezőbe, és egy egyéni titkos kulcsot (10 karakter hosszú) a következő mezőbe, ügyelve arra, hogy mindkettőt mentse el biztonságos helyen a biztonsági mentéshez. Másolja ki az "Arduino HEX tömb:" mező tartalmát, és váltson vissza az Arduino szerkesztőbe, és cserélje le a 25. sor (hmacKey) tömbjét a webhelyről másoltra.

Miután kétszer ellenőrizte az egyes vezetékes csatlakozásokat, győződjön meg arról, hogy az RTC modulban van egy érme, és csatlakoztassa az Arduino-t a laptopjához egy USB mini kábel segítségével, és töltse fel a mellékelt vázlatot.

A feltöltés után, amikor megnyomja a gombot, egy számnak kell megjelennie a képernyőn. Ha letölti a Google Hitelesítő alkalmazást egy okostelefonról, és visszamegy a HEX tömb előállításához használt webhelyre, beolvassa a QR -kódot, vagy beírja a "Google Hitelesítő kódot" az alkalmazásba, akkor egy számot kell látnia az alkalmazásban. Ha minden megfelelően működik, a nyomógomb megnyomásakor a megjelenített 4 számjegynek meg kell egyeznie az okostelefon -alkalmazásban megjelenített aktuális kód első négy számával. Ha nem ez a helyzet, győződjön meg arról, hogy az Arduino kód feltöltésére használt számítógép UTC időre van állítva, és próbálja újra.

2. lépés: Átvitel a NYÁK -ra

Átvitel a NYÁK -ra
Átvitel a NYÁK -ra
Átvitel a NYÁK -ra
Átvitel a NYÁK -ra

Miután meggyőződött arról, hogy minden rendben van, átviheti az alkatrészeket a NYÁK -ra, és mindent összeforraszthat, ahogyan megfelelőnek tűnik. A Fritzing fájl mellett (itt érhető el) csatoltam egy NYÁK diagramot. Ne feledje, hogy az összes elemet a tábla tetejére helyeztem az esztétika érdekében, de alá is szerelhető, majd valamilyen házba zárható, hogy tisztább legyen. Sharpie -val színezett popsicle botokat vágtam és melegen ragasztottam a NYÁK oldalához, hogy rögtönzött dobozt hozzak létre az egység számára. Egy másik opcionális lépés egy 9 voltos elemcsipesz csatlakoztatása az Arduino VIN és GND csapjaihoz, így elemmel működik.

3. lépés: Kész

Befejezett!
Befejezett!
Befejezett!
Befejezett!
Befejezett!
Befejezett!

Így alakult ki az elkészült generátorom, ha követte és maga készítette, ossza meg alább!

Feltétlenül szavazzon az Instructable -mre a STEM versenyre, ha úgy látja jónak, és hagyjon megjegyzést/kérdéseket az alábbiakban!

Ajánlott: