प्रश्न और परिदृश्य
एक ऐसी सेवा डिज़ाइन करें जो छवियों, वीडियो और ऑडियो के लिए C2PA Content Credentials को सत्यापित करती है। यह बड़े मीडिया को स्वीकार करती है, हस्ताक्षरित मेनिफेस्ट संग्रहीत करती है, संपादन इतिहास दिखाती है, और अमान्य, गायब या अविश्वसनीय क्रेडेंशियल्स की व्याख्या करती है।
साक्षात्कारकर्ता क्या परीक्षण कर रहा है
- C2PA Manifest, Claim, हस्ताक्षर, और एसेट बाइंडिंग को सही ढंग से अलग करना।
- बड़ी फ़ाइलों, अतुल्यकालिक (asynchronous) सत्यापन, कैशिंग, वर्ज़निंग, और प्रमाणपत्र विश्वास को संभालना।
- यह स्पष्ट करना कि कोई क्रेडेंशियल सिमेंटिक सच्चाई को साबित नहीं करता है, और फिर ईमानदार फ़ॉलबैक और गोपनीयता नियंत्रण डिज़ाइन करना।
उत्तर देने से पहले स्पष्ट करने वाले प्रश्न
मीडिया प्रकार और अधिकतम आकार, अपलोड बनाम केवल-पढ़ने के लिए सत्यापन, विलंबता लक्ष्य, ऑडिट प्रतिधारण, ट्रस्ट रूट्स का स्वामित्व किसके पास है, और क्या तीसरे पक्ष मेनिफेस्ट प्राप्त कर सकते हैं, इसे स्पष्ट करें। यह भी स्पष्ट करें कि क्या सेवा केवल क्रिप्टोग्राफ़िक अखंडता की पुष्टि करती है या जारीकर्ताओं और संपादनों के बारे में व्यावसायिक स्तर के दावे करती है।
30-सेकंड का उत्तर ढांचा
मैं सिस्टम को अपलोड और ऑब्जेक्ट स्टोरेज, मेनिफेस्ट निष्कर्षण, क्रिप्टोग्राफ़िक सत्यापन, एक ट्रस्ट निर्देशिका, परिणाम APIs, और एक ऑडिट इंडेक्स में विभाजित करूँगा। मीडिया ऑब्जेक्ट स्टोरेज में रहता है; सत्यापन कंटेंट हैश द्वारा अतुल्यकालिक और निष्फल (idempotent) होता है। परिणाम हस्ताक्षर वैधता, श्रृंखला अखंडता, जारीकर्ता विश्वास, और अज्ञात स्थितियों को अलग करते हैं। वर्ज़न किए गए कैश निरसन या ट्रस्ट-निर्देशिका परिवर्तनों द्वारा अमान्य हो जाते हैं। उत्पाद को स्पष्ट रूप से बताना चाहिए कि C2PA घोषित प्रोवेनेंस और संपादनों की पुष्टि करता है, सिमेंटिक सच्चाई की नहीं।
चरण-दर-चरण विस्तृत उत्तर
- एक अपलोड URL जारी करें और एसेट हैश, आकार, मीडिया प्रकार और टेनेंट नीति रिकॉर्ड करें। ऑब्जेक्ट वर्ज़न और चेकसम सक्षम करें।
- अपलोड के बाद सत्यापन को कतारबद्ध (enqueue) करें। एक वर्कर एम्बेडेड या रिमोट मेनिफेस्ट निकालता है और Claim-टू-एसेट बाइंडिंग, हस्ताक्षर, टाइमस्टैम्प, पैरेंट संपादन श्रृंखला और डुप्लिकेट की जांच करता है।
- एक वर्ज़न वाली ट्रस्ट निर्देशिका के माध्यम से जारीकर्ता प्रमाणपत्रों, निरसन, और इच्छित उपयोग का समाधान करें। उस निर्देशिका वर्ज़न को प्रत्येक परिणाम के साथ संग्रहीत करें।
- अपरिवर्तनीय (immutable) ईवेंट और एक क्वेरी इंडेक्स लिखें। स्थितियों में मान्य, अमान्य, अविश्वसनीय, गायब, और अनिर्धारित शामिल होने चाहिए, जिसमें सभी मीडिया की प्रतिलिपि बनाने के बजाय साक्ष्य संदर्भ हों।
- एक सारांश, संपादन, जारीकर्ता, सत्यापन समय, और विफलता का कारण लौटाएं। अल्पकालिक URLs के साथ पूर्वावलोकन और मेनिफेस्ट डाउनलोड को सुरक्षित करें।
- हॉट एसेट्स को कैश करें, लेकिन कैश को एसेट वर्ज़न, विनिर्देश (specification) वर्ज़न, और ट्रस्ट-निर्देशिका वर्ज़न द्वारा कुंजीबद्ध करें। निरसन या सत्यापनकर्ता अपडेट पर बैच-अमान्य करें।
- दर सीमाएं (rate limits), मैलवेयर स्कैनिंग, पुनर्भ्यास (retries), डेड लेटर्स, और टेनेंट अलगाव का उपयोग करें। मल्टीपार्ट अपलोड API प्रक्रियाओं को विशाल फ़ाइलों को होल्ड करने से रोकते हैं।
POST /v1/assets/uploads
POST /v1/assets/{assetId}/verify
GET /v1/assets/{assetId}/provenance
GET /v1/trust-roots/{version}उच्च-गुणवत्ता वाला नमूना उत्तर
मैं पहले ट्रस्ट सीमा को परिभाषित करूँगा: एक C2PA Manifest प्रोवेनेंस और संपादन दावों पर एक सत्यापन योग्य हस्ताक्षर है, कोई सच्चाई वर्गीकारक नहीं। अपलोड सेवा ऑब्जेक्ट वर्ज़न और हैश संग्रहीत करती है; अतुल्यकालिक वर्कर एसेट बाइंडिंग, हस्ताक्षर, संपादन श्रृंखला, टाइमस्टैम्प, और प्रमाणपत्र स्थिति की पुष्टि करते हैं। परिणाम API अखंडता, जारीकर्ता विश्वास, लापता क्रेडेंशियल्स, और अनिर्धारित परिणामों को अलग करती है, और विनिर्देश तथा ट्रस्ट-निर्देशिका वर्ज़न रिकॉर्ड करती है। वर्ज़न वाले कैश को निरसन के बाद अमान्य किया जा सकता है; अपरिवर्तनीय ऑडिट ईवेंट और अल्पकालिक मीडिया URLs जांच की रक्षा करते हैं। यह "हस्ताक्षर मान्य" को "तथ्यात्मक रूप से सत्य" में बदले बिना स्केल करता है।
सामान्य गलतियाँ
- C2PA को AI डिटेक्टर या सच्चाई के ऑरेकल के रूप में मानना।
- वर्तमान एसेट बाइट्स से इसकी बाइंडिंग की जांच किए बिना हस्ताक्षर को सत्यापित करना।
- एक वैध प्रमाणपत्र श्रृंखला को एक विश्वसनीय जारीकर्ता के बराबर मानना।
- ऑब्जेक्ट स्टोरेज और कतारों के बजाय सिंक्रोनस API हैंडलर्स के माध्यम से भारी मीडिया भेजना।
- विनिर्देश, सत्यापनकर्ता, और ट्रस्ट-निर्देशिका वर्ज़न को छोड़ना, जिससे परिणाम पुनरुत्पादित न किए जा सकें।
अनुवर्ती प्रश्न और उत्तर
कोई संपादन केवल पुराने हस्ताक्षर को क्यों नहीं रख सकता है?
संपादन एसेट बाइट्स को बदल देता है। एक संपादक को एक नया Manifest जोड़ना चाहिए, एक पैरेंट-चाइल्ड श्रृंखला बनानी चाहिए, और वर्तमान वर्ज़न को फिर से बांधना चाहिए। पुराना दावा इतिहास बना रह सकता है, लेकिन यह वर्तमान बाइट्स पर हस्ताक्षर नहीं कर सकता है।
क्या क्रेडेंशियल का गायब होना यह दर्शाता है कि सामग्री नकली है?
नहीं। इसका मतलब है कि कोई सत्यापन योग्य प्रोवेनेंस दावा उपलब्ध नहीं है। कवरेज सीमाओं के साथ अज्ञात या गायब दिखाएं; पारिस्थितिकी तंत्र के बाहर की सामग्री को असत्य के रूप में लेबल न करें।
आप ट्रस्ट-निर्देशिका परिवर्तनों को कैसे संभालते हैं?
निर्देशिका वर्ज़न और सत्यापन समय संग्रहीत करें, मूल साक्ष्य बनाए रखें, और अपडेट के बाद अतुल्यकालिक रूप से पुन: सत्यापित करें। किसी भी स्थिति परिवर्तन के कारण के साथ एक नया परिणाम वर्ज़न प्रकाशित करें।
आप Manifest गोपनीयता लीक को कैसे रोकते हैं?
टेनेंट- और फ़ील्ड-स्तरीय दृश्यता का उपयोग करें, डिफ़ॉल्ट रूप से केवल एक आवश्यक सारांश लौटाएं, संवेदनशील फ़ील्ड को एन्क्रिप्ट करें, अल्पकालिक डाउनलोड URLs का उपयोग करें, और अभिनेता और उद्देश्य के साथ प्रत्येक एक्सेस का ऑडिट करें।