इस नीति के बारे में कोई भी सवाल पूछने के लिए, कृपया सीटी नीति फ़ोरम पर जाएं: ct-policy@chromium.org
जब किसी कनेक्शन के ट्रांसपोर्ट लेयर सिक्योरिटी (TLS) सर्टिफ़िकेट की पुष्टि, सर्टिफ़िकेट पारदर्शिता के लिए ऑप्ट-इन करने वाले ऐप्लिकेशन में की जाती है, तो यह जांच की जाती है कि वह Android सर्टिफ़िकेट पारदर्शिता (सीटी) नीति का पालन करता है या नहीं. जिन सर्टिफ़िकेट के साथ हस्ताक्षर किए गए सर्टिफ़िकेट टाइमस्टैंप (एससीटी) मौजूद होते हैं और जो इस नीति के मुताबिक होते हैं उन्हें सीटी के मुताबिक कहा जाता है.
सीटी का पालन करने के लिए, सर्टिफ़िकेट और उससे जुड़े एससीटी का इस्तेमाल किया जाता है. ये सर्टिफ़िकेट, सर्टिफ़िकेट की पुष्टि के दौरान लोकप्रिय TLS लाइब्रेरी (इसमें Android की पहले से मौजूद Conscrypt भी शामिल है) से लागू की गई तकनीकी ज़रूरी शर्तों को पूरा करते हैं. इन ज़रूरी शर्तों के बारे में इस नीति में बताया गया है.
CT लॉग स्टेटस
Android में सीटी के अनुपालन का पता लगाने के लिए, सीटी लॉग से एससीटी का आकलन किया जाता है. साथ ही, यह पक्का किया जाता है कि जांच के समय ये लॉग सही स्थिति में हों. सीटी लॉग की संभावित स्थितियों का सेट यह है:
Pending
Qualified
Usable
ReadOnly
Retired
Rejected
Android में सीटी के अनुपालन से जुड़ी ज़रूरी शर्तों को समझने में मदद पाने के लिए, Chrome के दस्तावेज़ में सीटी लॉग के लाइफ़साइकल के बारे में जानकारी दी गई है. इसमें इन स्थितियों की परिभाषा, हर स्थिति में लॉग की ज़रूरी शर्तों के साथ-साथ, इन स्थितियों का Android के व्यवहार पर पड़ने वाले असर के बारे में पूरी जानकारी दी गई है.
सीटी के मुताबिक सर्टिफ़िकेट
कोई TLS सर्टिफ़िकेट, सीटी के अनुपालन का पालन करता है, अगर उसके साथ एससीटी का ऐसा सेट हो जो यहां बताई गई कम से कम एक शर्त को पूरा करता हो. यह इस बात पर निर्भर करता है कि एससीटी, Android को कैसे डिलीवर किए जाते हैं. Android के उन ऐप्लिकेशन में जिनमें सीटी लागू किया गया है, सार्वजनिक तौर पर भरोसेमंद सभी TLS सर्टिफ़िकेट के लिए, सीटी का पालन करना ज़रूरी है, ताकि पुष्टि की जा सके. हालांकि, ऐसे सर्टिफ़िकेट जिन्हें सीटी में लॉग नहीं किया गया है या जिनमें एससीटी की संख्या कम है उन्हें गलत तरीके से जारी नहीं माना जाता.
सीटी के अनुपालन के लिए किसी सर्टिफ़िकेट का आकलन करते समय, Android कई बातों को ध्यान में रखता है. जैसे, कितने एससीटी मौजूद हैं, एससीटी जारी करने वाले सीटी लॉग को कौन चलाता है, और सर्टिफ़िकेट की पुष्टि करने के समय और सीटी लॉग से एससीटी बनाने के समय, एससीटी जारी करने वाले सीटी लॉग की स्थिति क्या थी.
Android पर एससीटी को दिखाने के तरीके के आधार पर, सीटी का पालन करने के लिए इनमें से कोई एक शर्त पूरी की जा सकती है:
एम्बेड किए गए एससीटी:
- किसी ऐसे सीटी लॉग से कम से कम एक एम्बेड किया गया एससीसी जो जांच के समय
Qualified
,Usable
याReadOnly
था; और - कम से कम N अलग-अलग सीटी लॉग से एम्बेड किए गए एससीटी मौजूद हैं, जो जांच के समय
Qualified
,Usable
,ReadOnly
याRetired
थे. यहां N की जानकारी नीचे दी गई टेबल में दी गई है; और - दूसरी ज़रूरी शर्त को पूरा करने वाले एससीटी में, कम से कम दो एससीटी ऐसे होने चाहिए जिन्हें Android ने अलग-अलग सीटी लॉग ऑपरेटर से जारी किया हो; और
- दूसरी ज़रूरी शर्त को पूरा करने वाले एससीटी में से, कम से कम एक एससीटी को ऐसे लॉग से जारी किया जाना चाहिए जिसे Android ने आरएफ़सी 6962 के मुताबिक माना हो.
सर्टिफ़िकेट की लाइफ़टाइम | अलग-अलग सीटी लॉग से एससीटी की संख्या |
---|---|
180 दिन से कम | 2 |
180 दिनों से ज़्यादा | 3 |
ओसीएसपी या टीएलएस के ज़रिए डिलीवर किए गए एससीटी:
- ऐसे सीटी लॉग से कम से कम दो एससीटी, जो जांच के समय
Qualified
,Usable
याReadOnly
थे; और - पहली ज़रूरी शर्त को पूरा करने वाले एससीटी में, कम से कम दो एससीटी ऐसे होने चाहिए जिन्हें Android ने अलग-अलग सीटी लॉग ऑपरेटर से जारी किया हो; और
- पहली शर्त को पूरा करने वाले एससीटी में से, कम से कम एक एससीटी को ऐसे सीटी लॉग से जारी किया जाना चाहिए जिसे Android ने RFC6962 के मुताबिक माना हो.
एम्बेड किए गए एससीटी और ओसीएसपी या टीएलएस का इस्तेमाल करके डिलीवर किए गए एससीटी, दोनों के लिए लॉग ऑपरेटर की यूनीकनेस को इस तरह से तय किया जाता है कि log_list.json के ऑपरेटर सेक्शन में अलग-अलग एंट्री हों.
ऐसा बहुत कम होता है कि कोई सीटी लॉग अपने लाइफ़टाइम के दौरान ऑपरेटर बदले. हालांकि, सीटी लॉग में previous_operators
की सूची शामिल की जा सकती है. साथ ही, इसमें आखिरी टाइमस्टैंप भी शामिल होता है, जिससे पता चलता है कि इस लॉग को पिछले ऑपरेटर ने चलाया था.
लॉग ऑपरेटर में हुए बदलावों से मौजूदा सर्टिफ़िकेट के काम न करने से रोकने के लिए, हर एससीटी के लॉग ऑपरेटर को एससीटी जारी करने के समय ऑपरेटर माना जाता है. इसके लिए, एससीटी के टाइमस्टैंप की तुलना previous_operators
के टाइमस्टैंप से की जाती है.
अहम जानकारी
जब तक हैंडशेक में दिखाए गए एससीटी के किसी कॉम्बिनेशन से, सीटी के अनुपालन से जुड़ी ऊपर बताई गई शर्तों में से कोई एक शर्त पूरी होती है, तब तक अतिरिक्त एससीटी का असर, सर्टिफ़िकेट के सीटी के अनुपालन के स्टेटस पर नहीं पड़ेगा. भले ही, एससीटी का स्टेटस कुछ भी हो.
किसी सर्टिफ़िकेट के सीटी के अनुपालन में योगदान देने के लिए, ज़रूरी है कि अगर कोई एससीटी मौजूद है, तो उसे लॉग के Retired
टाइमस्टैंप से पहले जारी किया गया हो.
Android, सबमिट किए गए सभी एससीटी में से सबसे पहले सबमिट किए गए एससीटी का इस्तेमाल करता है. इससे, सीटी लॉग Retired
के टाइमस्टैंप के हिसाब से, सीटी के अनुपालन का आकलन किया जाता है.
यह उन असामान्य मामलों के लिए है जिनमें सर्टिफ़िकेट लॉग करने के अनुरोध सबमिट करने की प्रोसेस के दौरान, सीटी लॉग को रिटायर कर दिया जाता है.
"एम्बेड किया गया एससीटी" का मतलब है कि सर्टिफ़िकेट में मौजूद SignedCertificateTimestampList
X.509v3 एक्सटेंशन का इस्तेमाल करके डिलीवर किया गया एससीटी. कई TLS सर्वर, ओसीएसपी स्टेपल या TLS एक्सटेंशन के साथ काम नहीं करते. इसलिए, CA को जारी किए गए सर्टिफ़िकेट में एससीटी जोड़ने के लिए तैयार रहना चाहिए, ताकि Android में पुष्टि करने या ईवी ट्रीटमेंट की सुविधा को सही तरीके से लागू किया जा सके.
Android में सीटी लॉग कैसे जोड़े जाते हैं
सीटी लॉग को Qualified
कैसे बनाया जा सकता है और किन वजहों से उन्हें Retired
बनाया जा सकता है, इसकी शर्तें Chrome सीटी लॉग नीति में देखी जा सकती हैं.
सीटी लागू करने का टाइम आउट
Google हर दिन एक नई सीटी लॉग सूची पब्लिश करता है, जिसमें एक नया
log_list_timestamp
होता है. पुष्टि करने के लिए, Android डिवाइस दिन में एक बार इस सूची का नया वर्शन डाउनलोड करने की कोशिश करेंगे. अगर किसी भी समय डिवाइस पर कोई लॉग सूची उपलब्ध नहीं है या लॉग सूची का टाइमस्टैंप 70 दिनों से ज़्यादा पुराना है, तो सीटी लागू करने की सुविधा बंद हो जाएगी.
यह टाइम आउट, सीटी नेटवर्क को यह भरोसा दिलाता है कि नए सीटी लॉग, Qualified
के तौर पर मार्क होने के बाद, तय समय के अंदर सुरक्षित तरीके से 'इस्तेमाल किए जा सकने वाले' के तौर पर मार्क हो जाते हैं.