Mundarija:
Video: Arduino TOTP generatori: 3 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:24
Ilhom
Kriptografiya va xavfsizlikka qiziqadigan do'stim bor edi, men tug'ilgan kunim uchun ajoyib sovg'a yaratmoqchi edim.
*Bu men tug'ilgan kunga sovg'a sifatida tayyorlagan va qisqa vaqt ichida yaratilgan loyiha (tartibsiz ishlarni kechiring)
QAYD: Ushbu loyihada ishlatiladigan TOTP avlodi 6 ta raqamli kodni ishlab chiqaradi va ishlatadi, lekin menda mavjud bo'lgan apparat tufayli men oxirgi 2 ta raqamni kesib, 4 raqamini ko'rsatishni va ishlatishni tanladim. xavfsizlik.
Umumiy ma'lumot
Bu loyiha har 30 sekundda yangi kod ishlab chiqariladi, bu oldindan o'rnatilgan kalit va joriy vaqt (real vaqtda soat modulidan foydalanish kuzatiladi) va tugma bosilganda uni displeyda aks ettiradi. Eng ko'p ishlatiladigan holat-autentifikatsiya qilish uchun vaqtga asoslangan bir martalik parol (TOTP) va HMAC-ga asoslangan bir martalik parol (HOTP) asosida ikki faktorli tekshirish.
TOTP-bu umumiy maxfiy kalitdan bir martalik parolni va joriy vaqtni hisoblaydigan algoritm. HTOP-bu bir martalik parolni yaratish uchun HMAC algoritmidan foydalanadigan algoritm.
Google, Microsoft va Steam kabi kompaniyalar allaqachon ikki faktorli autentifikatsiya uchun TOTP texnologiyasidan foydalanadilar
Qiziqarli havolalar
Google foydalanuvchilarni tasdiqlash uchun ushbu texnologiyadan qanday foydalanayotganini tushuntiruvchi maqola-https://medium.com/@tilaklodha/google-authenticator-and-how-it-works-2933a4ece8c2
JavaScript -ni HOTP va TOTP -dan foydalanish, bu loyihadan foydalangan holda dastur yaratishda ishlatilishi mumkin -
Arduino kriptografik kutubxonasi ushbu loyihada ishlatilgan -
TOTP qog'ozi -
Mutaxassislik darajasi
Bu yo'riqnoma xavfsizlikka qiziqqan va TOTP ishlab chiqarishga yaxshi apparat komponentini kiritmoqchi bo'lganlar uchun mo'ljallangan. Bu ko'rsatma elektronika diagrammasini va oddiy dasturlashni talqin qilish asoslarini allaqachon tushungan auditoriya uchun yozilgan, lekin agar siz ushbu ko'rsatmaga amal qilishni rejalashtirgan bo'lsangiz, tajribangiz bo'lmasa, xavotir olmang va o'zingizni qiziqtirgan savollarga javob bering. Izohlar! Bundan tashqari, loyiha tajribali ishlab chiqaruvchilar uchun ham qiziqarli bo'lishi mumkin, chunki yakuniy mahsulot nafaqat men uchun yoqimli bo'lak, balki kengayish va yangi funktsiyalar uchun ham katta qiyinchiliklarga ega.
Ta'minotlar
Materiallar:
- 1 marta Arduino Nano (Amazon)
- 1x DS3231 AT24C32 real vaqtda soat (RTC) moduli (Amazon)
- 1x SH5461AS umumiy katodli 4-raqamli 7-segmentli (Amazon)
- 1x tugmachasi (Amazon)
- 1x 10k rezistor (Amazon)
- Ixtiyoriy 1x 5x7 sm PCB (Amazon)
- Ixtiyoriy PCBga lehimlash uchun sim
- Ixtiyoriy 1x sinov paneli (Amazon)
1 -qadam: yig'ish va sinov
Non panelidagi barcha komponentlarni yig'ing va ularni biriktirilgan simlar sxemasiga muvofiq simlang (Fritzing fayli shu erda).
Arduino IDE o'rnatilganligiga ishonch hosil qiling (agar bo'lmasa, uni Internetda topish mumkin) va quyidagi kutubxonalarni o'rnating:
github.com/lucadentella/TOTP-Arduino
github.com/adafruit/RTClib
github.com/maniacbug/Cryptosuite
Qo'shilgan eskizni yuklab oling (bu erga ham kirish mumkin: https://gist.github.com/shiv213/569f01a54988cb0207966be9a65cc5ab) va Arduino IDE yordamida oching. Bu havolani oching (https://www.lucadentella.it/OTP/) va hisob nomi maydoniga istalgan ismni kiriting va keyingi maydonga maxsus maxfiy kalitni (10 belgidan iborat) kiriting, bu ikkala qiymatni ham saqlaganingizga ishonch hosil qiling. zaxira qilish uchun xavfsiz joyda. "Arduino HEX array:" maydonining tarkibini nusxa ko'chiring va Arduino tahrirlovchisiga o'ting, 25 -qatordagi qatorni (hmacKey) saytdan nusxa ko'chiring.
Har bir simli ulanishni ikki marta tekshirgandan so'ng, RTC modulida tanga katakchasi borligiga ishonch hosil qiling va Arduino-ni noutbukga USB mini-kabeli yordamida ulang va biriktirilgan eskizni yuklang.
Yuklagandan so'ng, tugma bosilganda, ekranda raqam paydo bo'lishi kerak. Agar siz Google Authenticator ilovasini smartfonga yuklab olsangiz va QEX kodini skanerlasangiz yoki ilovaga "Google Authenticator kodini" yozsangiz, HEX qatorini yaratish uchun ishlatilgan saytga qaytsangiz, ilovada ko'rsatilgan raqamni ko'rasiz. Agar hamma narsa to'g'ri ishlayotgan bo'lsa, tugmani bosganingizda, ko'rsatilgan 4 ta raqam smartfon ilovasida ko'rsatilgan joriy kodning birinchi 4 -raqamiga mos kelishi kerak. Agar bunday bo'lmasa, Arduino kodini yuklash uchun ishlatiladigan kompyuter UTC vaqtiga o'rnatilganligiga ishonch hosil qiling va qaytadan urinib ko'ring.
2 -qadam: PCBga o'tkazish
Hamma narsa tartibda ekanligiga ishonch hosil qilgandan so'ng, siz komponentlarni tenglikka o'tkazib, hamma narsani lehimlashingiz mumkin. Men Fritzing fayliga qo'shimcha ravishda tenglikni diagrammasini biriktirdim (bu erda mavjud). E'tibor bering, men estetika uchun barcha komponentlarni taxtaning yuqori qismiga joylashtirdim, lekin uni tagiga o'rnatib, keyin uni toza qilish uchun qandaydir korpusga yopishtirish mumkin. Men birlik uchun vaqtinchalik quti yaratish uchun tenglikni yon tomonlariga Sharpie bilan bo'yalgan popsicle tayoqchalarini kesib oldim. Boshqa ixtiyoriy qadam-9 voltli akkumulyator qisqichini Arduino-ning VIN va GND pinlariga ulash, bu esa batareyadan ishlaydi.
3 -qadam: Bajarildi
Mening tugallangan generatorim shunday bo'ldi, agar siz uni kuzatib, o'zingiz yaratgan bo'lsangiz, quyida baham ko'ring!
Agar siz o'zingizga ma'qul bo'lsa, STEM tanlovi uchun ko'rsatmaga ovoz berishingizga ishonch hosil qiling va o'zingizni qiziqtirgan savollaringizni quyida qoldiring!
Tavsiya:
DDS AD9910 Arduino qalqonida 100 kHz-600 MGts chastotali signal generatori: 5 qadam
DDS AD9910 Arduino Shield-da 100 kHz-600 MGts chastotali signal generatori: Arduino-da past shovqin, yuqori aniqlikdagi, barqaror RF generatori (AM, FM modulyatsiyasi bilan)
Arduino bilan interaktiv lazer varaq generatori: 11 qadam (rasmlar bilan)
Arduino bilan interaktiv lazer varaq generatori: lazerlardan ajoyib vizual effektlarni yaratish uchun foydalanish mumkin. Ushbu loyihada men interaktiv va musiqa ijro etadigan lazer displeyining yangi turini qurdim. Qurilma ikkita lazerni aylantirib, girdobga o'xshash ikkita yorug'lik varag'i hosil qiladi. Men masofa sensori bilan jihozlanganman
Arduino to'lqin shakli generatori: 5 qadam (rasmlar bilan)
Arduino to'lqin shakllari generatori: 2021 yil fevral. Yangilanish: Raspberry Pi Pico asosidagi 300x namuna olish tezligi bilan yangi versiyani ko'rib chiqing. Bu kuchaytirgichni sinab ko'rish, kontaktlarning zanglashini tekshirish bo'lishi mumkin
Ob -havoga asoslangan musiqa generatori (ESP8266 asosidagi Midi generatori): 4 qadam (rasmlar bilan)
Ob -havoga asoslangan musiqa generatori (ESP8266 asosidagi Midi generatori): Salom, bugun men qanday qilib o'zingizning ob -havoga asoslangan kichik musiqa generatorini yasashni tushuntirib beraman. Bu ESP8266 ga asoslangan, u xuddi Arduinoga o'xshaydi va u harorat, yomg'irga javob beradi. va yorug'lik intensivligi. Bu butun qo'shiq yoki akkord dasturini yaratishini kutmang
Arduino tufayli 3 fazali sinus to'lqin generatori: 5 qadam
Arduino Due-ga asoslangan 3 fazali sinus to'lqin generatori: bu ulushning maqsadi, Due-ning yuqori ishlashi + ma'lumotnomaning etishmasligi + yordamchi bo'lmagan ma'lumotlar varag'idan foydalanmoqchi bo'lgan kishiga yordam berish. Bu loyiha 3 fazali sinus to'lqin @ 256 gacha namunalar / tsikl past chastotada (< 1kHz) va 16 soniyada