Съдържание:
Видео: Arduino TOTP генератор: 3 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:51
Вдъхновение
Имайки приятел с интерес към криптографията и сигурността, исках да създам перфектния подарък за рождения ден.
*Това е проект, който направих като подарък за рожден ден и е създаден в кратки срокове (извинете за разхвърляната изработка)
ЗАБЕЛЕЖКА: Поколението TOTP, което се използва в този проект, генерира и използва 6-цифрени кодове, но поради сегашния ми наличен хардуер, избрах да отрежа последните 2 цифри и да покажа и използвам 4, вероятно (но не значително), намалявайки сигурност.
Главна информация
Този проект генерира нов код на всеки 30 секунди с помощта на предварително споделен ключ и текущото време (което се следи за използване на модула за часовник в реално време) и го показва на дисплея при натискане на бутона. Най-често срещаният случай на използване би бил двуфакторна проверка, базирана на еднократна парола за време (TOTP) и еднократна парола, базирана на HMAC (HOTP) за удостоверяване.
TOTP е алгоритъм, който изчислява еднократна парола от споделен секретен ключ и текущото време. HTOP е алгоритъм, който използва алгоритъма HMAC за генериране на еднократна парола.
Компании като Google, Microsoft и Steam вече използват технологията TOTP за тяхното двуфакторно удостоверяване
Интересни връзки
Статия, обясняваща как Google използва тази технология за удостоверяване на потребителите-https://medium.com/@tilaklodha/google-authenticator-and-how-it-works-2933a4ece8c2
JavaScript внедряване на HOTP и TOTP, които могат да се използват при създаване на софтуер, използващ този проект -
Криптографска библиотека за Arduino, използвана в този проект -
TOTP Paper -
Ниво на експертиза
Тази инструкция е за ентусиасти, които се интересуват от сигурността и може да искат да внедрят хубав хардуерен компонент за генерирането на техния TOTP. Тази инструкция е написана за аудитория, която вече разбира основите на тълкуването на електронни диаграми и елементарното програмиране, но ако планирате просто да следвате точно тази инструкция, не се притеснявайте, ако нямате опит, и не се колебайте да задавате въпроси долу в коментари! Освен това, проектът може да бъде интересен и за по -опитни производители, тъй като крайният продукт не само е хубаво парче, което трябва да има наоколо (според мен), но има толкова голям потенциал за разширяване и нови функции без много проблеми.
Консумативи
Материали:
- 1x Arduino Nano (Amazon)
- 1x модул DS3231 AT24C32 Часовник в реално време (RTC) (Amazon)
- 1x SH5461AS Общ катод 4-цифрен 7-сегмент (Amazon)
- 1x бутон (Amazon)
- 1x 10k резистор (Amazon)
- ОПЦИЯ 1x 5x7cm PCB (Amazon)
- ОПЦИЯ Тел за запояване към печатни платки
- ОПЦИЯ 1x План за тестване (Amazon)
Стъпка 1: Монтаж и тестване
Сглобете всички компоненти на макета и ги свържете съгласно приложената схема на свързване (файлът Fritzing е тук).
Уверете се, че имате инсталирана Arduino IDE (може да бъде намерена онлайн, ако не го направите) и инсталирайте следните библиотеки:
github.com/lucadentella/TOTP-Arduino
github.com/adafruit/RTClib
github.com/maniacbug/Cryptosuite
Изтеглете приложената скица (можете да намерите и тук: https://gist.github.com/shiv213/569f01a54988cb0207966be9a65cc5ab) и я отворете с помощта на Arduino IDE. Отворете тази връзка (https://www.lucadentella.it/OTP/) и въведете всяко име в полето за име на акаунт и персонализиран секретен ключ (дълъг 10 знака) в следното поле, като се уверите, че сте запазили и двете стойности на сигурно място за архивиране. Копирайте съдържанието на полето „Arduino HEX array:“и преминете обратно към редактора на Arduino, като замените масива на ред 25 (hmacKey) с този, който сте копирали от сайта.
След като проверите двойно всяка кабелна връзка, уверете се, че RTC модулът има монета в нея и свържете Arduino към вашия лаптоп с помощта на USB мини кабел и качете приложената скица.
След качване, когато бутонът е натиснат, на екрана трябва да се покаже номер. Ако изтеглите приложението Google Authenticator на смартфон и се върнете към сайта, използван за генериране на HEX масива, сканиране на QR кода или въвеждане на „Google Authenticator code“в приложението, трябва да видите номер, показан в приложението. Ако всичко работи правилно, когато натиснете бутона, 4 -те показани цифри трябва да съвпадат с първите 4 от текущия код, показан в приложението за смартфон. Ако това не е така, уверете се, че компютърът, който се използва за качване на кода на Arduino, е настроен на UTC време и опитайте отново.
Стъпка 2: Прехвърляне към печатни платки
След като се уверите, че всичко е в работно състояние, можете да прехвърлите компонентите на печатната платка и да запоите всичко заедно, както изглеждате подходящи. В допълнение към файла Fritzing (приложен тук) съм приложил диаграма на печатна платка. Обърнете внимание, че поставих всички компоненти в горната част на дъската за естетика, но също така могат да бъдат монтирани отдолу и след това затворени в някакъв вид корпус, за да стане по -чист. Нарязах и горещо залепени пръчици от плодове, оцветени с Sharpie отстрани на печатната платка, за да създам импровизирана кутия за устройството. Друга незадължителна стъпка е да прикрепите 9-волтова скоба за батерията към VIN и GND щифтовете на Arduino, което я прави батерийна.
Стъпка 3: Готово
Ето как се получи моят завършен генератор, ако сте го последвали и сами сте го направили, споделете го по -долу!
Не забравяйте да гласувате с инструкциите ми за конкурса STEM, ако сметнете за добре, и оставете коментар/всички въпроси, които може да имате по -долу!
Препоръчано:
Как да използвате Arduino DDS генератор на честотни сигнали AD9850: 7 стъпки
Как да използваме Arduino DDS генератор на честотни сигнали AD9850: В този урок ще се научим как да правим генератор на честотни сигнали, използвайки модул AD9850 и Arduino. Гледайте видеото! Забележка: Успях да получа честота до +50MHz, но качеството на сигнала става по -лошо с по -високите честоти
4-20ma генератор/тестер, използващ Arduino: 8 стъпки
4-20ma генератор/тестер, използващ Arduino: 4-20mA генератори са налични в ebay, но аз от една страна обичам частта „направи си сам“и използвам части, които имам около. Исках да тествам аналоговите входове на нашия PLC, за да проверя нашите показания на scada и за тестване на изхода на 4-20mA инструменти. Има лоа
Генератор на радиочестотни сигнали 100 KHz-600 MHZ на DDS AD9910 Arduino Shield: 5 стъпки
Генератор на радиочестотни сигнали 100 KHz-600 MHZ на DDS AD9910 Arduino Shield: Как да направите нискошумен, високо прецизен, стабилен RF генератор (с AM, FM модулация) на Arduino
Музикален генератор, базиран на времето (ESP8266 базиран midi генератор): 4 стъпки (със снимки)
Метеорологичен генератор, базиран на времето (ESP8266 базиран Midi генератор): Здравейте, днес ще ви обясня как да направите свой собствен малък музикален генератор, базиран на времето. Той е базиран на ESP8266, който е нещо като Arduino и реагира на температура, дъжд и интензивността на светлината. Не очаквайте това да прави цели песни или акорди
Генератор - DC генератор, използващ Reed Switch: 3 стъпки
Генератор - DC генератор, използващ Reed Switch: Прост DC генератор Генератор с постоянен ток (DC) е електрическа машина, която преобразува механичната енергия в електричество с постоянен ток. Важно: Генераторът с постоянен ток (DC) може да се използва като двигател с постоянен ток без никаква конструкция промени