Site icon Taaza Time 18

दो-कारक प्रमाणीकरण (2FA) कैसे काम करता है?

iStock-1961788021.jpg


पीअपने खातों को सुरक्षित रखने के लिए Asswords अब पर्याप्त नहीं हैं। यदि कोई आपके पासवर्ड को चुराता है या अनुमान लगाता है, तो वे आपके ज्ञान के बिना आपके खाते में लॉग इन कर सकते हैं। इस जोखिम को कम करने के लिए, कई सेवाएं दो-कारक प्रमाणीकरण (2FA) का उपयोग करती हैं। जब आप लॉग इन करते हैं, तो यह एक दूसरी आवश्यकता जोड़ता है, आमतौर पर एक कोड जो हर 30 सेकंड में बदलता है। इन कोडों को उत्पन्न करने के सबसे लोकप्रिय तरीकों में से एक Google प्रमाणक जैसे ऐप्स के साथ है। यह कैसे काम करता है?

2FA क्या है?

2FA का विचार यह है कि आप अपनी पहचान को दो अलग -अलग तरीकों से साबित करते हैं। पहला कारक कुछ ऐसा है जिसे आप जानते हैं: आपका पासवर्ड। दूसरा कारक आपके पास कुछ है: आपके फोन पर एक प्रमाणक ऐप चल रहा है। यह हमलों को कठिन बनाता है क्योंकि एक हमलावर को आपके पासवर्ड और सफल होने के लिए आपके फ़ोन तक पहुंच दोनों की आवश्यकता होती है।

ओटीपी छोटे संख्यात्मक कोड हैं जो केवल एक बार काम करते हैं, और केवल थोड़े समय की खिड़की के भीतर। यहां तक ​​कि अगर कोई एक कोड को इंटरसेप्ट करता है, तो यह 30 सेकंड बाद बेकार हो जाता है।

TOTP वह प्रणाली है जो इन कोडों को उत्पन्न करती है; यह समय-आधारित ओटीपी के लिए छोटा है। TOTP को एक खुले मानक में परिभाषित किया गया है ताकि विभिन्न ऐप और सेवाएं एक ही विधि का उपयोग कर सकें और संगत रह सकें। Google प्रमाणक सबसे प्रसिद्ध कार्यान्वयन में से एक है।

TOTP कैसे काम करता है?

इससे पहले कि आप कोड, आपका प्रमाणक ऐप और सेवा, जीमेल या फेसबुक जैसे सेवा उत्पन्न कर सकें, गुप्त जानकारी के एक टुकड़े पर सहमत होने की आवश्यकता है। इसे गुप्त कुंजी कहा जाता है।

जब आप Google प्रमाणक सेट करते हैं, तो सेवा आपको यह रहस्य देती है। आमतौर पर, यह एक क्यूआर कोड के अंदर छिपा होता है जिसे आप स्कैन करते हैं। एक बार जब आपके फ़ोन ऐप में सीक्रेट होता है और सेवा ने अपने डेटाबेस में एक ही रहस्य संग्रहीत किया है, तो दोनों पक्ष तैयार हैं। वे अब इस कुंजी का उपयोग कर सकते हैं प्लस एक ही लघु कोड उत्पन्न करने के लिए वर्तमान समय।

TOTP का मुख्य विचार एक चलती इनपुट के रूप में समय का उपयोग करना है। समय को समान चरणों में विभाजित किया जाता है, आमतौर पर 30 सेकंड लंबा। प्रत्येक चरण में एक संख्या होती है, जिसे टाइम काउंटर कहा जाता है। उदाहरण के लिए, यदि वर्तमान समय 2:00:00 बजे बिल्कुल सही है और हम 30-सेकंड के अंतराल में गिनते हैं, तो काउंटर 50,00,000 की तरह बड़ी संख्या हो सकता है। दोपहर 2:00:30 बजे, काउंटर एक से बढ़ता है।

ऐप दो इनपुट लेता है – साझा गुप्त कुंजी और वर्तमान समय काउंटर।

इन के साथ, यह एक छोटा संख्यात्मक कोड उत्पन्न करने के लिए एक क्रिप्टोग्राफिक फ़ंक्शन चलाता है। क्योंकि सर्वर एक ही दो इनपुट के साथ एक ही फ़ंक्शन की गणना कर सकता है, यह जांच सकता है कि आपका कोड मान्य है।

हैश फ़ंक्शंस क्या हैं?

कोड हैश फ़ंक्शंस का उपयोग करके उत्पन्न होते हैं। एक हैश फ़ंक्शन किसी भी लंबाई का एक इनपुट लेता है-जैसे एक शब्द, एक वाक्य या एक लंबी संख्या-और एक निश्चित-लंबाई आउटपुट का उत्पादन करता है। उदाहरण के लिए, SHA-256 हैश फ़ंक्शन हमेशा 256-बिट (32-बाइट) आउटपुट का उत्पादन करता है।

हैश फ़ंक्शन एक-तरफ़ा हैं: आउटपुट को देखते हुए, मूल इनपुट का पता लगाना व्यावहारिक रूप से असंभव है। वे बहुत संवेदनशील भी हैं: यदि आप इनपुट में सिर्फ एक वर्ण को बदलते हैं, तो आउटपुट पूरी तरह से बदल जाता है।

ये गुण हैश कार्यों को सुरक्षा के लिए आदर्श बनाते हैं। लेकिन TOTP अकेले SHA-256 का उपयोग नहीं करता है। यह एचएमएसी नामक एक निर्माण के अंदर इसका उपयोग करता है।

HMAC का अर्थ ‘हैश-आधारित संदेश प्रमाणीकरण कोड’ है। यह हैश फ़ंक्शन का उपयोग करके एक संदेश के साथ एक गुप्त कुंजी को संयोजित करने का एक चतुर तरीका है। परिणाम डेटा का एक छोटा टुकड़ा है जो दोनों प्रामाणिकता को साबित करता है (“यह गुप्त कुंजी के साथ किसी से आया”) और अखंडता (“संदेश नहीं बदला गया था”)।

एचएमएसी फॉर्मूला जटिल दिखता है, लेकिन यह विचार सीधा है – यह सुनिश्चित करके कि इसकी सही लंबाई है; XOR फ़ंक्शन (बाद में उस पर अधिक) का उपयोग करके आंतरिक पैड नामक एक निरंतर के साथ कुंजी को मिलाएं; इसे संदेश के साथ मिलकर हैश; XOR फ़ंक्शन का उपयोग करके एक बाहरी पैड के साथ कुंजी को मिलाएं; और इसे चरण 2 से परिणाम के साथ मिलकर हैश।

अंतिम आउटपुट 256-बिट स्ट्रिंग है। यह Google प्रमाणक पर आपके द्वारा देखे जाने वाले छह अंकों की तुलना में अधिक लंबा है। यह वह जगह है जहां अगला कदम आता है।

अंतिम कोड कैसे बनाया जाता है?

एचएमएसी आउटपुट 256 बिट्स, या 64 हेक्साडेसिमल वर्ण है। इसे एक छोटे कोड में बदलने के लिए, TOTP एक प्रक्रिया का उपयोग करता है जिसे डायनेमिक ट्रंकेशन कहा जाता है। यह अपने पिछले कुछ बिट्स के आधार पर एचएमएसी आउटपुट के एक हिस्से का चयन करता है, फिर उन बिट्स को एक नंबर के रूप में व्याख्या करता है। अंत में, यह संख्या को 10,00,000 से विभाजित करके और शेष को ले जाता है।

परिणाम 000000 और 999999 के बीच छह अंकों की संख्या है। यह वह कोड है जिसे आप अपने ऐप पर देखते हैं।

क्योंकि समय काउंटर हर 30 सेकंड में बदलता है, कोड भी बदलता है। और क्योंकि आपका ऐप और सर्वर दोनों एक ही गुप्त और एक ही काउंटर का उपयोग करते हैं, वे दोनों एक ही छह अंकों की संख्या पर पहुंचते हैं।

XOR क्या है?

XOR कंप्यूटर विज्ञान में सबसे सरल अभी तक सबसे शक्तिशाली संचालन में से एक है। इसका नाम “अनन्य या” के लिए छोटा है। यह एक तार्किक ऑपरेशन है जो बिट्स पर काम करता है। नियम सरल हैं:

0 xor 0 = 0

1 xor 0 = 1

0 xor 1 = 1

1 xor 1 = 0

दूसरे शब्दों में, XOR 1 आउटपुट करता है यदि इनपुट अलग -अलग हैं और 0 यदि वे समान हैं। XOR उपयोगी है क्योंकि यह प्रतिवर्ती है: एक Xor A = 0। एक Xor B = C. को जानने के लिए C, आप कैसे पाते हैं?

आप c xor b करते हैं क्योंकि यह (Xor b) Xor B के समान है क्योंकि b Xor b = 0, आप A के साथ छोड़ दिए जाते हैं।

यह संपत्ति क्रिप्टोग्राफी में XOR फ़ंक्शन को बहुत आसान बनाती है।

HMAC में, XOR फ़ंक्शन का उपयोग गुप्त कुंजी को आंतरिक और बाहरी पैड के साथ मिलाने के लिए किया जाता है जैसे: HMAC_SHA256 (कुंजी, संदेश) = SHA256 (OUTER_PAD XOR (SHA256 (INNER_PAD XOR संदेश))))

यह सुनिश्चित करता है कि कुंजी सीधे उपयोग नहीं की जाती है, लेकिन एक परिवर्तित, अधिक सुरक्षित रूप में।

TOTP कितना सुरक्षित है?

TOTP की सुरक्षा कई परतों से आती है। गुप्त कुंजी केवल आपके डिवाइस और सर्वर के लिए जानी जाती है। HMAC-SHA-256 यह सुनिश्चित करता है कि कुंजी के बिना, कोई भी आउटपुट की भविष्यवाणी नहीं कर सकता है। इसके अलावा, समय निर्भरता का अर्थ है कि भले ही कोई कोड देखता है, यह केवल थोड़ी अवधि के लिए मान्य है। जबकि ट्रंकेशन आउटपुट को छोटा बनाता है, क्योंकि संभावित एचएमएसी आउटपुट का अंतर्निहित स्थान बहुत बड़ा है, यह अनुमान लगाना कि कोड व्यावहारिक रूप से असंभव है।

इस स्तरित दृष्टिकोण का मतलब है कि हमलावर आपके गुप्त कुंजी के बिना आपके कोड का अनुमान या गणना नहीं कर सकते हैं।

TOTP HMAC- आधारित OTP नामक एक अधिक सामान्य प्रणाली का एक विशेष मामला है। यह एक ऐसे काउंटर का उपयोग करता है जो समय का उपयोग करने के बजाय हर बार कोड का अनुरोध करने के लिए हर बार बढ़ाता है। TOTP काउंटर को वर्तमान समय स्लाइस के साथ भी बदल देता है, जो इसे और अधिक सुविधाजनक बनाता है क्योंकि दोनों पक्ष स्वचालित रूप से-सिंक में रहते हैं।

अन्य सिस्टम अलग -अलग दृष्टिकोणों का उपयोग करते हैं। उदाहरण के लिए, पुश-आधारित 2FA ऐप आपको अनुमोदन करने के लिए एक सूचना भेजते हैं। हार्डवेयर टोकन जैसे कि Yubikeys सीधे एक भौतिक डिवाइस पर कोड उत्पन्न करते हैं। लेकिन सभी एक ही सिद्धांत साझा करते हैं: अपने पासवर्ड से परे एक दूसरे कारक को जोड़ना।

कहते हैं कि आपकी गुप्त कुंजी “ड्रैगन” है (वास्तव में, यह बाइट्स का एक यादृच्छिक स्ट्रिंग होगा) और वर्तमान समय काउंटर 10,00,000 है। गुप्त और काउंटर के HMAC-SHA-256 की गणना करें। यह 4A3B7F2C … (64 हेक्साडेसिमल वर्ण) की तरह 256-बिट परिणाम देता है। ऑफसेट चुनने के लिए अंतिम कुछ बिट्स का उपयोग करें, फिर वहां से शुरू होने वाले चार बाइट्स लें। उन बाइट्स को एक संख्या में परिवर्तित करें, जो 123456789 कहते हैं। 12,34,56,789 को 1,000,000 से विभाजित करें और शेष ले जाएं: 4,56,789। इस प्रकार आपका छह-अंकीय OTP 456789 है।

उसी क्षण, सर्वर एक ही चरण करता है और एक ही परिणाम प्राप्त करता है। यदि आपका इनपुट मेल खाता है, तो आप प्रमाणित हैं।



Source link

Exit mobile version