Taula de continguts:
Vídeo: Generador Arduino TOTP: 3 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:12
Inspiració
Tenint un amic interessat en la criptografia i la seguretat, volia crear el regal d’aniversari perfecte.
* Aquest és un projecte que he fet com a regal d'aniversari i que he estat creat amb limitacions de temps ajustades (perdoneu la mà d'obra desordenada)
NOTA: La generació TOTP que s’utilitza en aquest projecte genera i utilitza codis de 6 dígits, però a causa del meu maquinari actual, he optat per reduir els 2 dígits finals i mostrar-ne i utilitzar-ne 4, sens dubte (però no gaire) seguretat.
Informació general
Aquest projecte genera un nou codi cada 30 segons mitjançant una tecla precompartida i l’hora actual (que es fa un seguiment de l’ús del mòdul de rellotge en temps real) i el mostra a la pantalla quan es prem el botó. El cas d’ús més comú seria la verificació de dos factors basada en la contrasenya única d’una vegada (TOTP) i la contrasenya única d’una vegada (HOTP) basada en l’HMAC per a l’autenticació.
TOTP és un algorisme que calcula una contrasenya única a partir d’una clau secreta compartida i l’hora actual. HTOP és un algorisme que utilitza l'algorisme HMAC per generar una contrasenya única.
Empreses com Google, Microsoft i Steam ja utilitzen la tecnologia TOTP per a la seva autenticació de dos factors
Enllaços d’interès
Article que explica com Google utilitza aquesta tecnologia per autenticar els usuaris:
Implementació de JavaScript d’HOTP i TOTP que es poden utilitzar en crear programari amb aquest projecte -
Biblioteca criptogràfica per a Arduino utilitzada en aquest projecte -
Paper TOTP:
Nivell d’expertesa
Aquesta instrucció és per a entusiastes que estiguin interessats en la seguretat i que vulguin implementar un bon component de maquinari per a la generació del seu TOTP. Aquest instructiu està escrit per a un públic que ja entén els conceptes bàsics d’interpretació de diagrames d’electrònica i programació rudimentària, però si teniu previst seguir aquest instructiu exactament, no us preocupeu si no teniu experiència i no dubteu a fer preguntes a la secció comentaris! A més, el projecte pot ser interessant per a fabricants amb més experiència, ja que el producte final no només és una peça agradable (al meu entendre), sinó que té molt potencial d’expansió i noves funcions sense gaire molèsties.
Subministraments
Materials:
- 1x Arduino Nano (Amazon)
- 1 mòdul DS3231 AT24C32 Rellotge en temps real (RTC) (Amazon)
- 1 x SH5461AS càtode comú de 4 dígits de 7 segments (Amazon)
- 1 botó de pulsació (Amazon)
- 1x 10k resistència (Amazon)
- PCB OPCIONAL 1x 5x7cm (Amazon)
- Cable OPCIONAL per soldar a PCB
- OPCIONAL 1x Taula de pa per provar (Amazon)
Pas 1: Muntatge i proves
Muntar tots els components de la placa de connexió i connectar-los segons el diagrama de cablejat adjunt (el fitxer Fritzing és aquí).
Assegureu-vos que teniu instal·lat l’IDE Arduino (es pot trobar en línia si no ho feu) i instal·leu les biblioteques següents:
github.com/lucadentella/TOTP-Arduino
github.com/adafruit/RTClib
github.com/maniacbug/Cryptosuite
Descarregueu l'esbós adjunt (també es pot accedir aquí: https://gist.github.com/shiv213/569f01a54988cb0207966be9a65cc5ab) i obriu-lo mitjançant l'IDE Arduino. Obriu aquest enllaç (https://www.lucadentella.it/OTP/) i introduïu qualsevol nom al camp del nom del compte i una clau secreta personalitzada (de 10 caràcters) al camp següent, assegureu-vos de desar tots dos valors. en un lloc segur per fer còpies de seguretat. Copieu el contingut del camp "Arduino HEX array:" i torneu a l'editor Arduino, substituint el array de la línia 25 (hmacKey) pel que heu copiat del lloc.
Després de comprovar cada connexió de cable, assegureu-vos que el mòdul RTC tingui una cel·la de monedes i connecteu l'Arduino al vostre ordinador portàtil mitjançant un mini cable USB i pengeu l'esbós adjunt.
Després de carregar-lo, quan es prem el botó, apareixerà un número a la pantalla. Si descarregueu l'aplicació Google Authenticator en un telèfon intel·ligent i torneu al lloc utilitzat per generar la matriu HEX, escanejant el codi QR o escrivint el "codi Google Authenticator" a l'aplicació, hauríeu de veure un número que apareix a l'aplicació. Si tot funciona correctament, quan premeu el botó, els 4 dígits que es mostren haurien de coincidir amb els 4 primers del codi actual que es mostra a l'aplicació del telèfon intel·ligent. Si no és així, assegureu-vos que l’ordinador que s’utilitza per carregar el codi Arduino estigui configurat a l’hora UTC i torneu-ho a provar.
Pas 2: transferència al PCB
Després d'assegurar-vos que tot està en bon estat, podeu transferir els components al PCB i soldar-ho tot junts, segons vulgueu. He adjuntat un diagrama de PCB a més del fitxer Fritzing (disponible aquí). Tingueu en compte que he col·locat tots els components a la part superior del tauler per obtenir estètica, però també es poden muntar a sota i després tancar-los en algun tipus de carcassa per fer-lo més net. Vaig tallar i varetes de palets enganxats en calent de colors amb Sharpie als costats del PCB per crear una caixa improvisada per a la unitat. Un altre pas opcional és connectar un clip de bateria de 9 volts als pins VIN i GND de l’Arduino, de manera que funciona amb bateria.
Pas 3: acabat
Així és com va resultar el meu generador complet, si el vau seguir i el vau fer vosaltres mateixos, compartiu-lo a continuació.
Assegureu-vos de votar el meu instructiu per al concurs STEM si ho considereu oportú i deixeu un comentari / qualsevol pregunta que tingueu a continuació.
Recomanat:
Com utilitzar el generador de senyal de freqüència Arduino DDS AD9850: 7 passos
Com utilitzar el generador de senyal de freqüència Arduino DDS AD9850: en aquest tutorial aprendrem com fer un generador de senyal de freqüència mitjançant un mòdul AD9850 i Arduino. Vegeu el vídeo. pitjor amb les freqüències més altes
Generador / provador de 4-20ma amb Arduino: 8 passos
Generador / provador de 4-20ma amb Arduino: a eBay hi ha generadors de 4-20mA disponibles, però per a mi m’encanta la part de les coses de bricolatge i les parts que tinc. Volia provar les entrades analògiques del nostre PLC per verificar les nostres lectures per provar la sortida dels instruments de 4-20 mA. Hi ha loa
Generador de senyals RF 100 KHz-600 MHZ a l’escut Arduino DDS AD9910: 5 passos
Generador de senyals de RF 100 KHz-600 MHz a DDS AD9910 Arduino Shield: Com es fa un generador de RF estable, de baixa precisió i soroll (amb modulació AM, FM) a Arduino
Generador de música basat en el temps (generador de midi basat en ESP8266): 4 passos (amb imatges)
Generador de música basat en el temps (generador de midi basat en ESP8266): Hola, avui explicaré com fer el vostre propi generador de música basat en el temps. Es basa en un ESP8266, que és com un Arduino, i respon a la temperatura, a la pluja i intensitat lumínica. No espereu que faci cançons senceres o progrés d’acords
Generador: generador de corrent continu mitjançant commutador Reed: 3 passos
Generador: generador de corrent continu amb interruptor Reed: generador de corrent continu simple Un generador de corrent continu (CC) és una màquina elèctrica que converteix l’energia mecànica en electricitat de corrent continu. Important: un generador de corrent continu (CC) es pot utilitzar com a motor de corrent continu sense canvis