Përmbajtje:
Video: Gjenerator Arduino TOTP: 3 hapa
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:16
Frymëzim
Duke pasur një mik me interes në kriptografi dhe siguri, doja të krijoja dhuratën perfekte të ditëlindjes.
*Ky është një projekt që kam bërë si dhuratë për ditëlindje dhe është krijuar brenda kufizimeve të ngushta kohore (falni punën e çrregullt)
SHENIM: Brezi TOTP i cili përdoret në këtë projekt gjeneron dhe përdor kode 6 shifrore, por për shkak të pajisjeve të mia aktuale në dorë, unë zgjodha të shkurtoja 2 shifrat e pasme dhe të shfaqja dhe të përdorte 4, duke zvogëluar ndoshta (por jo shumë) sigurinë.
Informacion i pergjithshem
Ky projekt gjeneron një kod të ri çdo 30 sekonda duke përdorur një çelës të paravendosur dhe kohën aktuale (e cila mbahet nën shënimin e përdorimit të modulit të orës në kohë reale) dhe e shfaq atë në ekran kur shtypet butoni. Rasti më i zakonshëm i përdorimit do të ishte verifikimi me dy faktorë i bazuar në Fjalëkalimin One Time të bazuar në Time (TOTP) dhe Fjalëkalimin One Time të bazuar në HMAC (HOTP) për vërtetim.
TOTP është një algoritëm që llogarit një fjalëkalim një herë nga një çelës sekret i përbashkët dhe kohën aktuale. HTOP është një algoritëm që përdor algoritmin HMAC për të gjeneruar një fjalëkalim një herë.
Kompanitë si Google, Microsoft dhe Steam tashmë përdorin teknologjinë TOTP për vërtetimin e tyre me dy faktorë
Lidhje interesante
Artikull që shpjegon se si Google e përdor këtë teknologji për të vërtetuar përdoruesit-https://medium.com/@tilaklodha/google-authenticator-and-how-it-works-2933a4ece8c2
Zbatimi JavaScript i HOTP dhe TOTP që mund të përdoren kur krijoni softuer duke përdorur këtë projekt -
Biblioteka critografike për Arduino e përdorur në këtë projekt -
Letër TOTP -
Niveli i Ekspertizës
Ky Instructable është për entuziastët që janë të interesuar në siguri dhe mund të duan të zbatojnë një komponent të bukur harduerik në gjenerimin e TOTP -ve të tyre. Ky udhëzues është shkruar për një auditor që tashmë i kupton bazat e interpretimit të diagrameve elektronike dhe programimit rudimentar, por nëse planifikoni thjesht të ndiqni këtë udhëzues saktësisht, mos u shqetësoni nëse nuk keni përvojë dhe mos ngurroni të bëni pyetje në komente! Për më tepër, projekti mund të jetë interesant edhe për krijuesit më me përvojë pasi produkti përfundimtar nuk është vetëm një pjesë e bukur për tu pasur (për mendimin tim), por ka aq shumë potencial për zgjerim dhe veçori të reja pa shumë sherr.
Furnizimet
Materiale:
- 1x Arduino Nano (Amazon)
- 1x DS3231 AT24C32 Moduli i orës në kohë reale (RTC) (Amazon)
- 1x SH5461AS Katodi i Përbashkët 4-shifror 7-segmentësh (Amazon)
- 1x Pushbutton (Amazon)
- Rezistencë 1x 10k (Amazon)
- OBJEKTIVAL 1x 5x7cm PCB (Amazon)
- OPTIONAL Tela për bashkim në PCB
- OBJEKTIVAL 1x Breadboard për testim (Amazon)
Hapi 1: Montimi dhe Testimi
Mblidhni të gjithë përbërësit në tabelën e bukës dhe lidhini ato sipas diagramit të bashkangjitur të telave (skedari i ngrirjes është këtu).
Sigurohuni që keni të instaluar Arduino IDE (mund të gjendet në internet nëse nuk e bëni) dhe instaloni bibliotekat e mëposhtme:
github.com/lucadentella/TOTP-Arduino
github.com/adafruit/RTClib
github.com/maniacbug/Cryptosuite
Shkarkoni skicën e bashkangjitur (mund të arrihet edhe këtu: https://gist.github.com/shiv213/569f01a54988cb0207966be9a65cc5ab), dhe hapeni duke përdorur Arduino IDE. Hapni këtë lidhje (https://www.lucadentella.it/OTP/) dhe futni çdo emër në fushën e emrit të llogarisë, dhe një çelës sekret të personalizuar (të gjatë 10 karaktere) në fushën e mëposhtme, duke u siguruar që të ruani të dyja këto vlera në një vend të sigurt për kopje rezervë. Kopjoni përmbajtjen e fushës "Arduino HEX array:" dhe kthehuni përsëri në redaktorin Arduino, duke zëvendësuar grupin në rreshtin 25 (hmacKey) me atë që keni kopjuar nga sajti.
Pasi të keni kontrolluar dy herë secilën lidhje me tela, sigurohuni që moduli RTC të ketë një qelizë monedhe dhe lidheni Arduino me laptopin tuaj duke përdorur një mini kordon USB dhe ngarkoni skicën e bashkangjitur.
Pas ngarkimit, kur shtypet butoni, një numër duhet të shfaqet në ekran. Nëse shkarkoni aplikacionin Google Authenticator në një smartphone dhe ktheheni në faqen e përdorur për të gjeneruar grupin HEX, duke skanuar kodin QR ose duke shtypur "kodin Google Authenticator" në aplikacion, duhet të shihni një numër të treguar në aplikacion. Nëse gjithçka funksionon si duhet, kur shtypni butonin, 4 shifrat e shfaqura duhet të përputhen me 4 të parat e kodit aktual të shfaqur në aplikacionin e smartphone. Nëse nuk është kështu, sigurohuni që kompjuteri që përdoret për të ngarkuar kodin Arduino është vendosur në kohën UTC dhe provoni përsëri.
Hapi 2: Transferimi në PCB
Pasi të siguroheni që gjithçka është në gjendje pune, mund t'i transferoni komponentët në PCB dhe të lidhni gjithçka së bashku, sidoqoftë që dukeni të arsyeshëm. Unë kam bashkangjitur një skemë PCB përveç skedarit Fritzing (e disponueshme këtu). Vini re se unë i vendosa të gjithë përbërësit në majë të tabelës për estetikë, por gjithashtu mund të montohen nën të dhe më pas të mbyllen në një lloj strehimi për ta bërë atë më të pastër. Kam prerë dhe ngjitur shkopinj të njomë të ngjyrosur me Sharpie në anët e PCB për të krijuar një kuti të improvizuar për njësinë. Një hap tjetër opsional është të lidhni një kapëse baterie 9 volt në kunjat VIN dhe GND të Arduino, duke e bërë atë të funksionojë me bateri.
Hapi 3: Përfundoi
Kështu doli gjeneratori im i përfunduar, nëse e ndoqët dhe e keni bërë vetë, ndani atë më poshtë!
Sigurohuni që të votoni Instructable tim për Konkursin STEM nëse e shihni të arsyeshme dhe lini një koment/çdo pyetje që mund të keni më poshtë!
Recommended:
4-20ma Gjenerator/Testues duke përdorur Arduino: 8 hapa
Gjenerator/testues 4-20ma duke përdorur Arduino: Gjeneratorët 4-20mA janë të disponueshëm në ebay, por unë për vete e dua pjesën DIY të gjërave dhe përdorimin e pjesëve që kam vendosur rreth e qark. Doja të testoja inputet analoge të PLC-së tonë për të verifikuar leximet tona scada dhe për të testuar daljen e instrumenteve 4-20mA. Ka loa
Gjenerator Interaktiv i Fletës Laser Me Arduino: 11 hapa (me fotografi)
Gjenerator Interaktiv i Fletëve Laser Me Arduino: Laserët mund të përdoren për të krijuar efekte vizuale të pabesueshme. Në këtë projekt, unë ndërtova një lloj të ri të ekranit lazer që është interaktiv dhe luan muzikë. Pajisja rrotullohet me dy lazer për të formuar dy fletë drite të ngjashme me vorbullën. Kam përfshirë sensorin e distancës
3 Faza Gjenerator Vala Sinus Bazuar në Arduino Për shkak: 5 Hapa
3 Faza Gjenerator Vala Sinus Bazuar në Arduino Due: qëllimi i këtij aksioni është të ndihmojë dikë që po përpiqet të përdorë performancën më të madhe të Due + mungesë referencash + fletë të dhënash jo të dobishme. Ky projekt është në gjendje të gjenerojë deri në 3 faza sinusale @ 256 mostra / cikël me frekuencë të ulët (< 1kHz) dhe 16 sekonda
Gjenerator - Gjenerator DC duke përdorur kallamin e kallamit: 3 hapa
Gjenerator - Gjeneratori DC duke përdorur kallamin e kallamit: Gjenerator i thjeshtë DC Një gjenerator i rrymës së drejtpërdrejtë (DC) është një makinë elektrike e cila konverton energjinë mekanike në energji elektrike me rrymë të drejtpërdrejtë. E rëndësishme: Një gjenerator i rrymës direkte (DC) mund të përdoret si motor DC pa ndonjë konstruktiv ndryshimet
Gjenerator i funksioneve portativ në Arduino: 7 hapa (me fotografi)
Gjeneratori Portativ i Funksioneve në Arduino: Gjeneratori i funksioneve është një mjet shumë i dobishëm, veçanërisht kur po shqyrtojmë testimin e përgjigjes së qarkut tonë ndaj një sinjali të caktuar. Në këtë udhëzues do të përshkruaj sekuencën e ndërtimit të gjeneratorit të vogël, të lehtë për t'u përdorur, të funksionit portativ. Karakteristikat e