Arduino TOTP գեներատոր ՝ 3 քայլ
Arduino TOTP գեներատոր ՝ 3 քայլ
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 մրցույթի համար, եթե նպատակահարմար եք գտնում, և թողեք մեկնաբանություն/ցանկացած հարց, որը կարող է ունենալ ներքևում:

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