2FA: SMS अच्छे विकल्पों में सबसे बुरा क्यों है

प्रकाशित लेखक David Carrero

SMS वाला दूसरा फ़ैक्टर चालू करना आज के सबसे अच्छे फ़ैसलों में से एक है। और वही पहला फ़ैसला भी है जिस पर आपको दोबारा सोचना पड़ेगा।

दोनों बातें एक साथ सच हैं, और सारी उलझन यहीं से शुरू होती है। बहस आम तौर पर दो बराबर की ग़लत ख़ेमों में बँट जाती है: एक वे जो SMS को असली सुरक्षा मान लेते हैं, दूसरे वे जो उसे महज़ नौटंकी कहकर ख़ारिज कर देते हैं। SMS कुछ न होने से कहीं ज़्यादा बेहतर है और, ठीक उसी वक़्त, आम चलन के सारे दूसरे फ़ैक्टरों में सबसे कमज़ोर है। इसमें कोई विरोधाभास नहीं है। एक सीढ़ी है, और SMS उसका पहला डंडा है — ज़मीन से कहीं ऊपर।

SMS जो चीज़ ठीक करता है

दूसरे फ़ैक्टर के बिना आपका खाता एक ऐसे राज़ के भरोसे टिका है जो बरसों से किसी और के लीक हुए डंप में घूम रहा हो सकता है, और आपको ख़बर तक नहीं। कोई उस सूची को उठाता है, एक के बाद एक सेवा पर आज़माता है और अगर आपने वही पासवर्ड दोहराया था, तो अंदर। उसने आपको चुना नहीं है: एक स्प्रेडशीट में आपकी लाइन आ गई, बस इतना हुआ है।

SMS इस सिलसिले को जड़ से तोड़ देता है। जैसे ही दूसरा फ़ैक्टर आ जाता है, आप पर हमला एक अपने आप चलने वाली कार्रवाई नहीं रह जाता, वह ख़ास आपके ख़िलाफ़ की गई मेहनत बन जाता है। पता होना चाहिए कि आप कौन हैं, कौन-सा नंबर इस्तेमाल करते हैं और वह नंबर आपको कौन देता है। बहुतों के लिए यह घाटे का सौदा है: आसान खाते और भी हैं। इसीलिए, अगर कोई सेवा सिर्फ़ SMS देती है, तो जवाब है हाँ, बिना किसी अगर-मगर के। अगर-मगर बाद में आते हैं।

ख़राबी आपके फ़ोन में नहीं है

लगता यही है कि SMS तोड़ने का मतलब है हवा में तरंगें पकड़ना, चिप क्लोन करना या फ़ोन में कोई वायरस डालना। इसमें से कुछ भी ज़रूरी नहीं। जो हमला सचमुच खाते उड़ाकर ले जाता है, और जो सार्वजनिक मामलों में बार-बार सामने आता है, वह है SIM swapping, और वह कहीं ज़्यादा बोरिंग चीज़ है: कोई आपके ऑपरेटर को कॉल करता है, कहता है कि उसका सिम खो गया, पहचान की चार-छह पूछताछ का जवाब देता है और डुप्लीकेट सिम माँग लेता है। उस घड़ी के बाद आपके SMS उस तक पहुँचते हैं।

ग़ौर कीजिए कि यहाँ क्या नहीं हुआ। कोई एन्क्रिप्शन नहीं टूटा। आपके फ़ोन को किसी ने छुआ तक नहीं। आपने कोई ग़लती नहीं की — और आपको पता भी नहीं चला, सिवाय इसके कि आपकी लाइन अचानक ख़ामोश हो गई, और अगर आप सो रहे हों तो इस पर ध्यान जाने में वक़्त लग सकता है। SIM swapping आप पर किया गया तकनीकी हमला नहीं है: वह आपके ऑपरेटर पर की गई सोशल इंजीनियरिंग है। जो कड़ी टूटती है वह है कस्टमर केयर का वह कर्मचारी जिसे शिकायतें फटाफट निपटाने की तनख़्वाह मिलती है और जिसे अभी-अभी एक बिलकुल भरोसेमंद कहानी सुनाई गई है, क्योंकि सिम खो जाना तो लोगों के साथ रोज़ होता है। ये मामले विस्तार से दर्ज हैं और यह पैटर्न इतनी एकरसता से दोहराता है कि अब हैरानी भी नहीं होती।

असहज बात यह है कि इसमें आपकी कोई भूमिका ही नहीं: आपकी सुरक्षा उस कंपनी की पहचान जाँचने की प्रक्रिया पर टिकी है, जिसे आपने इस वजह से तो चुना ही नहीं था। और एक दूसरी ख़ामी भी है, जो और चुपचाप है: आपका फ़ोन नंबर कोई राज़ नहीं है। वह आपने डॉक्टर को दिया है, बिजली वालों को दिया है, हर दूसरी दुकान की पर्ची पर लिखवाया है, और हर उस ऐप को जो OTP भेजने के लिए माँगता है। जो पहचान आप ख़ुद बाँटते फिरते हैं, वही यहाँ पासवर्ड का काम कर रही है।

दूसरा डंडा: एक ऐप

अगला पायदान है TOTP — वही छह अंकों के कोड जो हर तीस सेकंड में बदलते रहते हैं, Google, Aegis, 1Password या Bitwarden जैसी किसी ऐप में।

तरीक़ा ख़ूबसूरत है: सेवा और आपकी ऐप एक ही बार, सेटअप के वक़्त, एक राज़ आपस में साझा करते हैं, और उसके बाद दोनों उसी राज़ और घड़ी के समय से वही कोड ख़ुद निकाल लेते हैं। कुछ भेजा नहीं जाता। और सारा फ़र्क़ यहीं है: जब कुछ सफ़र ही नहीं करता, तो मोड़ने को भी कुछ नहीं होता। न कोई ऑपरेटर, न कोई नंबर, न कोई ऐसा जिसे कॉल करके डुप्लीकेट माँगा जा सके। SIM swapping के पास घुसने का रास्ता ही नहीं बचता।

यह बड़ी छलाँग है और इसमें पाँच मिनट लगते हैं। पर यह भी मंज़िल नहीं है, क्योंकि TOTP में एक बहुत ही इंसानी अंधा कोना बचा रह जाता है: कोड आप ख़ुद टाइप करके उसे देते हैं जो माँगता है। अगर आप ऐसे पन्ने पर टाइप कर रहे हैं जो आपके बैंक जैसा दिखता है पर है नहीं, तो हमलावर उसे उठाकर असली साइट पर आगे भेज देता है, कोड की बची हुई चंद सेकंड की ज़िंदगी में। आपकी ऐप एक नंबर बनाती है; उसे नहीं पता आप उसे कहाँ चिपका रहे हैं।

वह डंडा जो बहकावे में नहीं आता

भौतिक चाबी — FIDO/U2F मानक, कोई USB या NFC चाबी, या ख़ुद आपका फ़ोन ही ऑथेंटिकेटर बनकर — ठीक इसी को हल करती है। रजिस्टर करते वक़्त वह चाबियों का एक जोड़ा बनाती है जो ऑरिजिन से बँधा होता है: यानी उस सेवा के ख़ास डोमेन से। लॉगिन के समय ब्राउज़र बताता है कि हस्ताक्षर किस डोमेन के लिए माँगे जा रहे हैं, और चाबी उस चुनौती पर दस्तख़त करती है जिसके अंदर वही डोमेन बैठा है। अगर पन्ना कहीं और होस्ट की गई नक़ल है, तो डोमेन मेल नहीं खाता और ऐसा कोई हस्ताक्षर बनता ही नहीं जिसे असली सेवा क़ुबूल करे।

दूसरे शब्दों में: चाबी आपसे ज़्यादा होशियार नहीं है; बात यह है कि वह आपकी समझ पर भरोसा ही नहीं करती। वह ताले का निशान नहीं देखती, URL नहीं पढ़ती, यह नहीं तौलती कि मैसेज असली लग रहा था या नहीं। वह बस एक टेक्स्ट स्ट्रिंग को दूसरी से मिलाती है। यही इकलौती कड़ी है जिसे कोई अच्छी कहानी सुनाकर मनाया नहीं जा सकता — और यहाँ तक आते-आते आप समझ ही गए होंगे कि अच्छी कहानियाँ ही तो असली मुसीबत हैं।

“प्रतिबंधित” का मतलब “मना” नहीं होता

NIST ने अपने SP 800-63B में टेलीफ़ोन नेटवर्क के ज़रिए होने वाले आउट-ऑफ़-बैंड सत्यापन को — यानी SMS को — restricted यानी प्रतिबंधित की श्रेणी में रखा है। इस शब्द पर रुकना बनता है, क्योंकि सारा लेख इसी बारीकी में है। प्रतिबंधित का मतलब मना नहीं है: यह एक बीच की, सोच-समझकर बनाई गई श्रेणी है। इस्तेमाल जारी रखा जा सकता है, पर जो इस्तेमाल करे उस पर ज़िम्मेदारियाँ आती हैं: जोखिम का आकलन करना, उपयोगकर्ताओं को बताना कि इस रास्ते में एक ज्ञात कमज़ोरी है, और किसी बेहतर चीज़ पर जाने की योजना रखना।

यह किसी पाबंदी से ज़्यादा समझदार रुख़ है, और यही बताता है कि SMS आज तक टिका क्यों है। एक औसत तरीक़ा जिसे लोग इस्तेमाल करते हैं, उस शानदार तरीक़े से ज़्यादा बचाता है जिसे कोई चालू ही नहीं करता। अगर कल को इस पर हर जगह पाबंदी लग जाए, तो उन खातों में से बहुत सारे एक डंडा ऊपर नहीं चढ़ेंगे: वे अकेले पासवर्ड के सहारे रह जाएँगे, यानी ज़मीन पर।

क्या करें, किस क्रम में

  • अगर कोई सेवा सिर्फ़ SMS देती है, तो उसे चालू कीजिए। आज ही। सबसे ज़्यादा ऊँचाई पहला ही डंडा देता है।
  • अगर TOTP मिलता है, तो TOTP पर जाइए और अगर सेवा इजाज़त दे तो SMS को बैकअप से भी हटा दीजिए। आपकी सुरक्षा उतनी ही है जितना आपका स्वीकार किया हुआ सबसे कमज़ोर तरीक़ा, क्योंकि रास्ता हमलावर चुनता है, आप नहीं।
  • जो सचमुच अहम है — ईमेल, बैंक, पासवर्ड मैनेजर — वहाँ भौतिक चाबी लगाइए। आपकी पूरी ज़िंदगी के “पासवर्ड भूल गया?” उसी ईमेल से लटके हुए हैं।
  • अगर आपका ऑपरेटर PIN या पोर्टिंग लॉक की सुविधा देता है, तो लगा दीजिए। इससे जड़ नहीं सुधरती, पर कॉल करने वाले के लिए डुप्लीकेट लेना पेचीदा हो जाता है।
  • और पहले फ़ैक्टर को मत भूलिए। 2FA दूसरी कुंडी है, पहली के गुनाहों की माफ़ी नहीं: पासवर्ड लंबा हो, हर जगह अलग हो और जनरेटर से निकला हो; और अगर आपको अपने किसी मौजूदा पासवर्ड पर शक है, तो उसे चेकर से गुज़ार दीजिए।

नतीजा बोरिंग है और इसीलिए कोई कहता नहीं: SMS ख़राब है, और अगर आपके पास और कुछ नहीं है तो आपको उसे इस्तेमाल करना चाहिए। असली सुरक्षा लगभग कभी सही विकल्प चुनने का नाम नहीं होती, बल्कि यह जानने का नाम होती है कि अच्छों में सबसे बुरा कौन-सा है, उसे तब तक बरतना जब तक ज़रूरत हो, और उसे कभी काम पूरा हो जाने का सबूत न समझ लेना।


स्रोत: NIST SP 800-63B, जो सार्वजनिक टेलीफ़ोन नेटवर्क (SMS या वॉइस) के ज़रिए आउट-ऑफ़-बैंड सत्यापन को restricted यानी प्रतिबंधित तरीक़ा मानता है, और उस श्रेणी के साथ आने वाली ज़िम्मेदारियाँ — जोखिम आकलन, उपयोगकर्ताओं को सूचना और माइग्रेशन की योजना — तय करता है · FIDO/U2F और WebAuthn के विनिर्देश, और हस्ताक्षर के समय ऑरिजिन (डोमेन) की उनकी जाँच · RFC 6238 (TOTP) · SIM swapping के सार्वजनिक मामले, जो प्रेस और अदालती कार्यवाहियों में विस्तार से दर्ज हैं।

← ब्लॉग पर वापस