Мазмуну:

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 генератору

Илхам

Криптографияга жана коопсуздукка кызыккан досум бар болгондуктан, мен туулган күнүмө эң сонун белек түзгүм келди.

*Бул менин туулган күнүмө белек кылган жана кыска убакыттын ичинде түзүлгөн долбоор (башаламан иштөө үчүн кечирим сурайм)

ЭСКЕРТҮҮ: Бул долбоордо колдонулган TOTP мууну 6 цифралуу коддорду жаратат жана колдонот, бирок менин учурдагы жабдыктарыма байланыштуу, мен акыркы 2 цифраны кесип, 4 дисплейди колдонууну чечтим, бирок (бирок анча деле эмес) коопсуздук.

Жалпы маалымат

Бул долбоор алдын ала бөлүшүлгөн ачкычты жана учурдагы убакытты (реалдуу убакыт саатынын модулун колдонууну көзөмөлдөп турат) колдонуп, 30 секунд сайын жаңы кодду чыгарат жана баскыч басылганда дисплейде көрсөтүлөт. Эң кеңири таралган учур-аныктыгын текшерүү үчүн Time-One One Password (TOTP) жана HMAC негизделген One Time Password (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 Common Cathode 4 орундуу 7-сегмент (Amazon)
  4. 1x баскычтар (Амазонка)
  5. 1x 10k каршылыгы (Amazon)
  6. ОПЦИОНАЛДУУ 1x 5x7см PCB (Amazon)
  7. ОПЦИОНАЛДЫК ПХБга ширетүү үчүн зым
  8. ОПЦИОНАЛДУУ 1x тестирлөө тактасы (Amazon)

1 -кадам: Монтаждоо жана тестирлөө

Монтаждоо жана тестирлөө
Монтаждоо жана тестирлөө
Монтаждоо жана тестирлөө
Монтаждоо жана тестирлөө
Монтаждоо жана тестирлөө
Монтаждоо жана тестирлөө

Нан тактасындагы бардык компоненттерди чогултуп, аларды тиркелген зымдардын схемасына ылайык зымдап бериңиз (Fritzing file бул жерде).

Сизде 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 массиви:" талаасынын мазмунун көчүрүп, 25 -саптагы (hmacKey) массивди сайттан көчүргөнүңүзгө алмаштырып, Arduino редакторуна кайтыңыз.

Ар бир зым туташуусун эки жолу текшергенден кийин, RTC модулунда тыйын уячасы бар экенин текшериңиз жана Arduino'ду ноутбукка USB мини шнуру аркылуу туташтырып, тиркелген эскизди жүктөңүз.

Жүктөп бергенден кийин, баскыч басылганда, экранда бир сан көрүнүшү керек. Эгер сиз Google Authenticator тиркемесин смартфонго жүктөп алып, HEX массивин түзүү үчүн колдонулган сайтка кайтып барсаңыз, QR кодун сканерлеп же "Google Authenticator кодун" колдонмого терсеңиз, колдонмодо көрсөтүлгөн номерди көрөсүз. Эгерде баары туура иштеп жатса, баскычты басканыңызда, көрсөтүлгөн 4 цифр смартфондун колдонмосунда көрсөтүлгөн учурдагы коддун биринчи 4үнө дал келиши керек. Эгер андай болбосо, Arduino кодун жүктөө үчүн колдонулган компьютер UTC убактысына коюлганын текшерип, кайра аракет кылыңыз.

2 -кадам: ПХБга өткөрүү

ПХБга өткөрүү
ПХБга өткөрүү
ПХБга өткөрүү
ПХБга өткөрүү

Баары иштөөдө экенине ынангандан кийин, сиз компоненттерди ПХБга өткөрүп, өзүңүзгө ылайыктуу көрүнсө да, баарын чогуу ширете аласыз. Мен Fritzing файлына кошумча ПХБ диаграммасын тиркеп койдум (бул жерде жеткиликтүү). Белгилей кетчү нерсе, мен бардык компоненттерди эстетика үчүн тактайдын үстүнө койгом, бирок аны астына орнотуп, андан кийин аны таза кылуу үчүн кандайдыр бир корпуска кошсо болот. Мен кесим жана бирдик үчүн убактылуу кутуча түзүү үчүн ПХБнын капталына Sharpie менен боёлгон попсикул таякчаларын кесип алдым. Дагы бир кошумча кадам-бул 9-вольттуу батареяны клипти Arduino'дун VIN жана GND казыктарына туташтырып, аны батарея менен иштөө.

3 -кадам: Бүттү

Бүттү!
Бүттү!
Бүттү!
Бүттү!
Бүттү!
Бүттү!

Менин бүткөн генераторум ушундай болуп чыкты, эгер сиз өзүңүз ээрчип, өзүңүз жасасаңыз, төмөндө бөлүшүңүз!

Эгерде сиз өзүңүзгө ылайыктуу деп эсептесеңиз, STEM Конкурсуна менин Нускоочулук номериме добуш бериңиз жана төмөндө комментарий калтырыңыз/сизди кызыктырган суроолор!

Сунушталууда: