विषयसूची:
वीडियो: Arduino TOTP जेनरेटर: ३ चरण
2024 लेखक: John Day | [email protected]. अंतिम बार संशोधित: 2024-01-30 09:20
प्रेरणा
क्रिप्टोग्राफ़ी और सुरक्षा में रुचि रखने वाला एक मित्र होने के कारण, मैं सही जन्मदिन का उपहार बनाना चाहता था।
*यह एक परियोजना है जिसे मैंने जन्मदिन के उपहार के रूप में बनाया था और इसे तंग समय की बाधाओं के भीतर बनाया गया था (गन्दा कारीगरी को क्षमा करें)
नोट: इस परियोजना में उपयोग की जाने वाली टीओटीपी पीढ़ी 6 अंकों के कोड उत्पन्न करती है और उनका उपयोग करती है, लेकिन मेरे वर्तमान ऑन-हैंड हार्डवेयर के कारण, मैंने पिछली 2 अंकों को काटने और 4 का प्रदर्शन और उपयोग करने का विकल्प चुना, तर्कसंगत रूप से (लेकिन बहुत अधिक नहीं) सुरक्षा।
सामान्य जानकारी
यह प्रोजेक्ट प्रत्येक 30 सेकंड में एक पूर्व-साझा कुंजी और वर्तमान समय (जिसे रीयल-टाइम घड़ी मॉड्यूल का उपयोग करने का ट्रैक रखा जाता है) का उपयोग करके एक नया कोड उत्पन्न करता है और बटन दबाए जाने पर इसे डिस्प्ले पर प्रदर्शित करता है। प्रमाणीकरण के लिए सबसे आम उपयोग का मामला टाइम-आधारित वन टाइम पासवर्ड (टीओटीपी) और एचएमएसी-आधारित वन टाइम पासवर्ड (एचओटीपी) पर आधारित दो-कारक सत्यापन होगा।
TOTP एक एल्गोरिथ्म है जो एक साझा गुप्त कुंजी और वर्तमान समय से एक बार के पासवर्ड की गणना करता है। HTOP एक एल्गोरिथम है जो वन-टाइम पासवर्ड जेनरेट करने के लिए HMAC एल्गोरिथम का उपयोग करता है।
Google, Microsoft और स्टीम जैसी कंपनियां अपने टू-फैक्टर ऑथेंटिकेशन के लिए पहले से ही TOTP तकनीक का उपयोग करती हैं
दिलचस्प कड़ियाँ
उपयोगकर्ताओं को प्रमाणित करने के लिए Google इस तकनीक का उपयोग कैसे करता है, यह बताने वाला लेख -
HOTP और TOTP का जावास्क्रिप्ट कार्यान्वयन जिसका उपयोग इस परियोजना का उपयोग करते हुए सॉफ़्टवेयर बनाते समय किया जा सकता है -
इस परियोजना में प्रयुक्त Arduino के लिए क्रिप्टोग्राफिक लाइब्रेरी -
TOTP पेपर -
विशेषज्ञता का स्तर
यह निर्देश उन उत्साही लोगों के लिए है जो सुरक्षा में रुचि रखते हैं और अपने TOTP की पीढ़ी के लिए एक अच्छा हार्डवेयर घटक लागू करना चाहते हैं। यह निर्देशयोग्य दर्शकों के लिए लिखा गया है जो पहले से ही इलेक्ट्रॉनिक्स आरेखों और अल्पविकसित प्रोग्रामिंग की व्याख्या करने की मूल बातें समझते हैं, लेकिन यदि आप इस निर्देश का बिल्कुल पालन करने की योजना बनाते हैं, तो चिंता न करें यदि आपके पास कोई अनुभव नहीं है, और नीचे प्रश्न पूछने के लिए स्वतंत्र महसूस करें। टिप्पणियाँ! इसके अलावा, परियोजना अधिक अनुभवी निर्माताओं के लिए भी दिलचस्प हो सकती है क्योंकि अंतिम उत्पाद न केवल एक अच्छा टुकड़ा है (मेरी राय में), लेकिन इसमें बिना किसी परेशानी के विस्तार और नई सुविधाओं के लिए बहुत अधिक संभावनाएं हैं।
आपूर्ति
सामग्री:
- 1x अरुडिनो नैनो (अमेज़ॅन)
- 1x DS3231 AT24C32 रीयल-टाइम क्लॉक (RTC) मॉड्यूल (अमेज़ॅन)
- 1x SH5461AS सामान्य कैथोड 4 अंक 7-खंड (अमेज़ॅन)
- 1x पुशबटन (अमेज़ॅन)
- 1x 10k रोकनेवाला (अमेज़ॅन)
- वैकल्पिक 1x 5x7cm पीसीबी (अमेज़ॅन)
- पीसीबी को टांका लगाने के लिए वैकल्पिक तार
- परीक्षण के लिए वैकल्पिक 1x ब्रेडबोर्ड (अमेज़ॅन)
चरण 1: विधानसभा और परीक्षण
ब्रेडबोर्ड पर सभी घटकों को इकट्ठा करें और उन्हें संलग्न वायरिंग आरेख (फ्रिट्ज़िंग फ़ाइल यहाँ है) के अनुसार तार दें।
सुनिश्चित करें कि आपके पास 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 सरणी:" फ़ील्ड की सामग्री की प्रतिलिपि बनाएँ, और Arduino संपादक पर वापस जाएँ, उस सरणी को लाइन 25 (hmacKey) पर बदलें, जिसे आपने साइट से कॉपी किया था।
प्रत्येक तार कनेक्शन को दोबारा जांचने के बाद, सुनिश्चित करें कि आरटीसी मॉड्यूल में एक सिक्का सेल है, और यूएसबी मिनी कॉर्ड का उपयोग करके Arduino को अपने लैपटॉप से कनेक्ट करें, और संलग्न स्केच अपलोड करें।
अपलोड करने के बाद, जब बटन दबाया जाता है, तो स्क्रीन पर एक नंबर दिखना चाहिए। यदि आप स्मार्टफोन पर Google प्रमाणक ऐप डाउनलोड करते हैं और एचईएक्स सरणी उत्पन्न करने के लिए उपयोग की जाने वाली साइट पर वापस जाते हैं, क्यूआर कोड स्कैन करते हैं या ऐप में "Google प्रमाणक कोड" टाइप करते हैं, तो आपको ऐप में दिखाया गया एक नंबर देखना चाहिए। यदि सब कुछ सही ढंग से काम कर रहा है, तो जब आप पुशबटन दबाते हैं, तो प्रदर्शित 4 अंक स्मार्टफोन ऐप पर दिखाए गए वर्तमान कोड के पहले 4 से मेल खाना चाहिए। यदि ऐसा नहीं है, तो सुनिश्चित करें कि Arduino कोड अपलोड करने के लिए उपयोग किया जा रहा कंप्यूटर UTC समय पर सेट है और पुनः प्रयास करें।
चरण 2: पीसीबी में स्थानांतरित करना
यह सुनिश्चित करने के बाद कि सब कुछ कार्य क्रम में है, आप घटकों को पीसीबी में स्थानांतरित कर सकते हैं और सब कुछ एक साथ मिलाप कर सकते हैं, हालांकि आप फिट लगते हैं। मैंने फ़्रिट्ज़िंग फ़ाइल (यहां उपलब्ध) के अलावा एक पीसीबी आरेख संलग्न किया है। ध्यान दें कि मैंने सौंदर्यशास्त्र के लिए सभी घटकों को बोर्ड के शीर्ष पर रखा है, लेकिन इसे नीचे भी रखा जा सकता है और फिर इसे क्लीनर बनाने के लिए किसी प्रकार के आवास में संलग्न किया जा सकता है। मैंने यूनिट के लिए एक मेकशिफ्ट बॉक्स बनाने के लिए पीसीबी के किनारों पर शार्पी के साथ रंगीन चिपके हुए पॉप्सिकल्स को काटा और गर्म किया। एक अन्य वैकल्पिक कदम Arduino के VIN और GND पिन में 9-वोल्ट की बैटरी क्लिप संलग्न करना है, जिससे यह बैटरी से संचालित होता है।
चरण 3: समाप्त
इस तरह से मेरा पूरा जनरेटर निकला, अगर आपने साथ दिया और खुद बनाया, तो इसे नीचे साझा करें!
यदि आप फिट दिखते हैं, तो एसटीईएम प्रतियोगिता के लिए मेरे निर्देशयोग्य को वोट देना सुनिश्चित करें, और एक टिप्पणी / कोई भी प्रश्न छोड़ दें जो आपके नीचे हो सकता है!
सिफारिश की:
Arduino Uno के साथ ध्वनिक उत्तोलन चरण-दर-चरण (8-चरण): 8 चरण
Arduino Uno के साथ ध्वनिक उत्तोलन चरण-दर-चरण (8-चरण): अल्ट्रासोनिक ध्वनि ट्रांसड्यूसर L298N डीसी महिला एडाप्टर बिजली की आपूर्ति एक पुरुष डीसी पिन के साथ Arduino UNOBreadboardयह कैसे काम करता है: सबसे पहले, आप Arduino Uno पर कोड अपलोड करते हैं (यह डिजिटल से लैस एक माइक्रोकंट्रोलर है और कोड (C++) कन्वर्ट करने के लिए एनालॉग पोर्ट
जेनरेटर: फिजेट स्पिनर जेनरेटर 3 इन 1: 3 स्टेप्स
जेनरेटर: फिजेट स्पिनर जेनरेटर 3 इन 1: फिजेट स्पिनर जेनरेटर 3 इन 1 - अब आप अपने फिजेट स्पिनर जनरेटर (तीन विकल्प) को कॉन्फ़िगर कर सकते हैं, माइक्रो जनरेटर 3 नियोडिमियम गोले और 3 नियोडिमियम डिस्क (एलईडी और छोटे कॉइल आयरन कम) का उपयोग कर रहा है। इंस्टाग्राम पर और देखें एक साधारण इलेक्ट्रिक
मौसम आधारित संगीत जेनरेटर (ESP8266 आधारित मिडी जेनरेटर): 4 चरण (चित्रों के साथ)
वेदर बेस्ड म्यूजिक जेनरेटर (ESP8266 बेस्ड मिडी जेनरेटर): हाय, आज मैं आपको बताऊंगा कि कैसे अपना खुद का छोटा वेदर बेस्ड म्यूजिक जेनरेटर बनाया जाता है। यह ESP8266 पर आधारित है, जो एक Arduino की तरह है, और यह तापमान, बारिश पर प्रतिक्रिया करता है और प्रकाश की तीव्रता। यह उम्मीद न करें कि यह संपूर्ण गीत या राग कार्यक्रम बना देगा
3 चरण साइन वेव जेनरेटर Arduino के आधार पर देय: 5 चरण
3 चरण साइन वेव जेनरेटर Arduino देय पर आधारित: इस शेयर का उद्देश्य किसी ऐसे व्यक्ति की मदद करना है जो ड्यू के अधिक प्रदर्शन + संदर्भ की कमी + गैर-सहायक डेटाशीट का उपयोग करने की कोशिश कर रहा है। यह प्रोजेक्ट 3 चरण साइन वेव @ 256 तक उत्पन्न करने में सक्षम है कम आवृत्ति (<1kHz) और 16 सेकंड पर नमूने/चक्र
रीड स्विच का उपयोग कर जेनरेटर - डीसी जेनरेटर: 3 चरण
जेनरेटर - डीसी जेनरेटर रीड स्विच का उपयोग कर रहा है: सरल डीसी जनरेटर एक प्रत्यक्ष वर्तमान (डीसी) जनरेटर एक विद्युत मशीन है जो यांत्रिक ऊर्जा को प्रत्यक्ष वर्तमान बिजली में परिवर्तित करता है। महत्वपूर्ण: एक प्रत्यक्ष वर्तमान (डीसी) जनरेटर को बिना किसी निर्माण के डीसी मोटर के रूप में उपयोग किया जा सकता है परिवर्तन