Բովանդակություն:

Arduino TOTP գեներատոր ՝ 3 քայլ
Arduino TOTP գեներատոր ՝ 3 քայլ

Video: Arduino TOTP գեներատոր ՝ 3 քայլ

Video: Arduino TOTP գեներատոր ՝ 3 քայլ
Video: TOTP Arduino authenticator with USB keyboard emulation 2024, Նոյեմբեր
Anonim
Arduino TOTP գեներատոր
Arduino TOTP գեներատոր
Arduino TOTP գեներատոր
Arduino TOTP գեներատոր
Arduino TOTP գեներատոր
Arduino TOTP գեներատոր

Ոգեշնչում

Ունենալով գաղտնագրությամբ և անվտանգությամբ հետաքրքրված ընկեր, ես ուզում էի ստեղծել ծննդյան կատարյալ նվեր:

*Սա նախագիծ է, որը ես պատրաստել եմ որպես ծննդյան նվեր և ստեղծվել է սեղմ ժամկետներում (ներեցեք խառնաշփոթ աշխատանքը)

EԱՆՈԹՈ:ԹՅՈՆ. Այս նախագծում օգտագործվող TOTP սերունդը ստեղծում և օգտագործում է 6 նիշանոց ծածկագրեր, սակայն իմ ներկա սարքավորման պատճառով ես նախընտրեցի կտրել հետևի երկնիշ թվերը և ցուցադրել և օգտագործել 4-ը ՝ հավանաբար (բայց ոչ մեծապես) նվազեցնելով անվտանգություն:

Ընդհանուր տեղեկություն

Այս նախագիծը յուրաքանչյուր 30 վայրկյանը մեկ ստեղծում է նոր ծածկագիր ՝ օգտագործելով նախապես փոխանցված ստեղնը և ընթացիկ ժամանակը (որը պահվում է իրական ժամանակի ժամացույցի մոդուլի օգտագործման հետքերով) և ցուցադրում այն էկրանին, երբ կոճակը սեղմվում է: Օգտագործման ամենատարածված դեպքը կլինի երկու գործոնով ստուգումը ՝ հիմնված Timeամանակի վրա հիմնված Մեկանգամյա գաղտնաբառի (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 թուղթ -

Փորձագիտության մակարդակ

Այս Instructable- ը այն էնտուզիաստների համար է, ովքեր շահագրգռված են անվտանգությամբ և գուցե ցանկանան ներդնել գեղեցիկ սարքավորման բաղադրիչ իրենց TOTP սերնդին: Այս հրահանգը գրված է այն հանդիսատեսի համար, ով արդեն հասկանում է էլեկտրոնիկայի գծապատկերների և տարրական ծրագրավորման մեկնաբանման հիմունքները, բայց եթե մտադիր եք պարզապես հետևել այս հրահանգին, մի անհանգստացեք, եթե փորձ չունեք, և ազատ զգացեք հարցեր տալ ներքևում: մեկնաբանություններ! Ավելին, նախագիծը կարող է հետաքրքիր լինել նաև ավելի փորձառու ստեղծողների համար, քանի որ վերջնական արտադրանքը ոչ միայն հաճելի կտոր է (իմ կարծիքով), այլև ունի այնքան մեծ ընդլայնման և նոր հնարավորությունների հնարավորություն, առանց մեծ դժվարությունների:

Պարագաներ

Նյութեր:

  1. 1x Arduino Nano (Amazon)
  2. 1x DS3231 AT24C32 Իրական ժամանակի ժամացույց (RTC) մոդուլ (Amazon)
  3. 1x SH5461AS Ընդհանուր կաթոդ 4 նիշ 7-հատված (Amazon)
  4. 1x կոճակ (Amazon)
  5. 1x 10k դիմադրություն (Amazon)
  6. ԸՆՏՐՈԹՅՈՆ 1x 5x7 սմ PCB (Amazon)
  7. ԸՆՏՐՈԹՅՈireՆ մետաղալար `PCB- ին զոդման համար
  8. ԸՆՏՐՈԹՅՈ 1Ն 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 code» - ը, ապա պետք է տեսնեք հավելվածում ցուցադրված համարը: Եթե ամեն ինչ ճիշտ է աշխատում, սեղմելով կոճակը, ցուցադրվող 4 թվանշանները պետք է համապատասխանեն սմարթֆոնների հավելվածում ցուցադրվող ընթացիկ կոդի առաջին 4 -ին: Եթե դա այդպես չէ, համոզվեք, որ Arduino ծածկագիրը վերբեռնելու համար օգտագործվող համակարգիչը սահմանվել է UTC ժամանակի վրա և նորից փորձել:

Քայլ 2: Տեղափոխում PCB- ին

Տեղափոխում PCB- ին
Տեղափոխում PCB- ին
Տեղափոխում PCB- ին
Տեղափոխում PCB- ին

Համոզվելուց հետո, որ ամեն ինչ կարգին է, կարող եք բաղադրիչները փոխանցել PCB- ին և ամեն ինչ միասին կպցնել, ինչպես որ ձեզ հարմար է թվում: Բացի Fritzing ֆայլից, կցել եմ PCB դիագրամ (հասանելի է այստեղ): Նկատի ունեցեք, որ ես բոլոր բաղադրամասերը դրել եմ տախտակի վերևում ՝ գեղագիտության համար, բայց դրանք կարող են տեղադրվել նաև ներքևում, այնուհետև փակվել ինչ -որ պատյանում ՝ այն ավելի մաքուր դարձնելու համար: Ես կտրում և տաք սոսնձում էի Sharpie- ով ներկված փոշու ձողերը դեպի PCB- ի կողմերը ՝ սարքի համար ժամանակավոր տուփ ստեղծելու համար: Մեկ այլ կամընտիր քայլ է `9 վոլտանոց մարտկոցի ամրակ ամրացնելը Arduino- ի VIN և GND կապումներին` մարտկոցով աշխատող:

Քայլ 3: Ավարտվեց:

Ավարտվեց!
Ավարտվեց!
Ավարտվեց!
Ավարտվեց!
Ավարտվեց!
Ավարտվեց!

Այսպես ստացվեց իմ ավարտված գեներատորը, եթե դուք հետևում եք ինքներդ և պատրաստում եք մեկին, կիսվեք ստորև:

Համոզվեք, որ քվեարկեք իմ Instructable- ին STEM մրցույթի համար, եթե նպատակահարմար եք գտնում, և թողեք մեկնաբանություն/ցանկացած հարց, որը կարող է ունենալ ներքևում:

Խորհուրդ ենք տալիս: