Агуулгын хүснэгт:
Видео: Arduino TOTP үүсгэгч: 3 алхам
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:02
Урам зориг
Криптограф, аюулгүй байдлыг сонирхож буй найзтай болохоор төрсөн өдрийн төгс бэлгийг бүтээхийг хүссэн юм.
*Энэ бол миний төрсөн өдрийн бэлэг болгон хийсэн төсөл бөгөөд цаг хугацааны хязгаарлагдмал хугацаанд бүтээгдсэн (эмх замбараагүй хийсэн ажлыг уучлаарай)
ТАЙЛБАР: Энэхүү төсөлд ашиглагддаг 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
Энэхүү төслийг ашиглан програм хангамж үүсгэхэд ашиглаж болох HOTP болон TOTP -ийн JavaScript -ийн хэрэгжилт -
Энэхүү төсөлд ашигласан Arduino -ийн криптографийн номын сан -
TOTP баримт бичиг -
Туршлагын түвшин
Энэхүү зааварчилгаа нь аюулгүй байдлыг сонирхож буй хүмүүст зориулагдсан бөгөөд TOTP -ийг бий болгохын тулд тоног төхөөрөмжийн сайн бүрэлдэхүүн хэсгийг ашиглахыг хүсч магадгүй юм. Энэхүү зааварчилгаа нь электроникийн диаграмм, энгийн програмчлалын тайлбарыг ойлгох үндсийг аль хэдийн ойлгосон хүмүүст зориулагдсан болно, гэхдээ хэрэв та энэ зааврыг яг таг дагаж мөрдөх гэж байгаа бол туршлагагүй бол санаа зовох хэрэггүй бөгөөд асуултаа асууж болно. сэтгэгдэл! Цаашилбал, төсөл нь илүү туршлагатай үйлдвэрлэгчдийн хувьд сонирхолтой байж болох юм. Учир нь эцсийн бүтээгдэхүүн нь зөвхөн өөрийнхөөрөө байх сайхан хэсэг биш, харин тэлэх боломж, шинэ бэрхшээлгүйгээр маш их бэрхшээл учруулдаг.
Хангамж
Материал:
- 1x Arduino Nano (Амазон)
- 1x DS3231 AT24C32 бодит цагийн цаг (RTC) модуль (Амазон)
- 1x SH5461AS нийтлэг катод 4 оронтой 7 сегмент (Амазон)
- 1х товчлуур (Амазон)
- 1х 10к эсэргүүцэл (Амазон)
- СОНГОЛТЫН 1х 5х7см хэмжээтэй ПХБ (Амазон)
- СОНГУУЛИЙН ПХБ -д гагнах утас
- СОНГОЛТТОЙ 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 массив:" талбарын агуулгыг хуулж, Arduino редактор руу буцаж ороод 25 -р шугамын массивыг (hmacKey) сайтаас хуулж авснаар солино уу.
Утасны холболт бүрийг дахин шалгасны дараа RTC модульд зоосны үүр байгаа эсэхийг шалгаад Arduino-ийг USB мини кабель ашиглан зөөврийн компьютерт холбож, хавсаргасан ноорогоо байршуулна уу.
Байршуулсны дараа товчлуурыг дарахад дэлгэц дээр дугаар гарч ирэх ёстой. Хэрэв та Google Authenticator програмыг ухаалаг гар утсан дээрээ татаж аваад HEX массив үүсгэхэд ашигладаг сайт руу буцаж очвол QR кодыг сканнердах эсвэл "Google Authenticator код" -ыг аппликешнд оруулбал апп дээр харуулсан дугаар гарч ирнэ. Хэрэв бүх зүйл зөв ажиллаж байвал товчлуурыг дарахад 4 оронтой тоо нь ухаалаг гар утасны програм дээр үзүүлсэн кодын эхний 4 -тэй тохирч байх ёстой. Хэрэв тийм биш бол Arduino кодыг байршуулахад ашиглаж буй компьютерийг UTC цагт тохируулсан эсэхийг шалгаад дахин оролдоно уу.
Алхам 2: ПХБ руу шилжүүлэх
Бүх зүйл хэвийн байгаа эсэхийг шалгасны дараа та бүрэлдэхүүн хэсгүүдийг ПХБ -д шилжүүлж, тохирсон мэт бүх зүйлийг гагнах боломжтой. Би Fritzing файлаас гадна ПХБ -ийн диаграмыг хавсаргав (энд байгаа). Би бүх эд ангиудыг гоо зүйн үүднээс самбарын дээд талд байрлуулсан боловч доор нь суулгаж, илүү цэвэр болгохын тулд ямар нэгэн орон сууцанд хийж болно гэдгийг анхаарна уу. Би Sharpie -ээр будсан халуун модоор хийсэн модны савыг ПХБ -ийн хажуу талд хайчилж, нэгжийн түр зуурын хайрцгийг үүсгэв. Өөр нэг нэмэлт алхам бол 9 вольтын батерейны хавчаарыг Arduino-ийн VIN ба GND зүүгээр холбож, батерейгаар ажилладаг болно.
Алхам 3: Дууссан
Миний дууссан генератор ингэж гарч ирэв, хэрэв та өөрөө дагаж, өөрөө хийсэн бол доор хуваалцаарай!
Хэрэв танд хэрэгтэй гэж үзвэл STEM уралдааны зааварчилгаанд саналаа өгч, доорх сэтгэгдлээ үлдээгээрэй.
Зөвлөмж болгож буй:
"Мэргэжлийн ILC8038 функц үүсгэгч DIY иж бүрдэл" -тэй танилцах: 5 алхам
"Мэргэжлийн ILC8038 функциональ генераторын DIY иж бүрдэл" -тэй танилцах: Би хөөрхөн жижигхэн функциональ генераторын иж бүрдэлтэй таарч байхдаа электроникийн зарим шинэ төслүүдийг хийх гэж байсан. Үүнийг "Мэргэжлийн ILC8038 функциональ генераторын гурвалжин дөрвөлжин долгионы DIY иж бүрдэл" гэж нэрлэсэн бөгөөд олон үйлдвэрлэгчдээс авах боломжтой
DDS AD9910 Arduino Shield дээр RF дохио үүсгэгч 100 KHz-600 MHZ: 5 алхам
DDS AD9910 Arduino Shield дээр RF дохио үүсгэгч 100 KHz-600 MHZ: Arduino дээр дуу чимээ багатай, өндөр нарийвчлалтай, тогтвортой RF генератор (AM, FM модуляцтай) хэрхэн хийх вэ?
Arduino -той интерактив лазер хуудас үүсгэгч: 11 алхам (зурагтай)
Arduino -той интерактив лазер хуудас үүсгэгч: Лазерыг ашиглан гайхалтай харааны эффект үүсгэж болно. Энэ төсөлд би интерактив, хөгжим тоглодог лазер дэлгэцийн шинэ төрлийг бүтээсэн. Төхөөрөмж нь хоёр лазерыг эргүүлж, эргүүлэг шиг хоёр гэрлийн хуудас үүсгэдэг. Би зайны мэдрэгчийг оруулсан
MIDI/Arduino удирдлагатай 8 битийн дуу үүсгэгч (AY-3-8910): 5 алхам
MIDI/Arduino удирдлагатай 8 битийн дууны үүсгүүр (AY-3-8910): Retro дуу чимээтэй 8 битийн дуу үүсгэгч бүтээж, MIDI-ээр дамжуулан удирддаг бөгөөд энэхүү дизайныг Chiptune сонирхогчид Chiptune файлуудыг тоглуулахын тулд Arduino хэлхээг бүтээсэн хэсэгчлэн өдөөгдсөн болно. Анхны видео тоглоомын сул талыг нэгтгэх миний өөрийн санаа
Номын сангүй эсвэл цуваа функцгүй Arduino ая үүсгэгч (тасалдалтай): 10 алхам
Номын сангүй эсвэл цуваа функцгүй Arduino Tone Generator (тасалдалтай): Энэ бол миний зааж сургадаг зүйл биш, би төмөр хийцийг илүүд үздэг, гэхдээ би цахилгааны инженерийн оюутан тул микроконтроллерын хичээлд хамрагдах ёстой ( Embedded System Design), би өөрийнхөө нэг хуудсанд зааварчилгаа өгөх болно гэж бодлоо