2016-09-14 14 views
13

मेरे पास एक आईओएस एप्लीकेशन है जो कई ग्राहकों को वितरित किया जाएगा, प्रत्येक अपने नेटवर्क बुनियादी ढांचे का उपयोग कर। मैं कुछ सर्टिफिकेट पिनिंग क्षमताओं को जोड़ना चाहता हूं, लेकिन मुझे इसे गतिशील फैशन में करने की ज़रूरत है क्योंकि मैं ऐप को प्रमाणित/पब्की बंडल के साथ नहीं भेज सकता, क्योंकि ऐसा करने के लिए प्रत्येक ग्राहक के लिए एक अलग निर्माण की आवश्यकता होगी।डायनामिक सर्टिफिकेट पिनिंग

मेरा विचार ऐप स्टार्टअप पर प्रति-क्लाइंट कॉन्फ़िगर किए गए HTTPS सर्वर से पूछताछ करना है, प्रमाणपत्र प्राप्त करें, संभावित रूप से सार्वजनिक कुंजी निकालें और फिर उसे पिन करें।

स्विफ्ट या उद्देश्य-सी में ऐसा करना संभव है? मैं प्रासंगिक कोड नमूने या दस्तावेज खोजने में सक्षम नहीं हूं।

+0

क्या आपने SSLPinningMode को आजमाया है? [यह] (http://stackoverflow.com/questions/16613081/ssl-pinning-with-afnetworking) मदद कर सकता है। यदि आप ऐप स्टोर पर इसे वितरित करने की योजना बना रहे हैं तो मुझे संदेह है कि यह स्वीकार किया जाएगा (प्रमाण पत्र डाउनलोड करने और निकालने का हिस्सा)। – jugutier

+2

आईओएस के सीमाओं को धक्का देने का एक उदाहरण यहां दिया गया है: https://github.com/iosptl/ios7ptl/blob/master/ch14- सुरक्षा/कनेक्शन/कनेक्शन/कनेक्शन कनेक्शन देखें। 'RNSecTrustEvaluateXX509' देखें। इसमें कनेक्शन से प्रमाण पत्र निकालने के लिए कोड शामिल है। फिर आप प्रमाण पत्र को फ़ाइल में लिख सकते हैं, और बाद में मानक पिनिंग प्रथाओं जैसे https://github.com/rnapier/RNPinnedCertValidator का उपयोग कर सकते हैं। –

+0

असंबद्ध मेटा क्रॉफ्ट, लेकिन @RobNapier क्या आप आईओएस 10 के लिए सीमाओं को पुश करने का एक नया संस्करण जारी करने की योजना बना रहे हैं? – JAL

उत्तर

1

परिचालन रूप से, यदि आप ऐप में प्रमाण पत्र या कुंजी एम्बेड करते हैं, तो यह गलत कॉन्फ़िगरेशन से प्रबंधित और पुनर्प्राप्त करना बहुत आसान होगा। यदि आप पहली बार ऐप पर सर्वर द्वारा भेजे गए प्रमाण पत्र को पिन करते हैं, तो वर्तमान समय समाप्त होने या घुमाए जाने के बाद आपके पास नए प्रमाणपत्र का समर्थन करने के लिए कोई तंत्र नहीं है। यदि आप अभी भी ऐसा करना चाहते हैं, तो मैं एचपीकेपी विनिर्देश को देखने की अनुशंसा करता हूं, जो एक ही तंत्र को लागू करता है लेकिन ब्राउज़र के लिए: https://tools.ietf.org/html/rfc7469

इसके अलावा, यदि ऐप सर्वर सीधे आपके नियंत्रण में नहीं हैं, तो एक उच्च है अगर सर्वर का प्रमाणपत्र अनपेक्षित रूप से बदल जाता है तो उस पिनिंग को ऐप को ब्रिक करना समाप्त हो जाएगा। ऐप बनाने वाली टीम को ऐप/ग्राहक सर्वर पर आधारभूत संरचना/प्रमाणपत्र परिवर्तनों के बारे में सूचित किया जाएगा, ताकि वे समय पर अपडेट जारी कर सकें? यदि नहीं, तो आपको यह नहीं करना चाहिए।

+0

मैंने अभी इस जवाब को ऊपर उठाया है। मुझे एहसास है कि यह पोस्टर बिल्कुल पूछताछ नहीं कर रहा है, लेकिन यह जवाब बहुत उपयोगी है और पोस्टर सुझाव देने के खतरों को इंगित करता है और अतिरिक्त जानकारी देता है। सहायता अनुभाग के अनुसार, यह पोस्ट 'दिलचस्प, अच्छी तरह से शोध और उपयोगी' है। –

संबंधित मुद्दे