Tabla de contenido:
Video: Generador Arduino TOTP: 3 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:41
Inspiración
Como tenía un amigo interesado en la criptografía y la seguridad, quería crear el regalo de cumpleaños perfecto.
* Este es un proyecto que hice como regalo de cumpleaños y fue creado dentro de las limitaciones de tiempo (perdón por la desordenada mano de obra)
NOTA: La generación TOTP que se usa en este proyecto genera y utiliza códigos de 6 dígitos, pero debido a mi hardware actual disponible, opté por cortar los 2 dígitos finales y mostrar y utilizar 4, posiblemente (pero no mucho) reduciendo el seguridad.
Información general
Este proyecto genera un nuevo código cada 30 segundos usando una tecla previamente compartida y la hora actual (que se mantiene al día del uso del módulo de reloj en tiempo real) y lo muestra en la pantalla cuando se presiona el botón. El caso de uso más común sería la verificación de dos factores basada en la contraseña única basada en el tiempo (TOTP) y la contraseña única basada en HMAC (HOTP) para la autenticación.
TOTP es un algoritmo que calcula una contraseña de un solo uso a partir de una clave secreta compartida y la hora actual. HTOP es un algoritmo que utiliza el algoritmo HMAC para generar una contraseña de un solo uso.
Empresas como Google, Microsoft y Steam ya utilizan la tecnología TOTP para su autenticación de dos factores
Enlaces interesantes
Artículo que explica cómo Google usa esta tecnología para autenticar a los usuarios:
Implementación de JavaScript de HOTP y TOTP que se puede usar al crear software utilizando este proyecto:
Biblioteca critográfica para Arduino utilizada en este proyecto:
Papel TOTP -
Nivel de experiencia
Este Instructable es para entusiastas que están interesados en la seguridad y pueden querer implementar un buen componente de hardware para la generación de su TOTP. Este instructivo está escrito para una audiencia que ya comprende los conceptos básicos de la interpretación de diagramas electrónicos y programación rudimentaria, pero si planea simplemente seguir este Instructable exactamente, no se preocupe si no tiene experiencia y no dude en hacer preguntas en el comentarios! Además, el proyecto también puede ser interesante para los creadores más experimentados, ya que el producto final no solo es una pieza agradable para tener a mano (en mi opinión), sino que tiene mucho potencial de expansión y nuevas funciones sin muchos problemas.
Suministros
Materiales:
- 1x Arduino Nano (Amazon)
- 1x DS3231 AT24C32 Módulo de reloj en tiempo real (RTC) (Amazon)
- 1x SH5461AS Cátodo común de 4 dígitos y 7 segmentos (Amazon)
- 1x pulsador (Amazon)
- 1 resistencia de 10 k (Amazon)
- OPCIONAL 1x PCB de 5x7cm (Amazon)
- Cable OPCIONAL para soldar a PCB
- OPCIONAL 1x Placa de pruebas para pruebas (Amazon)
Paso 1: Montaje y prueba
Ensamble todos los componentes en la placa y conéctelos de acuerdo con el diagrama de cableado adjunto (el archivo Fritzing está aquí).
Asegúrese de tener instalado el IDE de Arduino (se puede encontrar en línea si no lo tiene) e instale las siguientes bibliotecas:
github.com/lucadentella/TOTP-Arduino
github.com/adafruit/RTClib
github.com/maniacbug/Cryptosuite
Descargue el boceto adjunto (también se puede acceder aquí: https://gist.github.com/shiv213/569f01a54988cb0207966be9a65cc5ab) y ábralo usando el IDE de Arduino. Abra este enlace (https://www.lucadentella.it/OTP/) e ingrese cualquier nombre en el campo de nombre de cuenta, y una clave secreta personalizada (10 caracteres de largo) en el siguiente campo, asegurándose de guardar ambos valores. en un lugar seguro como respaldo. Copie el contenido del campo "Arduino HEX array:" y vuelva al editor Arduino, reemplazando la matriz en la línea 25 (hmacKey) con la que copió del sitio.
Después de verificar dos veces la conexión de cada cable, asegúrese de que el módulo RTC tenga una celda de moneda y conecte el Arduino a su computadora portátil con un mini cable USB y cargue el boceto adjunto.
Después de la carga, cuando se presiona el botón, debería aparecer un número en la pantalla. Si descarga la aplicación Google Authenticator en un teléfono inteligente y vuelve al sitio utilizado para generar la matriz HEX, escaneando el código QR o escribiendo el "código Google Authenticator" en la aplicación, debería ver un número que se muestra en la aplicación. Si todo funciona correctamente, cuando presione el botón, los 4 dígitos que se muestran deben coincidir con los primeros 4 del código actual que se muestra en la aplicación del teléfono inteligente. Si este no es el caso, asegúrese de que la computadora que se está utilizando para cargar el código Arduino esté configurada en la hora UTC y vuelva a intentarlo.
Paso 2: Transferencia a PCB
Después de asegurarse de que todo funciona correctamente, puede transferir los componentes a la PCB y soldar todo junto como le parezca adecuado. He adjuntado un diagrama de PCB además del archivo Fritzing (disponible aquí). Tenga en cuenta que coloqué todos los componentes en la parte superior de la placa por motivos de estética, pero también se pueden montar debajo y luego encerrar en algún tipo de carcasa para que quede más limpio. Corté y pegué palitos de helado coloreados con Sharpie en los lados del PCB para crear una caja improvisada para la unidad. Otro paso opcional es conectar un clip de batería de 9 voltios a los pines VIN y GND del Arduino, para que funcione con batería.
Paso 3: ¡Terminado
Así es como resultó mi generador completo, si lo siguió e hizo uno usted mismo, ¡compártalo a continuación!
¡Asegúrese de votar mi Instructable para el Concurso STEM si lo considera oportuno, y deje un comentario / cualquier pregunta que pueda tener a continuación!
Recomendado:
Cómo utilizar el generador de señales de frecuencia Arduino DDS AD9850: 7 pasos
Cómo usar el generador de señal de frecuencia Arduino DDS AD9850: En este tutorial aprenderemos cómo hacer un generador de señal de frecuencia usando un módulo AD9850 y Arduino.¡Mire el video! peor con las frecuencias más altas
Generador / probador 4-20ma con Arduino: 8 pasos
Generador / probador de 4-20 mA con Arduino: los generadores de 4-20 mA están disponibles en eBay, pero a mí me encanta la parte de bricolaje de las cosas y el uso de piezas que tengo por ahí. Quería probar las entradas analógicas de nuestro PLC para verificar nuestras lecturas de scada y para probar la salida de instrumentos de 4-20 mA. Hay loa
Generador de señal RF 100 KHz-600 MHZ en DDS AD9910 Arduino Shield: 5 pasos
Generador de señal RF 100 KHz-600 MHZ en DDS AD9910 Arduino Shield: Cómo hacer un generador de RF estable de bajo ruido, alta precisión (con modulación AM, FM) en Arduino
Generador de música basado en el clima (generador Midi basado en ESP8266): 4 pasos (con imágenes)
Generador de música basado en el clima (Generador Midi basado en ESP8266): Hola, hoy explicaré cómo hacer tu propio generador de música basado en el clima. Está basado en un ESP8266, que es como un Arduino, y responde a la temperatura, la lluvia y la intensidad de la luz. No espere que haga canciones completas o programas de acordes
Generador - Generador de CC con interruptor de lengüeta: 3 pasos
Generador - Generador de CC con interruptor de láminas: Generador de CC simple Un generador de corriente continua (CC) es una máquina eléctrica que convierte la energía mecánica en electricidad de corriente continua. cambios