Orodha ya maudhui:

Jenereta ya Arduino TOTP: Hatua 3
Jenereta ya Arduino TOTP: Hatua 3

Video: Jenereta ya Arduino TOTP: Hatua 3

Video: Jenereta ya Arduino TOTP: Hatua 3
Video: Драм-машина Arduino и аналоговая драм-схема DR-110 2024, Novemba
Anonim
Jenereta ya Arduino TOTP
Jenereta ya Arduino TOTP
Jenereta ya Arduino TOTP
Jenereta ya Arduino TOTP
Jenereta ya Arduino TOTP
Jenereta ya Arduino TOTP

Uvuvio

Kuwa na rafiki aliye na hamu ya kuficha na usalama, nilitaka kuunda zawadi bora ya siku ya kuzaliwa.

* Huu ni mradi nilioufanya kama zawadi ya siku ya kuzaliwa na uliundwa ndani ya vizuizi vya wakati mgumu (msamehe kazi ya fujo)

KUMBUKA: Kizazi cha TOTP ambacho kinatumika katika mradi huu kinazalisha na kutumia nambari 6 za nambari, lakini kwa sababu ya vifaa vyangu vya sasa, nilichagua kukata nambari 2 zinazofuatia na kuonyesha na kutumia 4, kwa ubishi (lakini sio sana) kupunguza usalama.

Habari za jumla

Mradi huu hutengeneza nambari mpya kila sekunde 30 kwa kutumia kitufe kilichotanguliwa na wakati wa sasa (ambao huhifadhiwa kwa kutumia moduli ya saa ya wakati halisi) na kuionyesha kwenye onyesho wakati kitufe kinabanwa. Kesi ya kawaida ya utumiaji itakuwa uthibitishaji wa vitu viwili kulingana na Nywila ya Wakati Moja (TimeP) na HMAC yenye msingi wa HMAC kwa uthibitishaji.

TOTP ni algorithm inayohesabu nenosiri la wakati mmoja kutoka kwa ufunguo wa siri ulioshirikiwa na wakati wa sasa. HTOP ni algorithm ambayo hutumia algorithm ya HMAC kutengeneza nenosiri la wakati mmoja.

Kampuni kama Google, Microsoft, na Steam tayari hutumia teknolojia ya TOTP kwa uthibitishaji wa sababu zao mbili

Viungo vya kuvutia

Nakala inayoelezea jinsi Google hutumia teknolojia hii kudhibitisha watumiaji -

Utekelezaji wa JavaScript wa HOTP na TOTP ambayo inaweza kutumika wakati wa kuunda programu inayotumia mradi huu -

Maktaba ya Crytographic ya Arduino iliyotumiwa katika mradi huu -

Karatasi ya TOTP -

Kiwango cha Utaalam

Hii inaweza kufundishwa kwa wapenda nia ambao wanapenda usalama na wanaweza kutaka kutekeleza sehemu nzuri ya vifaa kwa kizazi cha TOTP yao. Hii inaweza kuandikwa kwa hadhira ambayo tayari inaelewa misingi ya kutafsiri michoro za elektroniki na programu ya kawaida, lakini ikiwa unapanga kufuata tu hii inayoweza kufundishwa haswa, usijali ikiwa huna uzoefu, na jisikie huru kuuliza maswali chini katika maoni! Kwa kuongezea, mradi huo unaweza kuwa wa kufurahisha kwa watengenezaji wenye uzoefu zaidi kwani bidhaa ya mwisho sio tu kipande kizuri cha kuwa karibu (kwa maoni yangu), lakini ina uwezo mkubwa sana wa upanuzi na huduma mpya bila shida nyingi.

Vifaa

Vifaa:

  1. 1x Arduino Nano (Amazon)
  2. Moduli ya 1x DS3231 AT24C32 Halisi ya Saa (RTC) (Amazon)
  3. 1x SH5461AS Sehemu ya Kawaida ya Cathode 4-sehemu ya 7 (Amazon)
  4. Kitufe cha 1x (Amazon)
  5. Mpinzani wa 1x 10k (Amazon)
  6. Hiari 1x 5x7cm PCB (Amazon)
  7. Hiari waya kwa soldering kwa PCB
  8. BODI ya mkate ya hiari ya upimaji (Amazon)

Hatua ya 1: Mkutano na Upimaji

Mkutano na Upimaji
Mkutano na Upimaji
Mkutano na Upimaji
Mkutano na Upimaji
Mkutano na Upimaji
Mkutano na Upimaji

Unganisha vifaa vyote kwenye ubao wa mkate na uziweke kwa waya kulingana na mchoro wa wiring iliyoambatishwa (Faili ya Fritzing iko hapa).

Hakikisha una IDU ya Arduino iliyosanikishwa (inaweza kupatikana mkondoni ikiwa sio) na usakinishe maktaba zifuatazo:

github.com/lucadentella/TOTP-Arduino

github.com/adafruit/RTClib

github.com/maniacbug/Cryptosuite

Pakua mchoro ulioambatishwa (unaweza pia kupatikana hapa: https://gist.github.com/shiv213/569f01a54988cb0207966be9a65cc5ab), na uifungue kwa kutumia Arduino IDE. Fungua kiunga hiki (https://www.lucadentella.it/OTP/) na uingize jina lolote kwenye uwanja wa jina la akaunti, na kitufe cha siri cha kawaida (wahusika 10 kwa muda mrefu) katika uwanja ufuatao, uhakikishe kuokoa maadili hayo yote mawili. mahali salama pa kuhifadhi nakala. Nakili yaliyomo kwenye uwanja wa "Arduino HEX:", na urudi kwa mhariri wa Arduino, ukibadilisha safu kwenye laini ya 25 (hmacKey) na ile uliyonakili kutoka kwa wavuti.

Baada ya kuangalia mara mbili kila unganisho la waya, hakikisha moduli ya RTC ina kiini cha sarafu ndani yake, na unganisha Arduino kwenye kompyuta yako ndogo ukitumia kamba ya mini ya USB, na upakie mchoro ulioambatanishwa.

Baada ya kupakia, kitufe kinapobanwa, nambari inapaswa kuonekana kwenye skrini. Ikiwa unapakua programu ya Kithibitishaji cha Google kwenye simu mahiri na kurudi kwenye wavuti inayotumiwa kutengeneza safu ya HEX, kuchanganua nambari ya QR au kuandika "nambari ya Kithibitishaji cha Google" kwenye programu, unapaswa kuona nambari iliyoonyeshwa kwenye programu. Ikiwa kila kitu kinafanya kazi kwa usahihi, unapobonyeza kitufe cha kushinikiza, nambari 4 zilizoonyeshwa zinapaswa kufanana na nambari 4 ya kwanza ya nambari ya sasa iliyoonyeshwa kwenye programu ya smartphone. Ikiwa sivyo ilivyo, hakikisha kwamba kompyuta inayotumika kupakia nambari ya Arduino imewekwa kwa wakati wa UTC na ujaribu tena.

Hatua ya 2: Kuhamisha kwa PCB

Kuhamisha kwa PCB
Kuhamisha kwa PCB
Kuhamisha kwa PCB
Kuhamisha kwa PCB

Baada ya kuhakikisha kuwa kila kitu kiko katika hali ya kufanya kazi, unaweza kuhamisha vifaa kwa PCB na solder kila kitu pamoja lakini unaonekana unafaa. Nimeambatanisha mchoro wa PCB pamoja na faili ya Fritzing (inapatikana hapa). Kumbuka kuwa niliweka vifaa vyote juu ya bodi kwa aesthetics, lakini pia inaweza kuwekwa chini na kisha kufungwa ndani ya aina fulani ya nyumba kuifanya iwe safi. Nilikata na kuchoma moto vijiti vya popsicle vyenye rangi na Sharpie kwa pande za PCB ili kuunda sanduku la kitengo cha kitengo. Hatua nyingine ya hiari ni kuambatanisha klipu ya betri ya voliti 9 kwa vifungo vya VIN na GND vya Arduino, na kuifanya iendeshwe na betri.

Hatua ya 3: Imemalizika

Imemalizika!
Imemalizika!
Imemalizika!
Imemalizika!
Imemalizika!
Imemalizika!

Hivi ndivyo jenereta yangu iliyokamilika ilivyotokea, ikiwa ulifuata na kujitengenezea mwenyewe, shiriki hapa chini!

Hakikisha kupiga kura yangu inayoweza kufundishwa kwa Shindano la STEM ikiwa utaona inafaa, na uacha maoni / maswali yoyote ambayo unaweza kuwa nayo chini!

Ilipendekeza: