Spisu treści:
Wideo: Generator Arduino TOTP: 3 kroki
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:29
Inspiracja
Mając przyjaciela, który interesuje się kryptografią i bezpieczeństwem, chciałem stworzyć idealny prezent urodzinowy.
*To jest projekt, który wykonałem jako prezent urodzinowy i został stworzony w ograniczonym czasie (wybacz niechlujne wykonanie)
UWAGA: Generacja TOTP, która jest używana w tym projekcie, generuje i wykorzystuje 6-cyfrowe kody, ale ze względu na mój obecny sprzęt, zdecydowałem się wyciąć końcowe 2 cyfry i wyświetlić i wykorzystać 4, prawdopodobnie (ale nie znacznie) zmniejszając bezpieczeństwo.
Informacje ogólne
Ten projekt generuje nowy kod co 30 sekund za pomocą klucza wstępnego i aktualnego czasu (który jest śledzony przy użyciu modułu zegara czasu rzeczywistego) i wyświetla go na wyświetlaczu po naciśnięciu przycisku. Najczęstszym przypadkiem użycia byłaby weryfikacja dwuskładnikowa oparta na jednorazowym haśle czasowym (TOTP) i jednorazowym haśle opartym na HMAC (HOTP) do uwierzytelniania.
TOTP to algorytm, który oblicza jednorazowe hasło na podstawie wspólnego tajnego klucza i bieżącego czasu. HTOP to algorytm wykorzystujący algorytm HMAC do generowania hasła jednorazowego.
Firmy takie jak Google, Microsoft i Steam już używają technologii TOTP do uwierzytelniania dwuskładnikowego
Ciekawe linki
Artykuł wyjaśniający, w jaki sposób Google używa tej technologii do uwierzytelniania użytkowników -
Implementacja JavaScript HOTP i TOTP, którą można wykorzystać podczas tworzenia oprogramowania z wykorzystaniem tego projektu -
Biblioteka kryptograficzna dla Arduino wykorzystana w tym projekcie -
TOTP Paper -
Poziom wiedzy
Ten Instructable jest przeznaczony dla entuzjastów, którzy są zainteresowani bezpieczeństwem i mogą chcieć zaimplementować fajny komponent sprzętowy do generowania swojego TOTP. Ta instrukcja jest napisana dla odbiorców, którzy już rozumieją podstawy interpretacji schematów elektronicznych i podstawowego programowania, ale jeśli planujesz po prostu dokładnie postępować zgodnie z tą instrukcją, nie martw się, jeśli nie masz doświadczenia, i możesz zadawać pytania w uwagi! Co więcej, projekt może być interesujący również dla bardziej doświadczonych twórców, ponieważ produkt końcowy jest nie tylko fajnym elementem (moim zdaniem), ale ma tak duży potencjał do rozbudowy i nowych funkcji bez większych problemów.
Kieszonkowe dzieci
Materiały:
- 1x Arduino Nano (Amazonka)
- 1x DS3231 AT24C32 Moduł zegara czasu rzeczywistego (RTC) (Amazon)
- 1x SH5461AS Wspólna katoda 4-cyfrowa 7-segmentowa (Amazonka)
- 1x Przycisk (Amazonka)
- 1x Rezystor 10k (Amazonka)
- OPCJONALNIE 1x 5x7cm PCB (Amazon)
- OPCJONALNIE Drut do lutowania do PCB
- OPCJONALNIE 1x Deska do krojenia chleba do testowania (Amazon)
Krok 1: Montaż i testowanie
Zmontuj wszystkie elementy na płytce stykowej i podłącz je zgodnie z załączonym schematem połączeń (plik Fritzing znajduje się tutaj).
Upewnij się, że masz zainstalowane Arduino IDE (można je znaleźć w Internecie, jeśli nie) i zainstaluj następujące biblioteki:
github.com/lucadentella/TOTP-Arduino
github.com/adafruit/RTClib
github.com/maniacbug/Cryptosuite
Pobierz załączony szkic (dostępny również tutaj: https://gist.github.com/shiv213/569f01a54988cb0207966be9a65cc5ab) i otwórz go za pomocą Arduino IDE. Otwórz ten link (https://www.lucadentella.it/OTP/) i wprowadź dowolną nazwę w polu nazwy konta oraz niestandardowy tajny klucz (10 znaków) w następnym polu, pamiętając o zapisaniu obu tych wartości w bezpiecznym miejscu do tworzenia kopii zapasowych. Skopiuj zawartość pola „Arduino HEX array:” i przełącz się z powrotem do edytora Arduino, zastępując tablicę w wierszu 25 (hmacKey) tą skopiowaną ze strony.
Po dwukrotnym sprawdzeniu każdego połączenia przewodowego, upewnij się, że moduł RTC ma w sobie baterię monetową i podłącz Arduino do laptopa za pomocą minikabla USB i prześlij załączony szkic.
Po wgraniu, po naciśnięciu przycisku, na ekranie powinna pojawić się liczba. Jeśli pobierzesz aplikację Google Authenticator na smartfona i wrócisz do strony, na której wygenerowano tablicę HEX, skanując kod QR lub wpisując do aplikacji „kod Google Authenticator”, powinieneś zobaczyć numer widoczny w aplikacji. Jeśli wszystko działa poprawnie, po naciśnięciu przycisku wyświetlane 4 cyfry powinny pasować do pierwszych 4 bieżącego kodu wyświetlanego w aplikacji na smartfona. Jeśli tak nie jest, upewnij się, że komputer używany do przesyłania kodu Arduino jest ustawiony na czas UTC i spróbuj ponownie.
Krok 2: Przenoszenie na PCB
Po upewnieniu się, że wszystko jest w porządku, możesz przenieść komponenty na płytkę PCB i zlutować wszystko razem, jak Ci się wydaje. Do pliku Fritzing dołączyłem schemat PCB (dostępny tutaj). Zwróć uwagę, że dla estetyki umieściłem wszystkie elementy na górze płyty, ale można je również zamontować pod spodem, a następnie zamknąć w jakiejś obudowie, aby była czystsza. Wyciąłem i przykleiłem na gorąco patyczki do lodów pomalowanych Sharpie po bokach płytki drukowanej, aby stworzyć prowizoryczne pudełko na urządzenie. Kolejnym opcjonalnym krokiem jest podłączenie zacisku baterii 9 V do pinów VIN i GND Arduino, dzięki czemu jest on zasilany bateryjnie.
Krok 3: Zakończony
Tak wyglądał mój ukończony generator, jeśli śledziłeś go i sam go stworzyłeś, podziel się nim poniżej!
Jeśli uznasz to za stosowne, zagłosuj na mój Instructable w konkursie STEM i zostaw komentarz/wszelkie pytania, które możesz mieć poniżej!
Zalecana:
Esp8266 Zegar i generator impulsów: 3 kroki
Esp8266 Zegar i Generator Impulsów: Ta instrukcja dotyczy prostego sprzętu testowego; generator zegara i impulsów. Wykorzystuje interfejs sprzętowy i2S w esp8266 do generowania zegara testowego lub sekwencji impulsów. Ułatwia to składanie, ponieważ nie jest wymagany żaden specjalny sprzęt
Generator silnika elektrycznego DIY zasilany prądem 1,25 V i 0,054 Ma: 4 kroki
Generator silnika elektrycznego DIY zasilany 1,25 V i 0,054 Ma: Cel: stworzenie małego generatora prądu stałego zasilanego jednym mini panelem słonecznym vimun sc-3012-2a (do użytku wewnątrz i na zewnątrz) 29,44 mm × 11,6 mm × 1,1 mm, który może zrób poświatę led, która zapewnia tylko 1,25 VX 0,054 maZnajdź nas NA INSTAGRAMIE i zobacz prosty elektr
Generator: Fidget Spinner Generator 3 w 1: 3 kroki
Generator: Fidget Spinner Generator 3 w 1: Fidget Spinner Generator 3 w 1 - teraz możesz skonfigurować swój fidget spinner generator (trzy opcje) mikrogenerator używa 3 kul neodymowych i 3 dysków neodymowych (mniej żelazka led i małej cewki) Znajdź nas NA INSTAGRAMIE i zobacz prosty elektryczny
Generator muzyki oparty na pogodzie (generator Midi oparty na ESP8266): 4 kroki (ze zdjęciami)
Generator muzyki oparty na pogodzie (Generator Midi oparty na ESP8266): Cześć, dzisiaj wyjaśnię, jak zrobić własny mały generator muzyki oparty na pogodzie. Jest oparty na ESP8266, który jest trochę jak Arduino i reaguje na temperaturę, deszcz i intensywność światła.Nie oczekuj, że sprawi, że całe utwory lub akordy będą pro
Generator Arduino Yún Morse'a: 4 kroki (ze zdjęciami)
Arduino Yún Morse Generator: Czy byłeś kiedyś w barze, gdzie nie mogłeś porozmawiać z przyjacielem, ponieważ muzyka była zbyt głośna? teraz możesz poprosić go o piwo alfabetem Morse'a! Zacznijmy