3 पॉइंट द्वारा GN⁺ 2023-12-06 | 1 टिप्पणियां | WhatsApp पर शेयर करें

iMessage की आंतरिक संरचना की व्याख्या

  • iMessage की आंतरिक संरचना का एक व्यापक अवलोकन प्रदान करता है
  • pypush प्रोजेक्ट के माध्यम से पता चली बातों के आधार पर तकनीकी विवरणों को सरल बनाकर समझाया गया है
  • pypush iMessage को फिर से लागू करने वाला एक open source प्रोजेक्ट है, और विस्तृत implementation संबंधित repository में देखी जा सकती है

मूलभूत परत (Foundational Layer)

  • Apple Push Notification Service(APNs) iMessage का एक मुख्य घटक है, और इसका उपयोग ऐप बंद होने पर भी real-time notifications और updates प्राप्त करने के लिए किया जाता है
  • APNs एक द्विदिश सेवा है, जिसका उपयोग push notifications भेजने और प्राप्त करने दोनों के लिए होता है
  • जब कोई device APNs से जुड़ता है, तो उसे एक "push token" मिलता है, जिसका उपयोग notifications को किसी विशेष device तक route करने के लिए किया जाता है
  • notification भेजते समय संदेश का topic निर्दिष्ट करना होता है, और iMessage के मामले में यह com.apple.madrid है
  • APNs का उपयोग संदेश डिलीवरी के अलावा IDS के माध्यम से queries भेजने और APNs के जरिए responses प्राप्त करने के लिए भी होता है
  • APNs से जुड़ने के लिए Albert activation server द्वारा जारी किया गया client certificate आवश्यक होता है

key server

  • IDS (संभवतः IDentity Services) iMessage और FaceTime जैसी सेवाओं के लिए key server के रूप में उपयोग होता है
  • iMessage E2E encrypted है, इसलिए प्रतिभागियों के बीच public keys का सुरक्षित आदान-प्रदान आवश्यक है
  • IDS में registration का पहला चरण authentication token प्राप्त करना है, जिसके लिए Apple ID username और password चाहिए
  • authentication token मिलने के बाद इसे तुरंत अधिक लंबे समय तक मान्य रहने वाले certificate से बदलना होता है, और इसी certificate के माध्यम से IDS में registration किया जा सकता है
  • IDS registration प्रक्रिया में public encryption और signing keys के साथ विभिन्न "client data" को key server पर upload किया जाता है
  • IDS registration request के समय "validation data" नाम का एक binary blob आवश्यक होता है, जो Apple device न होने वाले उपकरणों को iMessage उपयोग करने से रोकने वाला validation mechanism है
  • IDS में registration करने पर एक "identity key pair" प्राप्त होता है, जिसके जरिए public key lookup किया जा सकता है
  • lookup के समय इच्छित account प्रदान किया जाता है, और प्रत्येक device से संबंधित "identities" की सूची मिलती है, जिसमें महत्वपूर्ण विवरण शामिल होते हैं

संदेश एन्क्रिप्शन

  • iMessage की मूल सेटिंग पूरी हो जाती है, जिससे अन्य उपयोगकर्ताओं की public keys lookup की जा सकती हैं और अपनी keys publish की जा सकती हैं
  • संदेश प्राप्त करने के लिए APNs connection को com.apple.madrid पर filter करना होता है और active-state packet भेजना होता है
  • IDS registration में advertise की गई capabilities और भेजने वाले device के iOS version के आधार पर, संदेश pair encryption format या नए pair-ec format में प्राप्त हो सकते हैं
  • संदेश भेजते समय प्रत्येक recipient को अलग-अलग संदेश भेजा जा सकता है, या APNs द्वारा वितरित किए जा सकने वाले एक बड़े bundle में सभी recipients और encrypted payloads को एक साथ बांधा जा सकता है
  • संदेश बातचीत में शामिल सभी प्रतिभागियों तक पहुंचते हैं, जिसमें अपने account के अन्य devices भी शामिल हैं
  • संदेश भेजने में एक अक्सर अनदेखी की जाने वाली बात यह है कि AES key पूरी तरह random नहीं होती, बल्कि HMAC के साथ tag की जाती है

सामग्री और स्रोत

  • iMessage को समझने में मदद करने वाले कई लोग और पहले के कार्य मौजूद हैं
  • IMFreedom Knowledge Base, pushproxy, apns-dissector, QuarkSlab, Garman et al., NowSecure, Elcomsoft, open-imcore, The Apple Wiki, और Mihir Bellare तथा Igors Stepanovs के शोध का संदर्भ लिया गया है

1 टिप्पणियां

 
GN⁺ 2023-12-06
Hacker News राय
  • यह अनुमान है कि Apple iMessage को लॉक करने के लिए device verification (attestation) का उपयोग करेगा। इसका मतलब होगा कि पुराने डिवाइसों के लिए software update की ज़रूरत पड़ेगी।

    iMessage इस्तेमाल करने के लिए IDS registration request के समय 'verification data' नाम का एक binary blob चाहिए। यह Apple का verification mechanism है, ताकि जो डिवाइस Apple के नहीं हैं वे iMessage इस्तेमाल न कर सकें।

  • यह जिज्ञासा है कि Apple का ऐसा करना यूरोपीय संघ के DSA और DMA क़ानूनों का उल्लंघन कर सकता है या नहीं।

  • अगर लोग यह साझा करें कि वे tech क्षेत्र में कैसे आए, तो इससे tech-related चीज़ें सीखना चाहने वाले छात्रों को मदद मिलेगी।

  • यह जिज्ञासा है कि क्या कोई libpurple plugin बनाने की योजना रखता है।

  • इस विषय के प्रति जुनून दिखाते हुए Hack Club में शामिल होने की सिफारिश की गई है।

  • उम्मीद थी कि iMessage अदृश्य messages और attachments की अनुमति क्यों देता है, इसका स्पष्टीकरण मिलेगा, लेकिन यह देखकर सवाल उठा कि इस फीचर का इस्तेमाल device infection के लिए किया जाता है।

  • आज iMessage reverse engineering news में हुई प्रगति को आगे बढ़ाने वाला open source project pypush, MongoDB के Server Side Public License का पालन करता है और Beeper के स्वामित्व में है। यह library शानदार है, लेकिन मज़बूत copyright license इस बात को प्रभावित कर सकता है कि इसका उपयोग किस हद तक किया जा सकता है।

  • यह गंभीर सवाल उठाया गया है कि 'opertunistic' शब्द वास्तव में इस्तेमाल होता है या फिर 'referer' जैसी कोई typo है जो पीढ़ियों तक जड़ पकड़ गई।

  • यह प्रोत्साहन दिया गया है कि एक हाई स्कूल छात्र का ऐसा काम कर पाना सचमुच आश्चर्यजनक है।