فهرست مطالب:

آردوینو ژنراتور TOTP: 3 مرحله
آردوینو ژنراتور TOTP: 3 مرحله

تصویری: آردوینو ژنراتور TOTP: 3 مرحله

تصویری: آردوینو ژنراتور TOTP: 3 مرحله
تصویری: Arduino project 😎^ Arduino #arduino #2022 #2021 #2023 #dc #arduinoproject #diy #foryou 2024, نوامبر
Anonim
ژنراتور آردوینو TOTP
ژنراتور آردوینو TOTP
ژنراتور آردوینو TOTP
ژنراتور آردوینو TOTP
ژنراتور آردوینو TOTP
ژنراتور آردوینو TOTP

الهام بخش

با داشتن دوستی با علاقه به رمزنگاری و امنیت ، می خواستم هدیه ای مناسب برای تولد ایجاد کنم.

*این پروژه ای است که من به عنوان هدیه تولد تهیه کردم و در محدودیت های زمانی محدود ایجاد شد (ببخشید کار آشفته)

توجه: نسل TOTP که در این پروژه استفاده می شود ، کدهای 6 رقمی تولید و از آن استفاده می کند ، اما به دلیل سخت افزار فعلی که در دست دارم ، تصمیم گرفتم 2 رقم پشتی را قطع کرده و 4 را نمایش دهم و از آنها استفاده کنم ، بدون شک (اما نه بسیار). امنیت.

اطلاعات کلی

این پروژه هر 30 ثانیه یک کد جدید با استفاده از یک کلید از پیش تنظیم شده و زمان فعلی (که در استفاده از ماژول ساعت در زمان واقعی ثبت می شود) تولید می کند و هنگام فشار دادن دکمه آن را روی صفحه نمایش می دهد. متداول ترین مورد استفاده ، تأیید دو مرحله ای بر اساس گذرواژه یکبار مصرف مبتنی بر زمان (TOTP) و گذرواژه یکبار (HOTP) مبتنی بر HMAC برای احراز هویت است.

TOTP یک الگوریتم است که یک رمز عبور یک بار از یک کلید مخفی مشترک و زمان فعلی را محاسبه می کند. HTOP یک الگوریتم است که از الگوریتم HMAC برای ایجاد رمز عبور یکبار استفاده می کند.

شرکت هایی مانند گوگل ، مایکروسافت و استیم از فناوری TOTP برای احراز هویت دو عاملی خود استفاده می کنند

پیوندهای جالب

مقاله در مورد نحوه استفاده Google از این فناوری برای احراز هویت کاربران-https://medium.com/@tilaklodha/google-authenticator-and-how-it-works-2933a4ece8c2

پیاده سازی جاوا اسکریپت HOTP و TOTP که ممکن است هنگام ایجاد نرم افزار با استفاده از این پروژه استفاده شود -

کتابخانه Crytographic برای Arduino مورد استفاده در این پروژه -

مقاله TOTP -

سطح تخصص

این دستورالعمل برای علاقه مندان به امنیت است و ممکن است بخواهند یک جزء سخت افزاری خوب را برای تولید TOTP خود پیاده سازی کنند. این دستورالعمل برای مخاطبانی نوشته شده است که اصول تفسیر نمودارهای الکترونیکی و برنامه نویسی ابتدایی را درک کرده اند ، اما اگر قصد دارید این دستورالعمل را دقیقاً دنبال کنید ، اگر تجربه ای ندارید نگران نباشید و با خیال راحت سوالات خود را در قسمت زیر مطرح کنید. نظرات! علاوه بر این ، این پروژه می تواند برای سازندگان باتجربه تر نیز جذاب باشد زیرا محصول نهایی نه تنها قطعه خوبی است (به نظر من) ، بلکه پتانسیل زیادی برای توسعه و ویژگی های جدید بدون دردسر زیاد دارد.

تدارکات

مواد:

  1. 1x آردوینو نانو (آمازون)
  2. ماژول ساعت واقعی DS3231 AT24C32 (RTC) (آمازون)
  3. 1x SH5461AS مشترک کاتد 4 رقمی 7 بخش (آمازون)
  4. 1x دکمه فشاری (آمازون)
  5. 1x مقاومت 10k (آمازون)
  6. PCB اختیاری 1x 5x7cm PCB (آمازون)
  7. OPTIONAL سیم برای لحیم کاری به PCB
  8. اختیاری 1x Breadboard برای آزمایش (آمازون)

مرحله 1: مونتاژ و آزمایش

مونتاژ و آزمایش
مونتاژ و آزمایش
مونتاژ و آزمایش
مونتاژ و آزمایش
مونتاژ و آزمایش
مونتاژ و آزمایش

تمام اجزاء را روی تخته نان جمع کرده و مطابق نمودار سیم کشی ضمیمه شده آنها را سیم کشی کنید (فایل فریز کردن در اینجا است).

مطمئن شوید که Arduino IDE را نصب کرده اید (در غیر این صورت می توانید آن را آنلاین پیدا کنید) و کتابخانه های زیر را نصب کنید:

github.com/lucadentella/TOTP-Arduino

github.com/adafruit/RTClib

github.com/maniacbug/Cryptosuite

طرح پیوست شده را بارگیری کنید (همچنین می توانید از اینجا دریافت کنید: https://gist.github.com/shiv213/569f01a54988cb0207966be9a65cc5ab) ، و آن را با استفاده از IDE آردوینو باز کنید. این پیوند (https://www.lucadentella.it/OTP/) را باز کنید و هر نامی را در فیلد نام حساب وارد کنید ، و یک کلید مخفی سفارشی (به طول 10 کاراکتر) در قسمت زیر ، مطمئن شوید که هر دوی این مقادیر را ذخیره کرده اید. در مکانی امن برای پشتیبان گیری محتویات فیلد "Arduino HEX array:" را کپی کرده و به ویرایشگر Arduino برگردید و آرایه خط 25 (hmacKey) را با نسخه ای که از سایت کپی کرده اید جایگزین کنید.

پس از بررسی مجدد هر اتصال سیم ، مطمئن شوید که ماژول RTC دارای یک سلول سکه است و Arduino را با استفاده از یک مینی سیم USB به لپ تاپ خود متصل کرده و طرح ضمیمه شده را بارگذاری کنید.

پس از بارگذاری ، هنگامی که دکمه را فشار می دهید ، یک عدد باید روی صفحه نمایش داده شود. اگر برنامه Google Authenticator را در تلفن هوشمند بارگیری کرده و به سایتی که برای ایجاد آرایه HEX استفاده می شود ، اسکن کد QR یا تایپ "کد Google Authenticator" در برنامه استفاده می کنید ، بروید ، باید شماره ای را که در برنامه نشان داده می شود مشاهده کنید. اگر همه چیز درست کار می کند ، وقتی دکمه را فشار می دهید ، 4 رقم نمایش داده شده باید با 4 اول کد فعلی نشان داده شده در برنامه تلفن هوشمند مطابقت داشته باشد. اگر اینطور نیست ، مطمئن شوید رایانه ای که برای بارگذاری کد Arduino استفاده می شود روی زمان UTC تنظیم شده است و دوباره امتحان کنید.

مرحله 2: انتقال به PCB

انتقال به PCB
انتقال به PCB
انتقال به PCB
انتقال به PCB

پس از اطمینان از اینکه همه چیز در حالت کار است ، می توانید قطعات را به PCB منتقل کرده و هر طور که مناسب به نظر می رسید همه را با هم لحیم کنید. من یک نمودار PCB را علاوه بر فایل Fritzing (که در اینجا موجود است) ضمیمه کرده ام. توجه داشته باشید که من تمام اجزا را در بالای تخته برای زیبایی قرار داده ام ، اما می توان آنها را زیر آن نصب کرد و سپس در قسمتی از محفظه قرار داد تا تمیزتر شود. چوب های بستنی رنگی را که با Sharpie رنگ آمیزی شده اند به طرفین PCB برش داده و چسباندم تا یک جعبه موقتی برای دستگاه ایجاد شود. یکی دیگر از مراحل اختیاری این است که یک گیره باتری 9 ولتی به پین های VIN و GND آردوینو متصل کرده و آن را با باتری کار کنید.

مرحله 3: تمام شد

تمام شده!
تمام شده!
تمام شده!
تمام شده!
تمام شده!
تمام شده!

اینگونه بود که ژنراتور تکمیل شده من معلوم شد ، اگر شما دنبال کرده اید و خودتان آن را ساخته اید ، آن را در زیر به اشتراک بگذارید!

در صورت صلاحدید به Instructable من برای مسابقه STEM رای دهید و نظرات خود را/در مورد هرگونه س questionsالی که در زیر دارید بنویسید!

توصیه شده: