Indholdsfortegnelse:
Video: Arduino TOTP Generator: 3 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:27
Inspiration
Da jeg havde en ven med interesse for kryptografi og sikkerhed, ønskede jeg at skabe den perfekte fødselsdagsgave.
*Dette er et projekt, jeg lavede i fødselsdagsgave og blev skabt inden for stramme tidsbegrænsninger (undskyld det rodede håndværk)
BEMÆRK: TOTP-generationen, der bruges i dette projekt, genererer og anvender 6-cifrede koder, men på grund af min nuværende hardware, valgte jeg at skære de efterfølgende 2 cifre og vise og bruge 4, uden tvivl (men ikke meget) at reducere sikkerhed.
Generelle oplysninger
Dette projekt genererer en ny kode hvert 30. sekund ved hjælp af en foruddelt tast og det aktuelle klokkeslæt (der holdes styr på, hvordan man bruger realtidsurmodulet) og viser det på displayet, når der trykkes på knappen. Den mest almindelige anvendelse ville være to-faktor-verifikation baseret på Time-based One Time Password (TOTP) og HMAC-baseret One Time Password (HOTP) til godkendelse.
TOTP er en algoritme, der beregner en engangskodeord fra en delt hemmelig nøgle og den aktuelle tid. HTOP er en algoritme, der bruger HMAC-algoritmen til at generere et engangskodeord.
Virksomheder som Google, Microsoft og Steam bruger allerede TOTP-teknologi til deres tofaktorautentificering
Interessante links
Artikel, der forklarer, hvordan Google bruger denne teknologi til at godkende brugere-https://medium.com/@tilaklodha/google-authenticator-and-how-it-works-2933a4ece8c2
JavaScript -implementering af HOTP og TOTP, der kan bruges til at oprette software, der anvender dette projekt -
Krytografisk bibliotek til Arduino brugt i dette projekt -
TOTP Paper -
Ekspertniveau
Denne instruks er til entusiaster, der er interesserede i sikkerhed og måske vil implementere en god hardwarekomponent til generationen af deres TOTP. Denne instruerbare er skrevet til et publikum, der allerede forstår det grundlæggende ved at fortolke elektroniske diagrammer og rudimentær programmering, men hvis du planlægger at følge denne instruktør nøjagtigt, skal du ikke bekymre dig, hvis du ikke har nogen erfaring, og du er velkommen til at stille spørgsmål nede i kommentarer! Desuden kan projektet også være interessant for mere erfarne producenter, da det endelige produkt ikke kun er et godt stykke at have med (efter min mening), men har så meget potentiale for udvidelse og nye funktioner uden meget besvær.
Forbrugsvarer
Materialer:
- 1x Arduino Nano (Amazon)
- 1x DS3231 AT24C32 Real-Time Clock (RTC) modul (Amazon)
- 1x SH5461AS fælles katode 4-cifret 7-segment (Amazon)
- 1x trykknap (Amazon)
- 1x 10k modstand (Amazon)
- VALGFRIT 1x 5x7cm PCB (Amazon)
- VALGFRIT Tråd til lodning til PCB
- VALGFRIT 1x Breadboard til test (Amazon)
Trin 1: Montering og test
Saml alle komponenterne på brødbrættet og led dem i henhold til det vedlagte ledningsdiagram (Fritzing -filen er her).
Sørg for, at du har Arduino IDE installeret (den kan findes online, hvis du ikke gør det), og installer følgende biblioteker:
github.com/lucadentella/TOTP-Arduino
github.com/adafruit/RTClib
github.com/maniacbug/Cryptosuite
Download den vedhæftede skitse (kan også fås her: https://gist.github.com/shiv213/569f01a54988cb0207966be9a65cc5ab), og åbn den ved hjælp af Arduino IDE. Åbn dette link (https://www.lucadentella.it/OTP/), og indtast et navn i feltet kontonavn og en brugerdefineret hemmelig nøgle (10 tegn lang) i det følgende felt, og sørg for at gemme begge disse værdier på et sikkert sted til sikkerhedskopiering. Kopier indholdet i feltet "Arduino HEX array:", og skift tilbage til Arduino -editoren, og udskift arrayet på linje 25 (hmacKey) med det, du kopierede fra webstedet.
Efter at have kontrolleret hver ledningsforbindelse, skal du sørge for, at RTC-modulet har en møntcelle i det, og tilslutte Arduino til din bærbare computer ved hjælp af en USB-mini-ledning, og uploade den vedhæftede skitse.
Efter upload, når der trykkes på knappen, skal der vises et nummer på skærmen. Hvis du downloader Google Authenticator -appen på en smartphone og går tilbage til det websted, der bruges til at generere HEX -arrayet, scanner QR -koden eller indtaster "Google Authenticator -koden" i appen, skal du se et nummer, der vises i appen. Hvis alt fungerer korrekt, skal de 4 cifre, der vises, svare til de første 4 af den aktuelle kode, der vises på smartphone -appen, når du trykker på knappen. Hvis dette ikke er tilfældet, skal du sørge for, at computeren, der bruges til at uploade Arduino -koden, er indstillet til UTC -tid, og prøv igen.
Trin 2: Overførsel til PCB
Efter at have kontrolleret, at alt er i orden, kan du overføre komponenterne til printkortet og lodde alt sammen, men du synes passer. Jeg har vedhæftet et PCB -diagram ud over Fritzing -filen (tilgængelig her). Bemærk, at jeg placerede alle komponenterne på toppen af brættet til æstetik, men kan også monteres nedenunder og derefter lukkes i en slags hus for at gøre det renere. Jeg skar og varmlimede popsicle -pinde farvet ind med Sharpie på siderne af printkortet for at skabe en provisorisk kasse til enheden. Et andet valgfrit trin er at vedhæfte en 9-volts batteriklemme til VIN- og GND-benene på Arduino, hvilket gør den batteridrevet.
Trin 3: Færdig
Sådan blev min færdige generator, hvis du fulgte med og lavede en selv, del den herunder!
Sørg for at stemme min Instructable til STEM -konkurrencen, hvis du finder det passende, og efterlad en kommentar/eventuelle spørgsmål, du måtte have herunder!
Anbefalede:
Sådan bruges Arduino DDS Frequency Signal Generator AD9850: 7 trin
Sådan bruges Arduino DDS Frequency Signal Generator AD9850: I denne vejledning lærer vi, hvordan man laver en Frequency Signal Generator ved hjælp af et AD9850 modul og Arduino. Se videoen! Bemærk: Det lykkedes mig at få frekvens op til +50MHz, men signalkvaliteten bliver værre med de højere frekvenser
Akustisk levitation med Arduino Uno trin for trin (8 trin): 8 trin
Akustisk levitation med Arduino Uno Step-by Step (8-trin): ultralyds lydtransducere L298N Dc kvindelig adapter strømforsyning med en han-DC-pin Arduino UNOBreadboard Sådan fungerer det: Først uploader du kode til Arduino Uno (det er en mikrokontroller udstyret med digital og analoge porte til konvertering af kode (C ++)
Generator: Fidget Spinner Generator 3 i 1: 3 trin
Generator: Fidget Spinner Generator 3 i 1: fidget spinner generator 3 i 1 - nu kan du konfigurere din fidget spinner generator (tre valg) mikrogeneratoren bruger 3 neodymkugler og 3 neodymskiver (led og mindre spiraljern mindre) Find os PÅ INSTAGRAM og se en simpel elektrisk
Generator - DC -generator ved hjælp af Reed Switch: 3 trin
Generator - DC Generator Brug af Reed Switch: Enkel DC generator En jævnstrøm (DC) generator er en elektrisk maskine, der konverterer mekanisk energi til jævnstrøm. ændringer
Self Excite en generator uden DC -generator, kondensatorbank eller batteri: 5 trin (med billeder)
Self Excite en generator uden nogen DC-generator, kondensatorbank eller batteri: Hej! Denne instruktør er til at konvertere en feltspændt generator til en selvspændt en. Fordelen ved dette trick er, at du ikke behøver at drive feltet til dette generator med et 12 volt batteri, men i stedet vil den tænde sig selv, så du