Sisukord:

Arduino TOTP generaator: 3 sammu
Arduino TOTP generaator: 3 sammu

Video: Arduino TOTP generaator: 3 sammu

Video: Arduino TOTP generaator: 3 sammu
Video: Где хранить пароли? Аппаратный менеджер паролей Trezor 2024, November
Anonim
Arduino TOTP generaator
Arduino TOTP generaator
Arduino TOTP generaator
Arduino TOTP generaator
Arduino TOTP generaator
Arduino TOTP generaator

Inspiratsioon

Kuna mul oli sõber, kes on huvitatud krüptograafiast ja turvalisusest, tahtsin luua täiusliku sünnipäevakingi.

*See on projekt, mille tegin sünnipäevakingiks ja mis loodi lühikese ajapiiranguga (vabandust räpase töö eest)

MÄRKUS. Selles projektis kasutatav TOTP-põlvkond genereerib ja kasutab 6-kohalisi koode, kuid oma praeguse käepärase riistvara tõttu otsustasin kärpida 2-kohalisi numbreid ning kuvada ja kasutada 4, vaieldamatult (kuid mitte oluliselt) turvalisus.

Üldine informatsioon

See projekt genereerib iga 30 sekundi järel uue koodi, kasutades eeljagatud võtit ja praegust aega (mida jälgitakse reaalajas kella mooduli kasutamisel) ning kuvab selle nupule vajutamisel ekraanile. Kõige tavalisem kasutusviis on kahefaktoriline kinnitamine, mis põhineb ajapõhisel ühekordsel paroolil (TOTP) ja autentimiseks HMAC-põhisel ühekordsel paroolil (HOTP).

TOTP on algoritm, mis arvutab jagatud salajase võtme ja praeguse aja ühekordse parooli. HTOP on algoritm, mis kasutab ühekordse parooli genereerimiseks HMAC-algoritmi.

Sellised ettevõtted nagu Google, Microsoft ja Steam kasutavad juba kaheastmelise autentimise jaoks TOTP-tehnoloogiat

Huvitavad lingid

Artikkel, mis selgitab, kuidas Google kasutab seda tehnoloogiat kasutajate autentimiseks-https://medium.com/@tilaklodha/google-authenticator-and-how-it-works-2933a4ece8c2

HOTP ja TOTP JavaScripti rakendamine, mida võib kasutada seda projekti kasutava tarkvara loomisel -

Selles projektis kasutatav Arduino krütograafikakogu -

TOTP -paber -

Asjatundlikkuse tase

See juhend on mõeldud entusiastidele, kes on huvitatud turvalisusest ja võivad soovida oma TOTP -i genereerimiseks rakendada kena riistvarakomponendi. See juhend on kirjutatud publikule, kes juba mõistab elektroonika skeemide tõlgendamise ja algelise programmeerimise põhitõdesid, kuid kui kavatsete lihtsalt seda juhendit täpselt järgida, ärge muretsege, kui teil pole kogemusi, ja esitage julgelt küsimusi kommentaarid! Lisaks võib projekt olla huvitav ka kogenumatele tegijatele, kuna lõpptoode pole mitte ainult kena tükk (minu arvates), vaid sellel on nii palju laienemisvõimalusi ja uusi funktsioone ilma palju probleemideta.

Tarvikud

Materjalid:

  1. 1x Arduino Nano (Amazon)
  2. 1x DS3231 AT24C32 reaalajas kella (RTC) moodul (Amazon)
  3. 1x SH5461AS Common Cathode 4-kohaline 7-segmendiline (Amazon)
  4. 1x nupp (Amazon)
  5. 1x 10k takisti (Amazon)
  6. VALIKULINE 1x 5x7cm PCB (Amazon)
  7. VALIKUD Traat trükkplaadile jootmiseks
  8. VALIKULINE 1x leivaplaat testimiseks (Amazon)

Samm: kokkupanek ja testimine

Kokkupanek ja katsetamine
Kokkupanek ja katsetamine
Kokkupanek ja katsetamine
Kokkupanek ja katsetamine
Kokkupanek ja katsetamine
Kokkupanek ja katsetamine

Pange kõik leivaplaadi komponendid kokku ja ühendage need vastavalt lisatud ühendusskeemile (Fritzingi fail on siin).

Veenduge, et Arduino IDE oleks installitud (kui te seda ei leia, leiate selle Internetist) ja installige järgmised teegid:

github.com/lucadentella/TOTP-Arduino

github.com/adafruit/RTClib

github.com/maniacbug/Cryptosuite

Laadige alla lisatud visand (sellele pääseb juurde ka siit: https://gist.github.com/shiv213/569f01a54988cb0207966be9a65cc5ab) ja avage see Arduino IDE abil. Avage see link (https://www.lucadentella.it/OTP/) ja sisestage konto nime väljale mis tahes nimi ning järgmisesse väljale kohandatud salajane võti (10 tähemärki pikk), salvestades kindlasti mõlemad väärtused varundamiseks turvalises kohas. Kopeerige välja "Arduino HEX array:" sisu ja lülitage tagasi Arduino redaktorisse, asendades massiivi real 25 (hmacKey) saidilt kopeeritud massiiviga.

Pärast iga juhtmeühenduse kahekordset kontrollimist veenduge, et RTC-moodulis on mündirakk, ja ühendage Arduino sülearvutiga USB-minikaabli abil ning laadige üles lisatud visand.

Pärast üleslaadimist peaks nupule vajutamisel ekraanile ilmuma number. Kui laadite nutitelefonist alla rakenduse Google Authenticator ja lähete tagasi saidile, mida kasutati HEX -massiivi loomiseks, skannides QR -koodi või sisestades rakendusse „Google Authenticatori koodi”, peaksite nägema rakenduses näidatud numbrit. Kui kõik töötab õigesti, peaksid nupule vajutades kuvatud 4 numbrit vastama nutitelefonirakenduses kuvatava praeguse koodi esimesele neljale. Kui see nii ei ole, veenduge, et Arduino koodi üleslaadimiseks kasutatav arvuti on seatud UTC aja järgi ja proovige uuesti.

Samm: ülekandmine PCB -le

Ülekanne PCB -le
Ülekanne PCB -le
Ülekanne PCB -le
Ülekanne PCB -le

Pärast seda, kui olete veendunud, et kõik on töökorras, võite komponendid PCB -le üle kanda ja kõik kokku joota, kui teile tundub sobiv. Lisaks Fritzingi failile (saadaval siit) olen lisanud PCB diagrammi. Pange tähele, et ma paigutasin kõik komponendid esteetika huvides tahvli ülaosale, kuid neid saab ka alla paigaldada ja seejärel mingisse korpusesse suletud, et muuta see puhtamaks. Lõikasin ja kuumliimitud Sharpiega värvitud popsikepulgad PCB külgedele, et luua seadmele ajutine kast. Teine valikuline samm on 9-voldise akuklambri kinnitamine Arduino VIN- ja GND-tihvtidele, muutes selle patareitoitel.

3. samm: valmis

Valmis!
Valmis!
Valmis!
Valmis!
Valmis!
Valmis!

Nii osutus minu valminud generaatoriks, kui järgisite ja tegite ise, jagage seda allpool!

Hääletage kindlasti minu Instructable STEM -võistlusele, kui näete vajalikuks, ja jätke allpool kommentaar/küsimused!

Soovitan: