תוכן עניינים:
וִידֵאוֹ: מחולל TOTP Arduino: 3 שלבים
2024 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2024-01-30 09:13
הַשׁרָאָה
לאחר שיש לי חבר בעל עניין בקריפטוגרפיה ואבטחה, רציתי ליצור את מתנת יום ההולדת המושלמת.
*זהו פרויקט שהכנתי כמתנת יום הולדת ונוצר תוך מגבלות זמן הדוקות (סליחה על הביצוע המבולגן)
הערה: דור ה- TOTP המשמש בפרויקט זה יוצר ומשתמש בקודים בני 6 ספרות, אך בשל החומרה הנוכחית שלי, בחרתי לחתוך את 2 הספרות הנגררות ולהציג ולנצל 4, ללא ספק (אך לא במידה רבה) להפחית את בִּטָחוֹן.
מידע כללי
פרויקט זה יוצר קוד חדש כל 30 שניות באמצעות מקש משותף מראש והזמן הנוכחי (שעוקב אחר השימוש במודול השעון בזמן אמת) ומציג אותו על הצג בעת לחיצה על הכפתור. מקרה השימוש הנפוץ ביותר יהיה אימות דו-גורמי המבוסס על סיסמה חד פעמית מבוססת זמן (TOTP) וסיסמה חד פעמית מבוססת HMAC (HOTP) לאימות.
TOTP הוא אלגוריתם שמחשב סיסמה חד פעמית ממפתח סודי משותף ומהזמן הנוכחי. HTOP הוא אלגוריתם המשתמש באלגוריתם HMAC ליצירת סיסמה חד פעמית.
חברות כמו גוגל, מיקרוסופט ו- Steam כבר משתמשות בטכנולוגיית TOTP לצורך אימות הדו-גורמים שלהן
קישורים מעניינים
מאמר המסביר כיצד Google משתמשת בטכנולוגיה זו כדי לאמת משתמשים-https://medium.com/@tilaklodha/google-authenticator-and-how-it-works-2933a4ece8c2
יישום JavaScript של HOTP ו- TOTP שעשויים לשמש בעת יצירת תוכנה תוך שימוש בפרויקט זה -
ספרייה קריתוגרפית עבור Arduino בשימוש בפרויקט זה -
נייר TOTP -
רמת מומחיות
מדריך זה מיועד לחובבי התעניינות באבטחה ואולי ירצו ליישם רכיב חומרה נחמד לדור ה- TOTP שלהם. מדריך זה נכתב עבור קהל שכבר מבין את היסודות של פרשנות דיאגרמות אלקטרוניקה ותכנות בסיסי, אך אם אתה מתכוון פשוט לעקוב אחר המדריך הזה בדיוק, אל תדאג אם אין לך ניסיון, ואל תהסס לשאול שאלות בהמשך. הערות! יתר על כן, הפרויקט יכול להיות מעניין גם ליצרנים מנוסים יותר מכיוון שהמוצר הסופי הוא לא רק יצירה נחמדה שיש לה (לדעתי), אלא יש לה כל כך הרבה פוטנציאל הרחבה ותכונות חדשות ללא הרבה טרחה.
אספקה
חומרים:
- 1x Arduino Nano (אמזון)
- 1x DS3231 AT24C32 מודול שעון בזמן אמת (RTC) (אמזון)
- 1x קתודה SH5461AS משותפת בת 7 ספרות בת 7 ספרות (אמזון)
- 1 כפתור לחיצה (אמזון)
- 1x 10k הנגד (אמזון)
- אופציונלי 1x5x7cm PCB (אמזון)
- חוט אופציונלי להלחמה ל- PCB
- אופציונלי 1x לוח מקשים לבדיקה (אמזון)
שלב 1: הרכבה ובדיקה
מרכיבים את כל הרכיבים בלוח הלחם וחוטים אותם לפי תרשים החיווט המצורף (קובץ Fritzing נמצא כאן).
ודא שיש לך את 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 תווים) בשדה הבא, וודא ששומר את שני הערכים הללו במקום בטוח לגיבוי. העתק את תוכן השדה "מערך HEX Arduino:" וחזור לעורך Arduino והחלף את המערך בשורה 25 (hmacKey) בזה שהעתקת מהאתר.
לאחר בדיקה כפולה של כל חיבור חוט, ודא שבמודול RTC יש תא מטבע, וחבר את הארדואינו למחשב הנייד שלך באמצעות כבל מיני USB והעלה את הסקיצה המצורפת.
לאחר ההעלאה, כאשר לוחצים על הכפתור, מספר יופיע על המסך. אם אתה מוריד את אפליקציית Google Authenticator בסמארטפון וחוזר לאתר המשמש ליצירת מערך HEX, סורק את קוד ה- QR או הקלדת האפליקציה "קוד המאמת של Google", אתה אמור לראות מספר המוצג באפליקציה. אם הכל פועל כראוי, כאשר אתה לוחץ על כפתור הלחיצה, ארבע הספרות המוצגות צריכות להתאים ל -4 הראשונות של הקוד הנוכחי המוצג באפליקציית הסמארטפון. אם זה לא המקרה, וודא שהמחשב המשמש להעלאת קוד ה- Arduino מוגדר לזמן UTC ונסה שוב.
שלב 2: העברה ל- PCB
לאחר שתוודא שהכל תקין, תוכל להעביר את הרכיבים למחשב הלוח וללחם הכל ביחד אך נראה לך כשיר. צירפתי תרשים PCB בנוסף לקובץ Fritzing (זמין כאן). שים לב שהנחתי את כל הרכיבים על החלק העליון של הלוח לאסתטיקה, אך ניתן גם להתקין אותו מתחת ואז לסגור אותו במגוון דירות כדי שיהיה נקי יותר. חתכתי מקלות ארטיק מודבקים שחמים עם Sharpie בצדי הלוח כדי ליצור קופסה מאולתרת ליחידה. שלב אופציונלי נוסף הוא חיבור קליפ סוללה 9 וולט לסיכות ה- VIN וה- GND של הארדואינו, מה שהופך אותו לפעול באמצעות סוללה.
שלב 3: סיים
כך יצא הגנרטור שהושלם שלי, אם עקבת אחריו ועשית אחד כזה בעצמך, שתף אותו למטה!
הקפד להצביע להנחיה שלי לתחרות STEM אם אתה מוצא לנכון, והשאיר הערה/כל שאלה שיש לך למטה!
מוּמלָץ:
אופן השימוש מחולל אותות תדר Arduino DDS AD9850: 7 שלבים
אופן השימוש במחולל אותות תדר Arduino DDS AD9850: במדריך זה נלמד כיצד להכין מחולל אותות תדר באמצעות מודול AD9850 ו- Arduino. צפה בסרטון! הערה: הצלחתי להשיג תדר של עד 50MHz אך איכות האות מגיעה גרוע יותר עם התדרים הגבוהים יותר
מחולל/בודק 4-20ma באמצעות Arduino: 8 שלבים
מחולל/בודק 4-20ma באמצעות Arduino: גנרטורים של 4-20mA זמינים ב- ebay, אבל אני מצד אחד אוהב את החלק העשיני של דברים ושימוש בחלקים שיש לי סביב. רציתי לבדוק את הכניסות האנלוגיות של ה- PLC שלנו כדי לאמת את קריאות ה- scada שלנו לבדיקת התפוקה של מכשירים 4-20mA. יש לאה
מחולל אותות RF 100 KHz-600 MHZ ב- DDS AD9910 Arduino Shield: 5 שלבים
מחולל אותות RF 100 KHz-600 MHZ ב- DDS AD9910 Arduino Shield: איך עושים רעש נמוך, דיוק גבוה, מחולל RF יציב (עם AM, אפנון FM) ב- Arduino
מחולל גיליונות לייזר אינטראקטיביים עם Arduino: 11 שלבים (עם תמונות)
מחולל גיליונות לייזר אינטראקטיביים עם Arduino: ניתן להשתמש בלייזר ליצירת אפקטים ויזואליים מדהימים. בפרויקט זה בניתי סוג חדש של תצוגת לייזר שהיא אינטראקטיבית ומנגנת מוזיקה. המכשיר מסובב שני לייזרים ליצירת שני יריעות אור דמויי מערבולת. כללתי חיישן מרחק
מחולל מוזיקה מבוסס מזג אוויר (מחולל מידי מבוסס ESP8266): 4 שלבים (עם תמונות)
מחולל מוזיקה מבוסס מזג אוויר (מחולל מידי מבוסס ESP8266): היי, היום אסביר כיצד להכין מחולל מוזיקה קטן מבוסס מזג אוויר. ועוצמת אור. אל תצפה שהוא ייצור שירים שלמים או יתפתח אקורד