भारत का हिंदी राष्ट्रीय डोमेन .भारत असल DNS में xn--h2brj9c नाम से मौजूद है — यह दिखाता है कि देवनागरी जैसी जटिल लिपि, जिसमें मात्राएँ और संयुक्ताक्षर होते हैं, भी अंततः वही ASCII-सुरक्षित एन्कोडिंग बन जाती है जो किसी भी अन्य गैर-लैटिन लिपि के लिए बनती है।
मात्राएँ और संयुक्ताक्षर एन्कोडिंग को क्यों जटिल बनाते हैं
देवनागरी में हर दिखने वाला "अक्षर" ज़रूरी नहीं कि एक ही यूनिकोड कोड पॉइंट हो — स्वर मात्राएँ (जैसे ि, ु, े) व्यंजन के साथ अलग कोड पॉइंट के रूप में जुड़ती हैं, और संयुक्ताक्षर (जैसे क्ष, ज्ञ) कई अक्षरों और हलंत (्) के मेल से बनते हैं। इसका मतलब है कि हिंदी के एक शब्द में दिखने वाले अक्षरों से कहीं ज़्यादा कोड पॉइंट छिपे हो सकते हैं, और Punycode इन सभी को अलग-अलग एन्कोड करता है।
DNS को सीधे UTF-8 में क्यों नहीं बदला गया
DNS को मूल रूप से UTF-8 स्वीकार करने लायक बनाने के लिए दुनिया भर के हर नेम सर्वर को एक साथ अपडेट करना पड़ता। Punycode इस समस्या से बचता है: सिर्फ़ ब्राउज़र और रजिस्ट्रार को एन्कोडिंग समझने की ज़रूरत है, जबकि पीछे की DNS संरचना अब भी सिर्फ़ ASCII देखती है।
सामान्य उपयोग
- ईमेल या लिंक में दिखने वाली उलझाने वाली
xn--...स्ट्रिंग के पीछे असली डोमेन क्या है, यह जाँचना। - देवनागरी वर्णों वाला डोमेन, सिर्फ़ ASCII स्वीकार करने वाले DNS पैनल में डालने से पहले Punycode रूप में बदलना।
- प्रमाणपत्रों या ईमेल पतों में IDN से जुड़ी समस्याओं का निदान करना।
होमोग्लिफ़ हमला भारतीय ब्रांड के लिए भी ख़तरा है
सिरिलिक "а" ज़्यादातर फ़ॉन्ट में लैटिन "a" से अलग नहीं दिखता, और हमलावर इसका फ़ायदा उठाकर "аpple.com" जैसे डोमेन रजिस्टर करते हैं, जो Punycode से एक अनोखी xn-- स्ट्रिंग में एन्कोड होते हैं पर असली ब्रांड जैसे दिखते हैं। जब कोई डोमेन संदिग्ध तरीके से कई लिपियाँ मिलाता है, तो आधुनिक ब्राउज़र डिकोड किए गए रूप के बजाय सीधे कच्चा xn-- रूप दिखाते हैं।