क्या Apple सच में चलाए जाने वाले हर ऐप को अपने सर्वर पर लॉग करता है?
(blog.jacopo.io)- इस बार मुद्दा बने OCSP का तकनीकी विश्लेषण
→ डेवलपर सर्टिफिकेट वैध है या नहीं, यह जांचने के लिए ऐप चलाते समय Apple सर्वर से कनेक्ट करके चेक किया जाता है
→ अगर नेटवर्क कनेक्शन उपलब्ध न हो, तो ऐप वैसे ही चल जाता है
→ कनेक्शन संभव हो लेकिन सर्वर धीमा हो, तो इस बार की तरह Apple द्वारा बनाए गए ऐप्स को छोड़कर बाकी सभी ऐप्स न खुलने की समस्या हो सकती है
→ यह दावा है कि हर बार ऐप चलने पर Apple सर्वर को ऐप का hash भेजा जाता है [1]
→ समस्या यह है कि HTTPS नहीं बल्कि HTTP का उपयोग होता है (क्योंकि HTTPS सर्टिफिकेट की पुष्टि करने के लिए फिर एक और कनेक्शन खोलना पड़ेगा)
- अंदरूनी तौर पर देखना
→ बीच में सिर्फ HTTP Proxy या Wireshark हो तो सब कुछ capture किया जा सकता है
→ एक बार चलाकर OCSP प्रमाणीकरण हो जाए, तो कुछ समय तक दोबारा प्रमाणीकरण नहीं होता
→ GET के जरिए base64-encoded 80-byte string भेजी जाती है
→ वह मान ऐप के hash जैसा दिखता है, लेकिन "नहीं" है
→ OpenSSSL से उस binary जानकारी को खोलकर देखें, तो उसमें वास्तव में सर्टिफिकेट issuer का नाम, key hash value और serial number शामिल होते हैं
→ फिर भी अगर हर ऐप का सर्टिफिकेट अलग हो, तो क्या वह आखिरकार ऐप के hash के बराबर ही नहीं हुआ? ऐसा संदेह हो सकता है
- डेवलपर सर्टिफिकेट
→ यह सर्टिफिकेट जानकारी आखिर आती कहाँ से है?
→ codesign से Mac ऐप का सर्टिफिकेट निकालकर देखा गया (यहाँ Firefox)
→ serial number ऊपर capture किए गए मान से मेल खाता है
→ फिर Thunderbird का सर्टिफिकेट निकालकर देखा, तो उसका serial number भी वही निकला (जैसा कि स्वाभाविक है)
→ यानी [1] में कहा गया कि सभी ऐप्स की पहचान करने वाला hash data भेजा जाता है — यह गलत जानकारी है
→ बेशक, किस कंप्यूटर पर कब "किस डेवलपर का" ऐप चलाया गया, यह पता चल सकता है — यह बात सही है
- OCSP को ब्लॉक करने के बारे में
→ Little Snitch या /etc/hosts के जरिए इसे ब्लॉक किया जा सकता है
→ लेकिन यह एक महत्वपूर्ण सुरक्षा फ़ंक्शन को ही रोकना होगा, इसलिए ऐसा न करने की सलाह दी जाती है
- TL;DR
→ macOS हर बार ऐप चलाते समय Apple को ऐप का hash नहीं भेजता
→ macOS आपके द्वारा उपयोग किए जा रहे ऐप के डेवलपर सर्टिफिकेट की जानकारी भेजता है, और यह HTTP पर भेजी जाती है
→ जहाँ तक हो सके ocsp.apple.com तक पहुंच को ब्लॉक न करें।
4 टिप्पणियां
संदर्भ के लिए, अंग्रेज़ी Wikipedia के अनुसार Google Chrome ने 2012 से ही OCSP को निष्क्रिय कर दिया था। कारण यह था कि “फ़ायदा ढूँढना मुश्किल है, जबकि लागत (delay और privacy समस्याएँ) स्पष्ट हैं।”
https://www.imperialviolet.org/2012/02/05/crlsets.html
ocsp मूल रूप से वह तरीका है जिसे web browser भी SSL certificate की expiry वगैरह जांचने के लिए इस्तेमाल करते हैं। चूंकि app authentication भी SSL certificate की तरह ही उसी तरीके से की जाती है, इसलिए ऐसा अनुमान लगाया जा सकता है।
मेरा अंदाज़ा है कि iOS की तरह Mac app के लिए भी App Analytics जानकारी इकट्ठा करने के लिए ऐसा किया जा रहा होगा।
इससे जुड़ी पढ़ने लायक बातें
[1] आपका कंप्यूटर सिर्फ आपका नहीं है https://hi.news.hada.io/topic?id=3200
[2] macOS Catalina (10.15): डिज़ाइन की वजह से धीमा होना https://hi.news.hada.io/topic?id=2145