Innholdsfortegnelse:
Video: Arduino TOTP Generator: 3 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:22
Inspirasjon
Etter å ha en venn med interesse for kryptografi og sikkerhet, ønsket jeg å lage den perfekte bursdagsgave.
*Dette er et prosjekt jeg laget i bursdagsgave og ble opprettet innenfor tidsrammer (unnskyld det rotete utførelsen)
MERK: TOTP-generasjonen som brukes i dette prosjektet genererer og bruker 6-sifrede koder, men på grunn av min nåværende maskinvare, valgte jeg å kutte de to siste sifrene og vise og bruke 4, uten tvil (men ikke sterkt) å redusere sikkerhet.
Generell informasjon
Dette prosjektet genererer en ny kode hvert 30. sekund ved hjelp av en forhåndsdelt tast og gjeldende tid (som holdes oversikt over bruk av sanntidsklokke-modulen) og viser den på displayet når du trykker på knappen. Det vanligste bruksområdet ville være tofaktorsverifisering basert på tidsbasert engangs passord (TOTP) og HMAC-basert engangs passord (HOTP) for autentisering.
TOTP er en algoritme som beregner et engangspassord fra en delt hemmelig nøkkel og den nåværende tiden. HTOP er en algoritme som bruker HMAC-algoritmen til å generere et engangspassord.
Selskaper som Google, Microsoft og Steam bruker allerede TOTP-teknologi for tofaktorautentisering
Interessante lenker
Artikkel som forklarer hvordan Google bruker denne teknologien til å autentisere brukere-https://medium.com/@tilaklodha/google-authenticator-and-how-it-works-2933a4ece8c2
JavaScript -implementering av HOTP og TOTP som kan brukes når du lager programvare som bruker dette prosjektet -
Krytografisk bibliotek for Arduino brukt i dette prosjektet -
TOTP Paper -
Ekspertnivå
Denne instruksen er for entusiaster som er interessert i sikkerhet og kanskje vil implementere en fin maskinvarekomponent til generasjonen av deres TOTP. Denne instruksen er skrevet for et publikum som allerede forstår det grunnleggende i å tolke elektroniske diagrammer og rudimentær programmering, men hvis du planlegger å følge denne instruksjonsboken nøyaktig, ikke bekymre deg hvis du ikke har erfaring, og gjerne stille spørsmål nede i kommentarer! Videre kan prosjektet også være interessant for mer erfarne produsenter siden sluttproduktet ikke bare er et fint stykke å ha rundt (etter min mening), men har så mye potensial for utvidelse og nye funksjoner uten mye stress.
Rekvisita
Materialer:
- 1x Arduino Nano (Amazon)
- 1x DS3231 AT24C32 sanntidsklokke (RTC) -modul (Amazon)
- 1x SH5461AS Felles katode 4-sifret 7-segment (Amazon)
- 1x Trykknapp (Amazon)
- 1x 10k motstand (Amazon)
- VALGFRITT 1x 5x7cm PCB (Amazon)
- VALGFRITT Tråd for lodding til PCB
- VALGFRITT 1x brødbrett for testing (Amazon)
Trinn 1: Montering og testing
Monter alle komponentene på brødbrettet og koble dem i henhold til vedlagte koblingsskjema (Fritzing -filen er her).
Sørg for at du har Arduino IDE installert (den kan finnes online hvis du ikke gjør det) og installer følgende biblioteker:
github.com/lucadentella/TOTP-Arduino
github.com/adafruit/RTClib
github.com/maniacbug/Cryptosuite
Last ned den vedlagte skissen (kan også nås her: https://gist.github.com/shiv213/569f01a54988cb0207966be9a65cc5ab), og åpne den ved hjelp av Arduino IDE. Åpne denne lenken (https://www.lucadentella.it/OTP/) og skriv inn et hvilket som helst navn i kontonavnsfeltet, og en egendefinert hemmelig nøkkel (10 tegn lang) i det følgende feltet, og sørg for å lagre begge disse verdiene på et trygt sted for sikkerhetskopiering. Kopier innholdet i feltet "Arduino HEX array:", og bytt tilbake til Arduino -editoren, og erstatt matrisen på linje 25 (hmacKey) med den du kopierte fra nettstedet.
Etter å ha dobbeltsjekket hver ledningstilkobling, må du kontrollere at RTC-modulen har en myntcelle i den, og koble Arduino til den bærbare datamaskinen ved hjelp av en USB-minikabel og laste opp den vedlagte skissen.
Etter opplasting, når du trykker på knappen, skal det vises et tall på skjermen. Hvis du laster ned Google Authenticator -appen på en smarttelefon og går tilbake til nettstedet som ble brukt til å generere HEX -matrisen, skanner QR -koden eller skriver "Google Authenticator -koden" i appen, bør du se et nummer som vises i appen. Hvis alt fungerer som det skal, når du trykker på trykknappen, skal de fire sifrene som vises, stemme overens med de fire første av den gjeldende koden som vises på smarttelefonappen. Hvis dette ikke er tilfelle, må du kontrollere at datamaskinen som brukes til å laste opp Arduino -koden er satt til UTC -tid, og prøv igjen.
Trinn 2: Overføring til PCB
Etter at du har kontrollert at alt er i orden, kan du overføre komponentene til kretskortet og lodde alt sammen, men du synes det passer. Jeg har lagt ved et PCB -diagram i tillegg til Fritzing -filen (tilgjengelig her). Vær oppmerksom på at jeg plasserte alle komponentene på toppen av brettet for estetikk, men kan også monteres under og deretter innelukkes i et slags hus for å gjøre det renere. Jeg klippet og varmlimte popsicle -pinner farget inn med Sharpie på sidene av kretskortet for å lage en provisorisk boks for enheten. Et annet valgfritt trinn er å feste en 9-volts batteriklemme til VIN- og GND-pinnene på Arduino, slik at den blir batteridrevet.
Trinn 3: Ferdig
Slik ble min ferdige generator, hvis du fulgte med og lagde en selv, del den nedenfor!
Sørg for å stemme min Instructable for STEM -konkurransen hvis du finner det passende, og legg igjen en kommentar/eventuelle spørsmål du måtte ha nedenfor!
Anbefalt:
Hvordan bruke Arduino DDS Frequency Signal Generator AD9850: 7 trinn
Hvordan bruke Arduino DDS Frequency Signal Generator AD9850: I denne opplæringen lærer vi hvordan du lager en Frequency Signal Generator ved hjelp av en AD9850 -modul og Arduino. Se videoen! Merk: Jeg klarte å få frekvens opp til +50MHz, men signalkvaliteten blir verre med de høyere frekvensene
4-20ma generator/tester som bruker Arduino: 8 trinn
4-20ma generator/tester ved bruk av Arduino: 4-20mA generatorer er tilgjengelig på ebay, men jeg elsker en DIY ting av ting og bruker deler jeg har rundt meg. for å teste utgangen på 4-20mA instrumenter. Det er loa
Generator: Fidget Spinner Generator 3 i 1: 3 trinn
Generator: Fidget Spinner Generator 3 i 1: fidget spinner generator 3 i 1 - nå kan du konfigurere din fidget spinner generator (tre valg) mikrogeneratoren bruker 3 neodymkuler og 3 neodymskiver (led og mindre spiraljern mindre) Finn oss PÅ INSTAGRAM og se en enkel elektrisk
Generator - DC Generator Using Reed Switch: 3 trinn
Generator - DC Generator Using Reed Switch: Simple Dc generator En likestrøm (DC) generator er en elektrisk maskin som konverterer mekanisk energi til likestrøm.Viktig: En likestrømsgenerator (DC) kan brukes som likestrømsmotor uten konstruksjon Endringer
Self Excite en generator uten DC -generator, kondensatorbank eller batteri: 5 trinn (med bilder)
Self Excite en generator uten noen DC-generator, kondensatorbank eller batteri: Hei! Denne instruksen er for å konvertere en feltopphisset generator til en selvopphisset. Fordelen med dette trikset er at du ikke trenger å drive feltet til dette generator med et 12 volt batteri, men i stedet vil den starte seg selv slik at du