- एक ही इमोजी में मनचाहा डेटा एन्कोड करना संभव है
- Unicode टेक्स्ट को code point की sequence के रूप में दर्शाता है, और हर code point एक संख्या होती है जिसे Unicode Consortium अर्थ देता है।
- साधारण Latin alphabet टेक्स्ट के मामले में, Unicode code point और स्क्रीन पर दिखने वाले character के बीच one-to-one mapping होती है।
- अन्य character systems में, स्क्रीन पर दिखने वाला character कई code point से व्यक्त किया जा सकता है।
- variation selector
- Unicode 256 code point निर्धारित करता है जिन्हें "variation selector" कहा जाता है; ये अपने आप स्क्रीन पर दिखाई नहीं देते, लेकिन पिछले character के rendering को बदलने के लिए उपयोग होते हैं।
- अधिकांश Unicode characters के variation नहीं होते, और variation selector को conversion के दौरान भी सुरक्षित रखा जाना चाहिए।
- ये 256 variation selector एक single byte छिपाने का तरीका देते हैं।
- डेटा एन्कोडिंग
- variation selector sequence को जोड़कर मनचाही byte string को व्यक्त किया जा सकता है।
- उदाहरण के लिए, "hello" टेक्स्ट को दर्शाने वाला डेटा [0x68, 0x65, 0x6c, 0x6c, 0x6f] एन्कोड किया जा सकता है।
- byte को variation selector में बदलने के बाद, उन्हें base character के पीछे जोड़कर एन्कोड किया जाता है।
- डेटा डिकोडिंग
- डिकोडिंग भी एन्कोडिंग की तरह सरल है।
- variation selector को byte में बदलकर मूल डेटा पुनर्स्थापित किया जा सकता है।
- दुरुपयोग की संभावना
- यह Unicode का दुरुपयोग है, इसलिए इसकी सिफारिश नहीं की जाती।
- इसका इस्तेमाल कंटेंट फ़िल्टर को बायपास करने या टेक्स्ट में watermark डालने जैसे दुर्भावनापूर्ण उद्देश्यों के लिए किया जा सकता है।
- निष्कर्ष
- इसमें बताया गया है कि इमोजी का उपयोग करके मनचाहा डेटा कैसे छिपाया जा सकता है, और यह Unicode के variation selector का उपयोग करता है।
- यह तरीका दिलचस्प है, लेकिन वास्तविक उपयोग के लिए उपयुक्त नहीं हो सकता।
1 टिप्पणियां
Hacker News राय
Unicode का PUA(Private Use Area) आंतरिक और कस्टम उपयोग के लिए होता है और बाहरी सिस्टमों तक नहीं भेजा जाता
Unicode का दुरुपयोग करना हिमशैल की सिर्फ़ नोक भर है
पिछले penetration testing अनुभव में मुझे याद है कि साधारण diacritics से backend web server के buffer को overflow कर दिया था
Sanity इस तकनीक का उपयोग Content Source Maps को web page के वास्तविक text में encode करने के लिए करता है
LLM output watermarking के लिए इस तकनीक का उपयोग करने का विचार अच्छा लगा
StegCloak, AES-256-CTR के ज़रिए hidden payload को encrypt करके इस विचार को एक कदम आगे ले जाता है
LLM output watermarking के अलावा इसे log probability data को package करने के लिए भी इस्तेमाल किया जा सकता है
शीर्षक थोड़ा भ्रामक है
tokenizer इसे पकड़ लेता है
पिछली नौकरी में कई दुरुपयोग के मामलों की वजह से user nickname और status message के 'characters' गिनने के लिए code pointer का उपयोग करना पड़ता था
Unicode tag characters ASCII को reflect करते हैं और UI elements में अक्सर दिखाई नहीं देते
Microsoft द्वारा Copilot में ठीक किया गया एक वास्तविक exploit case मौजूद है