Obsah:
Video: Generátor TOTP Arduino: 3 kroky
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:21
Inspirace
Mít přítele se zájmem o kryptografii a bezpečnost, chtěl jsem vytvořit perfektní dárek k narozeninám.
*Toto je projekt, který jsem vytvořil jako dárek k narozeninám a byl vytvořen v omezeném časovém limitu (omluvte nepořádné zpracování)
POZNÁMKA: Generace TOTP, která se používá v tomto projektu, generuje a využívá 6místné kódy, ale vzhledem k mému aktuálnímu hardwaru v ruce jsem se rozhodl zkrátit koncové 2 číslice a zobrazit a využívat 4, pravděpodobně (ale ne výrazně) snížení bezpečnostní.
Obecná informace
Tento projekt generuje každých 30 sekund nový kód pomocí předem sdíleného klíče a aktuálního času (který je sledován pomocí modulu hodin reálného času) a po stisknutí tlačítka jej zobrazí na displeji. Nejběžnějším případem použití by bylo dvoufaktorové ověření založené na časovém jednorázovém hesle (TOTP) a jednorázovém hesle na základě HMAC (HOTP) pro autentizaci.
TOTP je algoritmus, který vypočítává jednorázové heslo ze sdíleného tajného klíče a aktuálního času. HTOP je algoritmus, který pomocí algoritmu HMAC generuje jednorázové heslo.
Společnosti jako Google, Microsoft a Steam již používají technologii TOTP pro své dvoufaktorové ověřování
Zajímavé odkazy
Článek vysvětlující, jak Google používá tuto technologii k ověřování uživatelů-https://medium.com/@tilaklodha/google-authenticator-and-how-it-works-2933a4ece8c2
Implementace HOTP a TOTP v JavaScriptu, kterou lze použít při vytváření softwaru využívajícího tento projekt -
Kryptografická knihovna pro Arduino použitá v tomto projektu -
Papír TOTP -
Úroveň odbornosti
Tento Instructable je pro nadšence, kteří se zajímají o bezpečnost a mohou chtít implementovat pěknou hardwarovou součást do generování jejich TOTP. Tento instruktáž je napsán pro publikum, které již rozumí základům interpretace elektronických diagramů a základního programování, ale pokud máte v plánu jednoduše se přesně řídit tímto Instructable, nedělejte si starosti, pokud nemáte žádné zkušenosti, a klidně se můžete ptát níže v komentáře! Kromě toho může být projekt zajímavý i pro zkušenější tvůrce, protože konečný produkt je nejen hezký kousek (podle mého názoru), ale má také velký potenciál pro rozšíření a nové funkce bez větších potíží.
Zásoby
Materiály:
- 1x Arduino Nano (Amazon)
- 1x modul DS3231 AT24C32 s hodinami reálného času (RTC) (Amazon)
- 1x SH5461AS Common Cathode 4 digit 7-segment (Amazon)
- 1x tlačítko (Amazon)
- 1x 10k odpor (Amazon)
- VOLITELNĚ 1x PCB 5x7cm (Amazon)
- VOLITELNÉ Vodič pro pájení na desku plošných spojů
- VOLITELNĚ 1x Breadboard pro testování (Amazon)
Krok 1: Montáž a testování
Sestavte všechny součásti na prkénko a zapojte je podle přiloženého schématu zapojení (soubor Fritzing je zde).
Ujistěte se, že máte nainstalované IDE Arduino (lze jej najít online, pokud ne) a nainstalujte následující knihovny:
github.com/lucadentella/TOTP-Arduino
github.com/adafruit/RTClib
github.com/maniacbug/Cryptosuite
Stáhněte si připojenou skicu (lze ji také zobrazit zde: https://gist.github.com/shiv213/569f01a54988cb0207966be9a65cc5ab) a otevřete ji pomocí Arduino IDE. Otevřete tento odkaz (https://www.lucadentella.it/OTP/) a do pole názvu účtu zadejte libovolné jméno a do následujícího pole vlastní tajný klíč (dlouhý 10 znaků), přičemž obě tyto hodnoty uložte na bezpečném místě pro zálohování. Zkopírujte obsah pole „Arduino HEX array:“a přepněte zpět do editoru Arduino a pole na řádku 25 (hmacKey) nahraďte tím, které jste zkopírovali z webu.
Po dvojité kontrole každého kabelového připojení se ujistěte, že modul RTC má v sobě knoflíkový článek, a připojte Arduino k vašemu notebooku pomocí mini kabelu USB a nahrajte přiložený náčrt.
Po odeslání by se po stisknutí tlačítka mělo na obrazovce zobrazit číslo. Pokud si do smartphonu stáhnete aplikaci Google Authenticator a vrátíte se na web sloužící k vygenerování HEX pole, naskenováním QR kódu nebo zadáním „kódu Google Authenticator“do aplikace, mělo by se vám v aplikaci zobrazit číslo. Pokud vše funguje správně, po stisknutí tlačítka by se zobrazené 4 číslice měly shodovat s prvními 4 aktuálním kódem zobrazeným v aplikaci pro chytré telefony. Pokud tomu tak není, ujistěte se, že počítač používaný k odeslání kódu Arduino je nastaven na čas UTC, a zkuste to znovu.
Krok 2: Přenos na PCB
Poté, co se ujistíte, že je vše v provozuschopném stavu, můžete součásti přenést na desku plošných spojů a pájet vše dohromady, jakkoli se vám to bude zdát vhodné. Kromě souboru Fritzing (k dispozici zde) jsem připojil diagram PCB. Všimněte si toho, že jsem všechny komponenty umístil na horní část desky kvůli estetice, ale lze je také namontovat pod ně a poté uzavřít do nějakého krytu, aby byl čistší. Po stranách desky plošných spojů jsem nastříhal a zalepil nanukové tyčinky obarvené Sharpie, abych vytvořil provizorní krabici pro jednotku. Dalším volitelným krokem je připevnění 9voltové spony na baterii na piny VIN a GND Arduina, takže je napájen z baterie.
Krok 3: Hotovo
Takto dopadl můj dokončený generátor, pokud jste ho následovali a sami si jej vytvořili, podělte se o něj níže!
Pokud to uznáte za vhodné, hlasujte pro můj Instructable pro soutěž STEM a zanechte níže uvedený komentář/dotazy.
Doporučuje:
Generátor hodin a pulzů Esp8266: 3 kroky
Generátor hodin a pulzů Esp8266: Tento návod je určen pro jednoduché testovací zařízení; generátor hodin a pulzů. Používá hardwarové rozhraní i2S na esp8266 ke generování testovacích hodin nebo pulzní sekvence. To umožňuje snadné sestavení, protože nevyžaduje žádný speciální hardware
Generátor: Fidget Spinner Generator 3 v krocích 1: 3
Generátor: Fidget Spinner Generátor 3 v 1: generátor fidget spinnerů 3 v 1 - nyní můžete nakonfigurovat generátor fidget spinneru (tři možnosti), mikro generátor používá 3 neodymové koule a 3 neodymové disky (méně LED a malá cívka) Najděte nás NA INSTAGRAMU a podívejte se na jednoduchý elektrický
Weather Based Music Generator (ESP8266 Based Midi Generator): 4 kroky (s obrázky)
Weather Based Music Generator (ESP8266 Based Midi Generator): Ahoj, dnes vám vysvětlím, jak si vytvořit vlastní malý generátor hudby na základě počasí. Je založen na ESP8266, což je něco jako Arduino, a reaguje na teplotu, déšť a intenzita světla. Nečekejte, že to udělá celé písně nebo akordový program
Generátor - DC generátor využívající jazýčkový spínač: 3 kroky
Generátor - DC generátor využívající jazýčkový spínač: Jednoduchý generátor stejnosměrného proudu Generátor stejnosměrného proudu (DC) je elektrický stroj, který přeměňuje mechanickou energii na stejnosměrný proud. Důležité: Generátor stejnosměrného proudu (DC) lze použít jako stejnosměrný motor bez jakékoli konstrukce Změny
Generátor Arduino Yún Morse: 4 kroky (s obrázky)
Generátor Arduino Yún Morse: Už jste někdy byli v baru, kde jste nemohli mluvit se svým přítelem, protože hudba byla příliš hlasitá? teď ho můžete požádat o pivo v Morseově abecedě! Začněme