Innehållsförteckning:
Video: Arduino TOTP Generator: 3 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:41
Inspiration
Med en vän med intresse för kryptografi och säkerhet ville jag skapa den perfekta födelsedagspresenten.
*Detta är ett projekt jag gjorde som en födelsedagspresent och skapades inom snäva tidsbegränsningar (förlåt det stökiga utförandet)
OBS: TOTP-generationen som används i detta projekt genererar och använder sexsiffriga koder, men på grund av min nuvarande hårdvara valde jag att klippa efter de två siffrorna och visa och använda 4, utan tvekan (men inte mycket) att minska säkerhet.
Allmän information
Detta projekt genererar en ny kod var 30: e sekund med hjälp av en fördelad tangent och den aktuella tiden (som hålls i spår för att använda realtidsklockemodulen) och visar den på displayen när knappen trycks in. Det vanligaste användningsfallet skulle vara tvåfaktorsverifiering baserat på tidsbaserat engångslösenord (TOTP) och HMAC-baserat engångslösenord (HOTP) för autentisering.
TOTP är en algoritm som beräknar ett engångslösenord från en delad hemlig nyckel och den aktuella tiden. HTOP är en algoritm som använder HMAC-algoritmen för att generera ett engångslösenord.
Företag som Google, Microsoft och Steam använder redan TOTP-teknik för sin tvåfaktorsautentisering
Intressanta länkar
Artikel som förklarar hur Google använder denna teknik för att autentisera användare-https://medium.com/@tilaklodha/google-authenticator-and-how-it-works-2933a4ece8c2
JavaScript -implementering av HOTP och TOTP som kan användas när du skapar programvara som använder detta projekt -
Krytografiskt bibliotek för Arduino som används i detta projekt -
TOTP Paper -
Expertnivå
Denna instruktionsbok är för entusiaster som är intresserade av säkerhet och kanske vill implementera en trevlig hårdvarukomponent för generationen av deras TOTP. Denna instruerbara är skriven för en publik som redan förstår grunderna i att tolka elektronikdiagram och rudimentär programmering, men om du planerar att helt enkelt följa denna instruerbara exakt, oroa dig inte om du inte har någon erfarenhet och ställ gärna frågor nedan i kommentarer! Dessutom kan projektet också vara intressant för mer erfarna tillverkare eftersom slutprodukten inte bara är en trevlig bit att ha runt (enligt min mening), men har så mycket potential för expansion och nya funktioner utan mycket krångel.
Tillbehör
Material:
- 1x Arduino Nano (Amazon)
- 1x DS3231 AT24C32 Realtidsklocka (RTC) -modul (Amazon)
- 1x SH5461AS gemensam katod 4-siffrig 7-segment (Amazon)
- 1x tryckknapp (Amazon)
- 1x 10k motstånd (Amazon)
- VALFRITT 1x 5x7cm PCB (Amazon)
- VALFRITT Tråd för lödning till kretskort
- TILLVAL 1x brödbräda för testning (Amazon)
Steg 1: Montering och testning
Montera alla komponenter på brödbrädan och dra dem enligt det bifogade kopplingsschemat (Fritzing -filen finns här).
Se till att du har Arduino IDE installerat (det kan hittas online om du inte gör det) och installera följande bibliotek:
github.com/lucadentella/TOTP-Arduino
github.com/adafruit/RTClib
github.com/maniacbug/Cryptosuite
Ladda ner den bifogade skissen (kan också nås här: https://gist.github.com/shiv213/569f01a54988cb0207966be9a65cc5ab) och öppna den med Arduino IDE. Öppna denna länk (https://www.lucadentella.it/OTP/) och mata in alla namn i fältet för kontonamn och en anpassad hemlig nyckel (10 tecken lång) i följande fält, se till att spara båda dessa värden på en säker plats för säkerhetskopiering. Kopiera innehållet i fältet "Arduino HEX array:" och växla tillbaka till Arduino -redigeraren och ersätt matrisen på rad 25 (hmacKey) med den du kopierade från webbplatsen.
Efter att du har kontrollerat varje trådanslutning, se till att RTC-modulen har en myntcell i den, och anslut Arduino till din bärbara dator med en USB-minisladd och ladda upp den bifogade skissen.
Efter uppladdning, när knappen trycks in, bör ett nummer visas på skärmen. Om du laddar ner Google Authenticator -appen på en smartphone och går tillbaka till webbplatsen som används för att generera HEX -matrisen, skannar QR -koden eller skriver "Google Authenticator -koden" i appen ska du se ett nummer som visas i appen. Om allt fungerar korrekt, när du trycker på tryckknappen, ska de fyra siffrorna som visas stämma överens med de första 4 av den aktuella koden som visas i smartphone -appen. Om så inte är fallet, se till att datorn som används för att ladda upp Arduino -koden är inställd på UTC -tid och försök igen.
Steg 2: Överföring till kretskort
Efter att ha kontrollerat att allt är i funktionsdugligt skick kan du överföra komponenterna till kretskortet och lödda ihop allt som du tycker passar. Jag har bifogat ett PCB -diagram utöver Fritzing -filen (finns här). Observera att jag placerade alla komponenter på toppen av brädet för estetik, men kan också monteras under och sedan inneslutas i något slags hus för att göra det renare. Jag klippte och hetlimmade popsicle -pinnar färgade med Sharpie på sidorna av kretskortet för att skapa en provisorisk låda för enheten. Ett annat valfritt steg är att fästa en 9-volts batteriklämma på VIN- och GND-stiften på Arduino, vilket gör den batteridriven.
Steg 3: Avslutad
Så här blev min färdiga generator, om du följde med och gjorde en själv, dela den nedan!
Var noga med att rösta min Instructable för STEM -tävlingen om du tycker det är lämpligt och lämna en kommentar/eventuella frågor du kan ha nedan!
Rekommenderad:
Hur man använder Arduino DDS Frequency Signal Generator AD9850: 7 steg
Hur man använder Arduino DDS Frequency Signal Generator AD9850: I den här självstudien lär vi oss hur man gör en Frequency Signal Generator med en AD9850 -modul och Arduino. Se videon! Obs: Jag lyckades få frekvens upp till +50MHz men signalkvaliteten blir sämre med de högre frekvenserna
Akustisk levitation med Arduino Uno Steg-för-steg (8-steg): 8 steg
Akustisk levitation med Arduino Uno Steg-för-steg (8-steg): ultraljudsgivare L298N Dc kvinnlig adapter strömförsörjning med en manlig DC-pin Arduino UNOBreadboardHur det fungerar: Först laddar du upp kod till Arduino Uno (det är en mikrokontroller utrustad med digital och analoga portar för att konvertera kod (C ++)
Generator: Fidget Spinner Generator 3 i 1: 3 -steg
Generator: Fidget Spinner Generator 3 i 1: fidget spinner generator 3 i 1 - nu kan du konfigurera din fidget spinner generator (tre val) mikrogeneratorn använder 3 neodymium sfärer och 3 neodymium skivor (led och små spoljärn mindre) Hitta oss PÅ INSTAGRAM och se en enkel elektrisk
Generator - DC -generator med Reed Switch: 3 steg
Generator - DC Generator som använder Reed Switch: Enkel DC generator En likström (DC) generator är en elektrisk maskin som omvandlar mekanisk energi till likström. Viktigt: En likström (DC) generator kan användas som likströmsmotor utan konstruktion ändringar
Self Excite en generator utan någon DC -generator, kondensatorbank eller batteri: 5 steg (med bilder)
Self Excite en Generator Utan någon DC-generator, kondensatorbank eller batteri: Hej! Denna instruerbara är för att konvertera en fält exciterad generator till en själv-exciterad. Fördelen med detta trick är att du inte behöver driva fältet för detta generator med ett 12 volts batteri men istället startar den upp sig själv så att du