Obsah:
Video: Generátor Arduino TOTP: 3 kroky
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:57
Inšpirácia
Keďže mám priateľa so záujmom o kryptografiu a bezpečnosť, chcel som vytvoriť perfektný narodeninový darček.
*Toto je projekt, ktorý som vyrobil ako darček k narodeninám a bol vytvorený v tesnom časovom limite (prepáčte, chaotické spracovanie)
POZNÁMKA: Generácia TOTP, ktorá sa používa v tomto projekte, generuje a používa 6-ciferné kódy, ale kvôli môjmu súčasnému hardvéru som sa rozhodol skrátiť posledné 2 číslice a zobraziť a používať 4, pravdepodobne (ale nie výrazne) zníženie bezpečnosť.
Všeobecné informácie
Tento projekt generuje každých 30 sekúnd nový kód pomocou vopred zdieľaného kľúča a aktuálneho času (ktorý sa sleduje pomocou modulu hodín reálneho času) a po stlačení tlačidla ho zobrazí na displeji. Najbežnejším prípadom použitia by bolo dvojfaktorové overenie na základe časového jednorazového hesla (TOTP) a jednorazového hesla na základe HMAC (HOTP) na autentifikáciu.
TOTP je algoritmus, ktorý vypočítava jednorazové heslo zo zdieľaného tajného kľúča a aktuálny čas. HTOP je algoritmus, ktorý na vygenerovanie jednorazového hesla používa algoritmus HMAC.
Spoločnosti ako Google, Microsoft a Steam už používajú technológiu TOTP na dvojfaktorovú autentifikáciu
Zaujímavé odkazy
Článok vysvetľujúci, ako spoločnosť Google používa túto technológiu na autentifikáciu používateľov-https://medium.com/@tilaklodha/google-authenticator-and-how-it-works-2933a4ece8c2
Implementácia JavaScript HOTP a TOTP v JavaScripte, ktorá môže byť použitá pri vytváraní softvéru využívajúceho tento projekt -
Krytografická knižnica pre Arduino použitá v tomto projekte -
Papier TOTP -
Úroveň odbornosti
Tento návod je pre nadšencov, ktorí sa zaujímajú o bezpečnosť a môžu chcieť implementovať pekný hardvérový komponent na generovanie svojho TOTP. Tento návod je určený pre publikum, ktoré už rozumie základom interpretácie diagramov elektroniky a základného programovania, ale ak sa plánujete riadiť presne týmto návodom, nerobte si starosti, ak nemáte žiadne skúsenosti a pokojne sa pýtajte na nižšie uvedené otázky. komentáre! Okrem toho môže byť projekt zaujímavý aj pre skúsenejších tvorcov, pretože konečný produkt nie je len príjemným kúskom (podľa mňa), ale má veľký potenciál na rozšírenie a nové funkcie bez väčších problémov.
Zásoby
Materiály:
- 1x Arduino Nano (Amazon)
- 1x modul DS3231 AT24C32 s hodinami v reálnom čase (RTC) (Amazon)
- 1x SH5461AS Common Cathode 4-miestny 7-segmentový (Amazon)
- 1x tlačidlo (Amazon)
- 1x 10k odpor (Amazon)
- VOLITELNE 1x 5x7cm PCB (Amazon)
- VOLITEĽNÉ Vodič na spájkovanie na DPS
- VOLITEĽNÉ 1x Breadboard na testovanie (Amazon)
Krok 1: Montáž a testovanie
Zostavte všetky diely na dosku a zapojte ich podľa priloženej schémy zapojenia (súbor Fritzing je tu).
Uistite sa, že máte nainštalované IDE Arduino (ak ho nemáte, môžete ho nájsť online) a nainštalujte si nasledujúce knižnice:
github.com/lucadentella/TOTP-Arduino
github.com/adafruit/RTClib
github.com/maniacbug/Cryptosuite
Stiahnite si priloženú skicu (je tiež prístupná tu: https://gist.github.com/shiv213/569f01a54988cb0207966be9a65cc5ab) a otvorte ju pomocou Arduino IDE. Otvorte tento odkaz (https://www.lucadentella.it/OTP/) a do poľa pre názov účtu zadajte ľubovoľné meno a do nasledujúceho poľa vlastný tajný kľúč (dlhý 10 znakov). Uistite sa, že ste uložili obe tieto hodnoty. na bezpečnom mieste pre zálohovanie. Skopírujte obsah poľa „Arduino HEX array:“a prepnite späť na editor Arduino, pričom pole na riadku 25 (hmacKey) nahraďte tým, ktoré ste skopírovali z webu.
Po dvojitom skontrolovaní každého káblového pripojenia sa uistite, že modul RTC má v sebe gombíkový článok, a pripojte Arduino k svojmu notebooku pomocou mini kábla USB a nahrajte priložený náčrt.
Po nahraní by sa po stlačení tlačidla malo na obrazovke zobraziť číslo. Ak si do smartfónu stiahnete aplikáciu Google Authenticator a vrátite sa na webovú stránku slúžiacu na generovanie HEX poľa, skenovaním kódu QR alebo zadaním „kódu Google Authenticator“do aplikácie, malo by sa vám v aplikácii zobraziť číslo. Ak všetko funguje správne, po stlačení tlačidla by sa 4 zobrazené číslice mali zhodovať s prvými 4 z aktuálneho kódu zobrazeného v aplikácii pre smartfóny. Ak to tak nie je, uistite sa, že počítač, ktorý sa používa na odoslanie kódu Arduino, je nastavený na čas UTC, a skúste to znova.
Krok 2: Prenos na DPS
Keď sa ubezpečíte, že je všetko v prevádzkyschopnom stave, môžete komponenty previesť na dosku plošných spojov a spájkovať všetko dohromady, ako sa vám bude zdať vhodné. K súboru Fritzing (k dispozícii tu) som pripojil diagram PCB. Všimnite si toho, že všetky súčiastky som umiestnil na vrchnú stranu dosky kvôli estetike, ale dá sa tiež namontovať pod ňu a potom uzavrieť v nejakom kryte, aby bola čistejšia. Narežel a za horúca zlepené tyčinky od nanukov zafarbené Sharpie po stranách DPS, aby som vytvoril provizórny box pre jednotku. Ďalším voliteľným krokom je pripevnenie 9-voltovej spony na batériu k pinom VIN a GND Arduina, aby bolo možné napájať batériu.
Krok 3: Hotovo
Takto dopadol môj dokončený generátor, ak ste sa ním riadili a vyrobili ste ho sami, podeľte sa o to nižšie!
Ak to uznávate za vhodné, hlasujte za môj pokyn do súťaže STEM a zanechajte komentár/otázky, ktoré môžete mať nižšie!
Odporúča:
Generátor hodín a impulzov Esp8266: 3 kroky
Generátor hodín a impulzov Esp8266: Tento návod je pre jednoduché testovacie zariadenie; generátor hodín a impulzov. Na generovanie testovacích hodín alebo sekvencie impulzov používa hardvérové rozhranie i2S na esp8266. To uľahčuje zostavenie, pretože nevyžaduje žiadny špeciálny hardvér
Generátor: Fidget Spinner Generátor 3 v krokoch 1: 3
Generátor: Fidget Spinner Generátor 3 v 1: generátor fidget spinnerov 3 v 1 - teraz môžete nakonfigurovať generátor fidget spinnerov (tri možnosti), ktorý generátor používa 3 neodymové gule a 3 neodymové kotúče (menej ako led a malé cievky) Nájdite nás NA INSTAGRAME a pozrite sa na jednoduchý elektrický
Generátor hudby podľa počasia (midi generátor založený na ESP8266): 4 kroky (s obrázkami)
Generátor hudby podľa počasia (Midi generátor založený na ESP8266): Ahoj, dnes vám vysvetlím, ako si vytvoriť vlastný malý generátor hudby podľa počasia. Je založený na ESP8266, ktorý je niečo ako Arduino a reaguje na teplotu, dážď a intenzita svetla. Nečakajte, že z neho budú celé skladby alebo akordové programy
Generátor - generátor jednosmerného prúdu pomocou jazýčkového spínača: 3 kroky
Generátor - generátor jednosmerného prúdu využívajúci jazýčkový spínač: Jednoduchý generátor jednosmerného prúdu Generátor jednosmerného prúdu (DC) je elektrický stroj, ktorý premieňa mechanickú energiu na elektrickú energiu na jednosmerný prúd. Dôležité: Generátor jednosmerného prúdu (DC) môže byť použitý ako jednosmerný motor bez akejkoľvek konštrukcie zmeny
Generátor Arduino Yún Morse: 4 kroky (s obrázkami)
Generátor Arduino Yún Morse: Boli ste niekedy v bare, kde ste sa nemohli rozprávať so svojim priateľom, pretože hudba bola príliš hlasná? teraz ho môžete požiadať o pivo v morzeovke! Začnime