हस्ताक्षर समझौता का पता लगाना
हस्ताक्षर समझौता का पता लगाना
SignaturesCompromiseDetector इस मार्गदर्शिका का प्रवेश बिंदु है: यह एक हस्ताक्षरित दस्तावेज़ के संशोधन इतिहास की जाँच करता है ताकि यह पता लगाया जा सके कि अंतिम हस्ताक्षर लागू होने के बाद सामग्री जोड़ी गई है या नहीं, और जो यह पाता है उसे एक CompromiseCheckResult के रूप में रिपोर्ट करता है। यह सुरक्षा सतह इस ज्ञान आधार के क्लस्टर द्वारा कवर की गई है — यह हस्ताक्षर बनाने या लागू करने, या दस्तावेज़ एन्क्रिप्शन को कवर नहीं करता; यह केवल उन हस्ताक्षरों की जाँच करता है जो पहले से ही दस्तावेज़ पर मौजूद हैं।
समझौता जांच चलाना
SignaturesCompromiseDetector को उस दस्तावेज़ के साथ बनाएं जिसे आप जांचना चाहते हैं, फिर SignaturesCompromiseDetector.check() को कॉल करें। यह जांच दस्तावेज़ पर पहले से मौजूद प्रत्येक हस्ताक्षर को क्रमबद्ध करती है और अंतिम हस्ताक्षरित संशोधन के बाद जोड़े गए अनहस्ताक्षरित बाइट्स की तलाश करती है — यह संकेत है कि सामग्री बाद में जोड़ी गई हो सकती है — जबकि वैध दीर्घकालिक-सत्यापन सामग्री (जैसे दस्तावेज़ सुरक्षा स्टोर या संग्रह टाइमस्टैम्प) को सहन करती है जो बाद में, कवरिंग हस्ताक्षर द्वारा जोड़ी गई है।
परिणाम की व्याख्या
SignaturesCompromiseDetector.check() चार गुणों के साथ एक CompromiseCheckResult लौटाता है:
CompromiseCheckResult.has_compromised_signatures—Trueयदि किसी भी हस्ताक्षर ने छेड़छाड़ संकेतक दिखाया।CompromiseCheckResult.compromised—CompromiseCheckResult.has_compromised_signaturesका प्रतिबिंब है, जिसे केवल-पढ़ने योग्य सुविधा उपनाम के रूप में प्रदान किया गया है।CompromiseCheckResult.signatures_coverage— दस्तावेज़ पर डिटेक्टर द्वारा जांचे गए हस्ताक्षरों की संख्या।CompromiseCheckResult.reasons— एक सूची जिसमें छोटे स्ट्रिंग्स होते हैं जो यह वर्णन करती हैं कि दस्तावेज़ को कब और क्यों फ़्लैग किया गया।
बिना हस्ताक्षर वाले दस्तावेज़, या पूरी तरह से कोई दस्तावेज़ न होने पर, इसे समझौता न किया गया बताया जाता है, जहाँ CompromiseCheckResult.signatures_coverage का मान 0 के बराबर होता है।
टिप्स और सर्वोत्तम प्रथाएँ
CompromiseCheckResult.compromisedऔरCompromiseCheckResult.has_compromised_signaturesको परस्पर वैकल्पिक मानें — वे हमेशा समान मान रिपोर्ट करते हैं।CompromiseCheckResult.signatures_coverageकी जाँच करें इससे पहले कि आपFalseपरिणाम पर भरोसा करें:0कवरेज का मतलब है कि डिटेक्टर ने जांच के लिए कोई हस्ताक्षर नहीं पाया, न कि यह कि मौजूदा हस्ताक्षर अखंड पाए गए।- जब
CompromiseCheckResult.has_compromised_signaturesTrueहो तोCompromiseCheckResult.reasonsपढ़ें — यह सूची बताती है कि कौन सा ह्यूरिस्टिक ट्रिगर हुआ, जो लॉगिंग या परिणाम को समीक्षक तक पहुँचाने में उपयोगी है। SignaturesCompromiseDetectorसंशोधन इतिहास में छेड़छाड़ संकेतों की जांच करता है; यह स्वयं क्रिप्टोग्राफिक हस्ताक्षर की अखंडता को सत्यापित नहीं करता, इसलिए जहाँ यह आपके कार्यप्रवाह में महत्वपूर्ण हो, इसे दस्तावेज़ के अपने हस्ताक्षर-मान्यकरण परिणामों के साथ जोड़ें।
आम समस्याएँ
| समस्या | कारण | समाधान |
|---|---|---|
CompromiseCheckResult.signatures_coverage 0 है एक दस्तावेज़ के लिए जिसे आप जानते हैं कि वह हस्ताक्षरित है | SignaturesCompromiseDetector बिना दस्तावेज़ के बनाया गया था, या दस्तावेज़ ऑब्जेक्ट में सुलभ हस्ताक्षर नहीं हैं | कॉल करने से पहले, पुष्टि करें कि SignaturesCompromiseDetector को पास किया गया दस्तावेज़ अपने हस्ताक्षर उजागर करता है, फिर SignaturesCompromiseDetector.check() को कॉल करें |
CompromiseCheckResult.reasons खाली है जबकि आप एक व्याख्या की अपेक्षा कर रहे थे | CompromiseCheckResult.has_compromised_signatures इस दस्तावेज़ के लिए False है | कारण केवल तब ही भरे जाते हैं जब वास्तव में कोई समझौता संकेतक पाया गया हो; स्वच्छ परिणाम पर खाली सूची की उम्मीद की जाती है। |
| एक वैध रूप से अपडेट किया गया PDF (जैसे कि जिसमें दीर्घकालिक-प्रमाणीकरण टाइमस्टैम्प जोड़ा गया हो) को समझौता किया हुआ चिह्नित किया जाता है। | बाद में जोड़ा गया भाग अगले हस्ताक्षर द्वारा पूरी तरह से कवर नहीं किया गया है या इसे केवल प्रमाणीकरण सामग्री के रूप में पहचाना नहीं गया है। | सही कवरेज वाला हस्ताक्षर या टाइमस्टैम्प द्वारा अपडेट की पुष्टि करने के बाद जाँच को फिर से चलाएँ, और विशिष्ट ट्रिगर के लिए CompromiseCheckResult.reasons की जांच करें। |
FAQ
वास्तव में CompromiseCheckResult.compromised क्या जांचता है?
यह CompromiseCheckResult.has_compromised_signatures के समान मान रिपोर्ट करता है: क्या SignaturesCompromiseDetector.check() ने दस्तावेज़ के हस्ताक्षरों में किसी भी छेड़छाड़ संकेत को पाया है।
क्या signatures_coverage का 0 होना दस्तावेज़ को सुरक्षित दर्शाता है?
नहीं — इसका मतलब है कि जाँच के लिए कोई हस्ताक्षर नहीं मिला। SignaturesCompromiseDetector उन हस्ताक्षरों की रिपोर्ट नहीं कर सकता जिन्हें वह देख नहीं सकता, इसलिए 0 कवरेज एक “जाँच के लिए कुछ नहीं” परिणाम है, न कि अखंडता की पुष्टि।
क्या SignaturesCompromiseDetector क्रिप्टोग्राफिक हस्ताक्षर बना या सत्यापित कर सकता है?
नहीं। यह केवल दस्तावेज़ के मौजूदा संशोधन इतिहास की जाँच करता है यह पता लगाने के लिए कि अंतिम हस्ताक्षर के बाद सामग्री जोड़ी गई थी या नहीं। हस्ताक्षर बनाना, लागू करना, या क्रिप्टोग्राफ़िक रूप से मान्य करना इस क्लास के दायरे से बाहर है।
क्या हस्ताक्षर के बाद वैध टाइमस्टैम्प जोड़ने से हमेशा समझौता खोज ट्रिगर होगी?
ज़रूरी नहीं। डिटेक्टर इस तरह डिज़ाइन किया गया है कि वह बाद में जोड़ी गई चीज़ को सहन कर सके, जब वह बाद के हस्ताक्षर द्वारा कवर की गई हो, या जब वह केवल वैधता सामग्री जोड़ती हो न कि नई सामग्री। यदि आपको कोई अप्रत्याशित खोज मिलती है तो CompromiseCheckResult.reasons देखें।
API Reference सारांश
| क्लास/मेथड | विवरण |
|---|---|
SignaturesCompromiseDetector | अंतिम हस्ताक्षर के बाद हस्ताक्षरित दस्तावेज़ में छेड़छाड़ संकेतकों की जांच करता है। |
SignaturesCompromiseDetector.check() | जाँच चलाता है और एक CompromiseCheckResult लौटाता है |
CompromiseCheckResult | समझौता जाँच का परिणाम |
CompromiseCheckResult.compromised | CompromiseCheckResult.has_compromised_signatures के लिए केवल-पढ़ने योग्य उपनाम |
CompromiseCheckResult.has_compromised_signatures | क्या कोई छेड़छाड़ संकेतक मिला |
CompromiseCheckResult.signatures_coverage | जांच की गई हस्ताक्षरों की संख्या |
CompromiseCheckResult.reasons | किसी भी खोज को समझाने वाली संक्षिप्त strings |