فهرست مطالب:
تصویری: آردوینو ژنراتور TOTP: 3 مرحله
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:54
الهام بخش
با داشتن دوستی با علاقه به رمزنگاری و امنیت ، می خواستم هدیه ای مناسب برای تولد ایجاد کنم.
*این پروژه ای است که من به عنوان هدیه تولد تهیه کردم و در محدودیت های زمانی محدود ایجاد شد (ببخشید کار آشفته)
توجه: نسل 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 خود پیاده سازی کنند. این دستورالعمل برای مخاطبانی نوشته شده است که اصول تفسیر نمودارهای الکترونیکی و برنامه نویسی ابتدایی را درک کرده اند ، اما اگر قصد دارید این دستورالعمل را دقیقاً دنبال کنید ، اگر تجربه ای ندارید نگران نباشید و با خیال راحت سوالات خود را در قسمت زیر مطرح کنید. نظرات! علاوه بر این ، این پروژه می تواند برای سازندگان باتجربه تر نیز جذاب باشد زیرا محصول نهایی نه تنها قطعه خوبی است (به نظر من) ، بلکه پتانسیل زیادی برای توسعه و ویژگی های جدید بدون دردسر زیاد دارد.
تدارکات
مواد:
- 1x آردوینو نانو (آمازون)
- ماژول ساعت واقعی DS3231 AT24C32 (RTC) (آمازون)
- 1x SH5461AS مشترک کاتد 4 رقمی 7 بخش (آمازون)
- 1x دکمه فشاری (آمازون)
- 1x مقاومت 10k (آمازون)
- PCB اختیاری 1x 5x7cm PCB (آمازون)
- OPTIONAL سیم برای لحیم کاری به PCB
- اختیاری 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 را علاوه بر فایل Fritzing (که در اینجا موجود است) ضمیمه کرده ام. توجه داشته باشید که من تمام اجزا را در بالای تخته برای زیبایی قرار داده ام ، اما می توان آنها را زیر آن نصب کرد و سپس در قسمتی از محفظه قرار داد تا تمیزتر شود. چوب های بستنی رنگی را که با Sharpie رنگ آمیزی شده اند به طرفین PCB برش داده و چسباندم تا یک جعبه موقتی برای دستگاه ایجاد شود. یکی دیگر از مراحل اختیاری این است که یک گیره باتری 9 ولتی به پین های VIN و GND آردوینو متصل کرده و آن را با باتری کار کنید.
مرحله 3: تمام شد
اینگونه بود که ژنراتور تکمیل شده من معلوم شد ، اگر شما دنبال کرده اید و خودتان آن را ساخته اید ، آن را در زیر به اشتراک بگذارید!
در صورت صلاحدید به Instructable من برای مسابقه STEM رای دهید و نظرات خود را/در مورد هرگونه س questionsالی که در زیر دارید بنویسید!
توصیه شده:
نحوه استفاده از ژنراتور سیگنال فرکانس آردوینو AD9850: 7 مرحله
نحوه استفاده از ژنراتور سیگنال فرکانس Arduino DDS AD9850: در این آموزش نحوه ساخت ژنراتور سیگنال فرکانس با استفاده از ماژول AD9850 و آردوینو را یاد می گیریم. ویدیو را تماشا کنید! توجه داشته باشید: من فرکانس را تا +50 مگاهرتز دریافت کردم اما کیفیت سیگنال با فرکانس های بالاتر بدتر
4-20ma ژنراتور/تستر با استفاده از آردوینو: 8 مرحله
4-20ma Generator/Tester با استفاده از Arduino: ژنراتورهای 4-20mA در ebay در دسترس هستند ، اما من عاشق قطعات DIY و استفاده از قطعاتی هستم که در اطراف آنها وجود دارد. من می خواستم ورودی های آنالوگ PLC خود را برای بررسی خواندن scada و برای آزمایش خروجی ابزارهای 4-20mA. لوآ وجود دارد
ژنراتور ورق لیزری تعاملی با آردوینو: 11 مرحله (همراه با تصاویر)
ژنراتور ورق لیزری تعاملی با آردوینو: از لیزرها می توان برای ایجاد جلوه های بصری باورنکردنی استفاده کرد. در این پروژه ، من نوع جدیدی از نمایشگر لیزری را ایجاد کردم که تعاملی بوده و موسیقی پخش می کند. این دستگاه دو لیزر را می چرخاند تا دو صفحه نور مانند گرداب ایجاد کند. من سنسور فاصله را قرار دادم
ژنراتور شکل موج آردوینو: 5 مرحله (همراه با تصاویر)
Arduino Waveform Generator: فوریه 2021 به روز رسانی: نسخه جدید را با نرخ نمونه برداری 300 برابر ، بر اساس Raspberry Pi Pico بررسی کنید. در آزمایشگاه ، اغلب نیاز به یک سیگنال تکراری با فرکانس ، شکل و دامنه مشخص است. ممکن است آزمایش تقویت کننده ، بررسی مدار ،
ارزان ترین آردوینو -- کوچکترین آردوینو -- آردوینو پرو مینی -- برنامه نویسی -- آردوینو ننو: 6 مرحله (همراه با تصاویر)
ارزان ترین آردوینو || کوچکترین آردوینو || آردوینو پرو مینی || برنامه نویسی || آردوینو ننو: …………………………. لطفاً برای ویدیوهای بیشتر به کانال YouTube من مشترک شوید ……. .این پروژه در مورد نحوه ارتباط با کوچکترین و ارزانترین آردوینو است. کوچکترین و ارزان ترین آردوینو arduino pro mini است. شبیه آردوینو