Inhaltsverzeichnis:
Video: Arduino TOTP-Generator - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:17
Inspiration
Da ich einen Freund mit Interesse an Kryptographie und Sicherheit hatte, wollte ich das perfekte Geburtstagsgeschenk kreieren.
*Dies ist ein Projekt, das ich als Geburtstagsgeschenk gemacht habe und innerhalb kurzer Zeit erstellt wurde (verzeihen Sie die unordentliche Verarbeitung)
HINWEIS: Die in diesem Projekt verwendete TOTP-Generation generiert und verwendet 6-stellige Codes, aber aufgrund meiner aktuellen Hardware habe ich mich dafür entschieden, die folgenden 2 Stellen zu schneiden und anzuzeigen und 4 zu verwenden, was wohl (aber nicht stark) die Sicherheit.
Allgemeine Informationen
Dieses Projekt generiert alle 30 Sekunden einen neuen Code unter Verwendung eines vorinstallierten Schlüssels und der aktuellen Uhrzeit (die bei Verwendung des Echtzeituhrmoduls verfolgt wird) und zeigt ihn auf dem Display an, wenn die Taste gedrückt wird. Der häufigste Anwendungsfall wäre die Zwei-Faktor-Verifizierung basierend auf einem zeitbasierten Einmalpasswort (TOTP) und einem HMAC-basierten Einmalpasswort (HOTP) zur Authentifizierung.
TOTP ist ein Algorithmus, der aus einem gemeinsamen geheimen Schlüssel und der aktuellen Uhrzeit ein Einmalpasswort berechnet. HTOP ist ein Algorithmus, der den HMAC-Algorithmus verwendet, um ein Einmalpasswort zu generieren.
Unternehmen wie Google, Microsoft und Steam verwenden bereits die TOTP-Technologie für ihre Zwei-Faktor-Authentifizierung
Interessante Links
Artikel, der erklärt, wie Google diese Technologie verwendet, um Benutzer zu authentifizieren –
JavaScript-Implementierung von HOTP und TOTP, die beim Erstellen von Software unter Verwendung dieses Projekts verwendet werden kann -
Kryptografische Bibliothek für Arduino, die in diesem Projekt verwendet wird -
TOTP-Papier -
Kompetenzniveau
Dieses Instructable ist für Enthusiasten, die an Sicherheit interessiert sind und eine schöne Hardwarekomponente für die Generierung ihres TOTP implementieren möchten. Dieses instructable ist für ein Publikum geschrieben, das bereits die Grundlagen der Interpretation von Elektronikdiagrammen und rudimentärer Programmierung versteht, aber wenn Sie einfach nur diesem Instructable genau folgen möchten, machen Sie sich keine Sorgen, wenn Sie keine Erfahrung haben, und stellen Sie gerne Fragen in der Kommentare! Darüber hinaus kann das Projekt auch für erfahrenere Hersteller interessant sein, da das Endprodukt nicht nur ein schönes Stück ist (meiner Meinung nach), sondern auch so viel Potenzial für Erweiterungen und neue Funktionen ohne großen Aufwand bietet.
Lieferungen
Materialien:
- 1x Arduino Nano (Amazon)
- 1x DS3231 AT24C32 Echtzeituhr (RTC) Modul (Amazon)
- 1x SH5461AS Common Cathode 4-stellig 7-Segment (Amazon)
- 1x Taster (Amazon)
- 1x 10k Widerstand (Amazon)
- OPTIONAL 1x 5x7cm Platine (Amazon)
- OPTIONAL Draht zum Löten auf PCB
- OPTIONAL 1x Steckbrett zum Testen (Amazon)
Schritt 1: Montage und Prüfung
Montieren Sie alle Komponenten auf dem Steckbrett und verdrahten Sie sie gemäß dem beigefügten Schaltplan (Fritzing-Datei ist hier).
Stellen Sie sicher, dass Sie die Arduino IDE installiert haben (sie kann online gefunden werden, wenn Sie dies nicht tun) und installieren Sie die folgenden Bibliotheken:
github.com/lucadentella/TOTP-Arduino
github.com/adafruit/RTClib
github.com/maniacbug/Cryptosuite
Laden Sie die angehängte Skizze herunter (auch hier abrufbar: https://gist.github.com/shiv213/569f01a54988cb0207966be9a65cc5ab) und öffnen Sie sie mit der Arduino IDE. Öffnen Sie diesen Link (https://www.lucadentella.it/OTP/) und geben Sie einen beliebigen Namen in das Feld für den Kontonamen und einen benutzerdefinierten geheimen Schlüssel (10 Zeichen lang) in das folgende Feld ein. Stellen Sie sicher, dass Sie beide Werte speichern an einem sicheren Ort zur Sicherung. Kopieren Sie den Inhalt des Feldes "Arduino HEX array:" und wechseln Sie zurück zum Arduino-Editor, wobei Sie das Array in Zeile 25 (hmacKey) durch das von der Site kopierte ersetzen.
Nachdem Sie jede Drahtverbindung doppelt überprüft haben, stellen Sie sicher, dass das RTC-Modul eine Knopfzelle enthält, und verbinden Sie das Arduino mit einem USB-Minikabel mit Ihrem Laptop und laden Sie die beigefügte Skizze hoch.
Nach dem Hochladen sollte beim Drücken der Schaltfläche eine Zahl auf dem Bildschirm angezeigt werden. Wenn Sie die Google Authenticator-App auf ein Smartphone herunterladen und zu der Website zurückkehren, die zum Generieren des HEX-Arrays verwendet wurde, den QR-Code scannen oder den "Google Authenticator-Code" in die App eingeben, sollte in der App eine Nummer angezeigt werden. Wenn alles richtig funktioniert, sollten beim Drücken der Taste die 4 angezeigten Ziffern mit den ersten 4 des aktuellen Codes übereinstimmen, der in der Smartphone-App angezeigt wird. Wenn dies nicht der Fall ist, stellen Sie sicher, dass der Computer, der zum Hochladen des Arduino-Codes verwendet wird, auf UTC-Zeit eingestellt ist und versuchen Sie es erneut.
Schritt 2: Übertragen auf PCB
Nachdem Sie sichergestellt haben, dass alles in Ordnung ist, können Sie die Komponenten auf die Platine übertragen und alles zusammenlöten, wie es Ihnen passt. Ich habe zusätzlich zur Fritzing-Datei (hier erhältlich) ein PCB-Diagramm beigefügt. Beachten Sie, dass ich alle Komponenten aus ästhetischen Gründen auf der Oberseite der Platine platziert habe, sie aber auch darunter montiert und dann in eine Art Gehäuse eingeschlossen werden können, um sie sauberer zu machen. Ich schneide und heiß geklebte Popsicle-Sticks, die mit Sharpie an den Seiten der Platine eingefärbt sind, um eine provisorische Box für das Gerät zu schaffen. Ein weiterer optionaler Schritt besteht darin, einen 9-Volt-Batterieclip an die VIN- und GND-Pins des Arduino anzuschließen, wodurch er batteriebetrieben wird.
Schritt 3: Fertig
So ist mein fertiger Generator geworden, wenn Sie mitgemacht und selbst einen gemacht haben, teilen Sie ihn unten!
Stellen Sie sicher, dass Sie mein Instructable für den STEM-Wettbewerb abstimmen, wenn Sie dies für richtig halten, und hinterlassen Sie einen Kommentar / alle Fragen, die Sie möglicherweise unten haben!
Empfohlen:
Einen Arduino-Gitarren-Tuner herstellen – wikiHow
So bauen Sie einen Arduino-Gitarren-Tuner: Dies sind die Anweisungen, um einen Gitarren-Tuner aus einem Arduino und mehreren anderen Komponenten zu machen. Mit Grundkenntnissen in Elektronik und Codierung können Sie dieses Gitarrenstimmgerät herstellen. Zuerst müssen Sie wissen, was die Materialien sind. Ma
ALARMA ARDUINO CON SENSOR DE MOVIMIENTO, SIRENA Y AVISO AL TLF. MÓVIL: 9 Schritte
ALARMA ARDUINO CON SENSOR DE MOVIMIENTO, SIRENA Y AVISO AL TLF. MÓVIL: Este proyecto consiste en a alarma básica que Detecta presencia, activa una sirena de 108dB y visa al usuario mediante un SMS (opcional). Permite también el control remoto básico por parte del usuario a través de SMS (encendido, apagado, reinicio
Heimwerken -- Einen Spinnenroboter herstellen, der mit einem Smartphone mit Arduino Uno gesteuert werden kann – wikiHow
Heimwerken || Wie man einen Spider-Roboter herstellt, der mit einem Smartphone mit Arduino Uno gesteuert werden kann: Während man einen Spider-Roboter baut, kann man so viele Dinge über Robotik lernen. Wie die Herstellung von Robotern ist sowohl unterhaltsam als auch herausfordernd. In diesem Video zeigen wir Ihnen, wie Sie einen Spider-Roboter bauen, den wir mit unserem Smartphone (Androi
Einfaches BLE mit sehr geringem Stromverbrauch in Arduino Teil 2 - Temperatur- / Feuchtigkeitsmonitor - Rev 3: 7 Schritte
Easy Very Low Power BLE in Arduino Teil 2 – Temperatur-/Feuchtigkeitsmonitor – Rev 3: Update: 23. November 2020 – Erster Austausch von 2 x AAA-Batterien seit 15. Januar 2019 dh 22 Monate für 2x AAA AlkalineUpdate: 7. April 2019 – Rev 3 of lp_BLE_TempHumidity, fügt Datum/Uhrzeit-Plots hinzu, verwendet pfodApp V3.0.362+ und automatische Drosselung, wenn
Arduino-Programmierung über das Handy -- Arduinodroid -- Arduino-Ide für Android -- Blinzeln: 4 Schritte
Arduino-Programmierung über das Handy || Arduinodroid || Arduino-Ide für Android || Blink: Bitte abonnieren Sie meinen Youtube-Kanal für weitere Videos…… Arduino ist ein Board, das direkt über USB programmiert werden kann. Es ist sehr einfach und günstig für College- und Schulprojekte oder sogar für Produktprototypen. Viele Produkte bauen zunächst darauf für i