विषयसूची:

Arduino TOTP जेनरेटर: ३ चरण
Arduino TOTP जेनरेटर: ३ चरण

वीडियो: Arduino TOTP जेनरेटर: ३ चरण

वीडियो: Arduino TOTP जेनरेटर: ३ चरण
वीडियो: Amazing arduino project 2024, जुलाई
Anonim
Arduino TOTP जेनरेटर
Arduino TOTP जेनरेटर
Arduino TOTP जेनरेटर
Arduino TOTP जेनरेटर
Arduino TOTP जेनरेटर
Arduino TOTP जेनरेटर

प्रेरणा

क्रिप्टोग्राफ़ी और सुरक्षा में रुचि रखने वाला एक मित्र होने के कारण, मैं सही जन्मदिन का उपहार बनाना चाहता था।

*यह एक परियोजना है जिसे मैंने जन्मदिन के उपहार के रूप में बनाया था और इसे तंग समय की बाधाओं के भीतर बनाया गया था (गन्दा कारीगरी को क्षमा करें)

नोट: इस परियोजना में उपयोग की जाने वाली टीओटीपी पीढ़ी 6 अंकों के कोड उत्पन्न करती है और उनका उपयोग करती है, लेकिन मेरे वर्तमान ऑन-हैंड हार्डवेयर के कारण, मैंने पिछली 2 अंकों को काटने और 4 का प्रदर्शन और उपयोग करने का विकल्प चुना, तर्कसंगत रूप से (लेकिन बहुत अधिक नहीं) सुरक्षा।

सामान्य जानकारी

यह प्रोजेक्ट प्रत्येक 30 सेकंड में एक पूर्व-साझा कुंजी और वर्तमान समय (जिसे रीयल-टाइम घड़ी मॉड्यूल का उपयोग करने का ट्रैक रखा जाता है) का उपयोग करके एक नया कोड उत्पन्न करता है और बटन दबाए जाने पर इसे डिस्प्ले पर प्रदर्शित करता है। प्रमाणीकरण के लिए सबसे आम उपयोग का मामला टाइम-आधारित वन टाइम पासवर्ड (टीओटीपी) और एचएमएसी-आधारित वन टाइम पासवर्ड (एचओटीपी) पर आधारित दो-कारक सत्यापन होगा।

TOTP एक एल्गोरिथ्म है जो एक साझा गुप्त कुंजी और वर्तमान समय से एक बार के पासवर्ड की गणना करता है। HTOP एक एल्गोरिथम है जो वन-टाइम पासवर्ड जेनरेट करने के लिए HMAC एल्गोरिथम का उपयोग करता है।

Google, Microsoft और स्टीम जैसी कंपनियां अपने टू-फैक्टर ऑथेंटिकेशन के लिए पहले से ही TOTP तकनीक का उपयोग करती हैं

दिलचस्प कड़ियाँ

उपयोगकर्ताओं को प्रमाणित करने के लिए Google इस तकनीक का उपयोग कैसे करता है, यह बताने वाला लेख -

HOTP और TOTP का जावास्क्रिप्ट कार्यान्वयन जिसका उपयोग इस परियोजना का उपयोग करते हुए सॉफ़्टवेयर बनाते समय किया जा सकता है -

इस परियोजना में प्रयुक्त Arduino के लिए क्रिप्टोग्राफिक लाइब्रेरी -

TOTP पेपर -

विशेषज्ञता का स्तर

यह निर्देश उन उत्साही लोगों के लिए है जो सुरक्षा में रुचि रखते हैं और अपने TOTP की पीढ़ी के लिए एक अच्छा हार्डवेयर घटक लागू करना चाहते हैं। यह निर्देशयोग्य दर्शकों के लिए लिखा गया है जो पहले से ही इलेक्ट्रॉनिक्स आरेखों और अल्पविकसित प्रोग्रामिंग की व्याख्या करने की मूल बातें समझते हैं, लेकिन यदि आप इस निर्देश का बिल्कुल पालन करने की योजना बनाते हैं, तो चिंता न करें यदि आपके पास कोई अनुभव नहीं है, और नीचे प्रश्न पूछने के लिए स्वतंत्र महसूस करें। टिप्पणियाँ! इसके अलावा, परियोजना अधिक अनुभवी निर्माताओं के लिए भी दिलचस्प हो सकती है क्योंकि अंतिम उत्पाद न केवल एक अच्छा टुकड़ा है (मेरी राय में), लेकिन इसमें बिना किसी परेशानी के विस्तार और नई सुविधाओं के लिए बहुत अधिक संभावनाएं हैं।

आपूर्ति

सामग्री:

  1. 1x अरुडिनो नैनो (अमेज़ॅन)
  2. 1x DS3231 AT24C32 रीयल-टाइम क्लॉक (RTC) मॉड्यूल (अमेज़ॅन)
  3. 1x SH5461AS सामान्य कैथोड 4 अंक 7-खंड (अमेज़ॅन)
  4. 1x पुशबटन (अमेज़ॅन)
  5. 1x 10k रोकनेवाला (अमेज़ॅन)
  6. वैकल्पिक 1x 5x7cm पीसीबी (अमेज़ॅन)
  7. पीसीबी को टांका लगाने के लिए वैकल्पिक तार
  8. परीक्षण के लिए वैकल्पिक 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: समाप्त

ख़त्म होना!
ख़त्म होना!
ख़त्म होना!
ख़त्म होना!
ख़त्म होना!
ख़त्म होना!

इस तरह से मेरा पूरा जनरेटर निकला, अगर आपने साथ दिया और खुद बनाया, तो इसे नीचे साझा करें!

यदि आप फिट दिखते हैं, तो एसटीईएम प्रतियोगिता के लिए मेरे निर्देशयोग्य को वोट देना सुनिश्चित करें, और एक टिप्पणी / कोई भी प्रश्न छोड़ दें जो आपके नीचे हो सकता है!

सिफारिश की: