2 पॉइंट द्वारा GN⁺ 2025-02-13 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • एक ही इमोजी में मनचाहा डेटा एन्कोड करना संभव है
    • 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 टिप्पणियां

 
GN⁺ 2025-02-13
Hacker News राय
  • Unicode का PUA(Private Use Area) आंतरिक और कस्टम उपयोग के लिए होता है और बाहरी सिस्टमों तक नहीं भेजा जाता

    • ज़्यादातर सिस्टम और लाइब्रेरी इसे बिना बदले पास होने देने के लिए डिज़ाइन किए गए हैं
    • यह संभावित data exfiltration का रास्ता बन सकता है
    • ज़्यादातर developers को "internationalization समस्याओं से बचने के लिए हमेशा Unicode का उपयोग करो" से आगे ज़्यादा जानकारी नहीं होती
  • Unicode का दुरुपयोग करना हिमशैल की सिर्फ़ नोक भर है

    • Unicode strings स्वीकार करने वाले सिस्टमों में buffer overflow कराया जा सकता है
    • आमतौर पर इससे errors या crashes होते हैं, लेकिन कभी-कभी यह अप्रत्याशित और दिलचस्प नतीजे भी दे सकता है
  • पिछले penetration testing अनुभव में मुझे याद है कि साधारण diacritics से backend web server के buffer को overflow कर दिया था

    • आमतौर पर सर्वर crash होकर अपने-आप restart हो जाता था, लेकिन पर्याप्त हेरफेर से कुछ सिस्टम या software का दुरुपयोग किया जा सकता है
  • Sanity इस तकनीक का उपयोग Content Source Maps को web page के वास्तविक text में encode करने के लिए करता है

    • इससे editors text पर click करके content structure को आसानी से trace कर सकते हैं
    • date, URL, ID जैसी parsing की ज़रूरत वाली चीज़ों में इसे न जोड़ना बेहतर है
  • LLM output watermarking के लिए इस तकनीक का उपयोग करने का विचार अच्छा लगा

    • 99% copy-paste generators को आसानी से पकड़ा जा सकता है
    • यह जिज्ञासा है कि हर character या token में कितनी जानकारी डाली जा सकती है
  • StegCloak, AES-256-CTR के ज़रिए hidden payload को encrypt करके इस विचार को एक कदम आगे ले जाता है

  • LLM output watermarking के अलावा इसे log probability data को package करने के लिए भी इस्तेमाल किया जा सकता है

    • generation process में transparency देने के लिए हर token की probability information शामिल की जा सकती है
    • यह OpenAI API specification का हिस्सा है, और दूसरे engines में भी supported है
  • शीर्षक थोड़ा भ्रामक है

    • base character का emoji होना ज़रूरी नहीं है, और variation selectors का व्यवहार सामान्य characters जैसा ही है
    • emoji के साथ इस्तेमाल करने पर यह ज़्यादा मज़ेदार लगता है
  • tokenizer इसे पकड़ लेता है

  • पिछली नौकरी में कई दुरुपयोग के मामलों की वजह से user nickname और status message के 'characters' गिनने के लिए code pointer का उपयोग करना पड़ता था

    • किसी दूसरे user को browse करने के लिए 9MB download नहीं करना चाहता था
  • Unicode tag characters ASCII को reflect करते हैं और UI elements में अक्सर दिखाई नहीं देते

    • कुछ LLM hidden text को ASCII के रूप में interpret करके निर्देशों का पालन करते हैं, और यहाँ तक कि उसे लिख भी सकते हैं
  • Microsoft द्वारा Copilot में ठीक किया गया एक वास्तविक exploit case मौजूद है