किसी PDF की हस्ताक्षर फ़ील्ड्स की जाँच करें, हस्ताक्षर मार्कर गिनें, और ByteRange अखंडता विंडो का विश्लेषण करें।
किसी PDF की हस्ताक्षर फ़ील्ड्स की जाँच करें, हस्ताक्षर मार्कर गिनें, और ByteRange अखंडता विंडो का विश्लेषण करें। किसी PDF की हस्ताक्षर फ़ील्ड्स की जाँच करें, हस्ताक्षर मार्कर गिनें, और ByteRange अखंडता विंडो का विश्लेषण करें।
पृष्ठभूमि
PDF हस्ताक्षर कैसे काम करते हैं
किसी PDF पर डिजिटल हस्ताक्षर पेज पर बनाया गया कोई स्टैंप नहीं है (हालाँकि एक
दृश्य हस्ताक्षर रूप भी मौजूद हो सकता है)। यह एक क्रिप्टोग्राफ़िक ऑब्जेक्ट है: एक
हस्ताक्षर शब्दकोश (signature dictionary) जिसका /Contents मान एक DER-एन्कोडेड PKCS#7
SignedData संरचना रखता है। वह संरचना हस्ताक्षर का प्रमाणपत्र, डाइजेस्ट
एल्गोरिदम, और PDF बाइट्स के एक सटीक खंड पर गणना किया गया हस्ताक्षर रखती है।
हस्ताक्षर शब्दकोश में /ByteRange ऐरे ठीक वह बताता है कि फ़ाइल की कौन-सी बाइट
रेंज हस्ताक्षर द्वारा कवर की गई हैं: आमतौर पर [0, a, b, c] जिसका अर्थ है
"बाइट 0..a-1 और b..b+c-1"। उन रेंजों के अंदर की हर चीज़ हस्ताक्षरित है; उनके
बाहर की हर चीज़ - हस्ताक्षर मान स्वयं - हस्ताक्षरित नहीं है। इस डिज़ाइन से
कोई PDF को उसकी अंतिम लंबाई पता किए बिना हस्ताक्षरित किया जा सकता है।
टैम्पर का पता लगाने में ByteRange क्यों मायने रखता है
किसी हस्ताक्षर को सत्यापित करने के लिए, कोई जाँचक हस्ताक्षरित रेंजों की बाइट्स
का हैश करता है और उसे PKCS#7 संरचना में एम्बेडेड डाइजेस्ट से तुलना करता है। यदि
कोई व्यक्ति हस्ताक्षर करने के बाद PDF को संपादित करता है, तो कवर की गई बाइट्स
बदल जाती हैं, पुनः गणना किया गया हैश भिन्न होता है, और सत्यापन विफल हो जाता है -
वही टैम्पर सिग्नल है। इसलिए /ByteRange अखंडता विंडो को परिभाषित करता है: कोई
हस्ताक्षर केवल उन बाइट्स की ही रक्षा कर सकता है जिन्हें वह कवर करता है। कोई ऐसा
हस्ताक्षर जिसकी रेंज पूरे दस्तावेज़ को कवर नहीं करती, फ़ाइल के बाकी हिस्से को
अज्ञात संशोधन के लिए खुला छोड़ देती है। यह जाँचक रिपोर्ट करता है कि क्या रेंज
मौजूद है और क्या वह बाइट 0 से शुरू होती है और हेड प्लस टेल कवर करती है - वही
आकार जो हर हस्ताक्षर उपकरण उत्पन्न करता है।
यह उपकरण क्या जाँचता है
यह बंडल की गई pdf-lib लाइब्रेरी (Apache-2.0) के साथ PDF को पार्स करता है और
रिपोर्ट करता है: पृष्ठ गणना; AcroForm में पाई गई हस्ताक्षर फ़ील्ड्स की संख्या;
कच्चे बाइट स्ट्रीम में /FT /Sig मार्करों की संख्या; क्या कोई /ByteRange ऐरे
मौजूद है; और क्या वह रेंज कैनोनिकल [0, head, tailStart, tailLen] आकार
रखती है। शून्य मार्कर वाली PDF में कोई हस्ताक्षर बिल्कुल नहीं है। मार्करों
वाली लेकिन बिना किसी पार्स किए जा सकने वाली रेंज वाली PDF असामान्य है और करीब
से देखने लायक है। पूर्ण क्रिप्टोग्राफ़िक सत्यापन - हैश पुनः गणना और प्रमाणपत्र
शृंखला का मान्यकरण - हस्ताक्षरकर्ता की पूर्ण शृंखला और एक ट्रस्ट स्टोर की
आवश्यकता होती है; यह पृष्ठ संरचनात्मक विश्लेषण पर केंद्रित है जो बताता है कि
क्या हस्ताक्षर मौजूद हैं और क्या अखंडता विंडो बरकरार है।
परिणामों की व्याख्या
एक से अधिक हस्ताक्षर मार्कर का अर्थ आमतौर पर कई हस्ताक्षर या एक समावेशी
(incremental) अपडेट है जिसने दस्तावेज़ को पुनः हस्ताक्षरित किया। किसी एन्क्रिप्टेड
PDF में हस्ताक्षर शब्दकोश पार्सर से छिपे हो सकते हैं; ignoreEncryption मोड का
उपयोग किया जाता है ताकि संरचना फिर भी रिपोर्ट हो। याद रखें: यह उपकरण संरचना की
जाँच करता है, पहचान की नहीं। यह नहीं बता सकता कि हस्ताक्षरकर्ता वही है जो वह
होने का दावा करता है - उसके लिए हस्ताक्षर को किसी विश्वसनीय रूट के विरुद्ध
सत्यापित करने की आवश्यकता होती है। इसका उपयोग अपने द्वारा प्राप्त दस्तावेज़ों पर
पहली-पास ट्राइज (triage) के रूप में करें, फिर किसी महत्वपूर्ण चीज़ के लिए अपने
प्लेटफ़ॉर्म के पूर्ण हस्ताक्षर सत्यापन के साथ आगे बढ़ें। विश्लेषण पूरी तरह आपके
ब्राउज़र में चलता है; आपकी PDF कहीं अपलोड नहीं की जाती।
अक्सर पूछे जाने वाले प्रश्न
क्या यह उपकरण क्रिप्टोग्राफ़िक रूप से हस्ताक्षर को सत्यापित करता है?
यह संरचनात्मक विश्लेषण करता है: यह हस्ताक्षर फ़ील्ड्स का पता लगाता है, /FT /Sig मार्करों को गिनता है, और ByteRange अखंडता विंडो के आकार की जाँच करता है। हैश पुनः गणना और प्रमापत्र-शृंखला मान्यकरण के लिए हस्ताक्षरकर्ता की शृंखला और एक ट्रस्ट स्टोर की आवश्यकता होती है, जो कोई ब्राउज़र पृष्ठ ऑफ़लाइन प्रदान नहीं कर सकता।
खाली ByteRange रिपोर्ट का क्या अर्थ है?
यदि कोई /ByteRange ऐरे नहीं मिलता लेकिन हस्ताक्षर मार्कर मौजूद हैं, तो PDF कोई असामान्य हस्ताक्षर लेआउट उपयोग कर सकती है या भ्रष्ट हो सकती है। ऐसी PDF जिसमें न तो मार्कर हैं और न ही ByteRange, में बस कोई हस्ताक्षर नहीं हैं।
समावेशी (incremental) अपडेट क्या है और यह क्यों मायने रखता है?
कई PDF उपकरण फ़ाइल के अंत में परिवर्तन जोड़ते हैं न कि उसे फिर से लिखते हैं। हर जोड़ नए ऑब्जेक्ट जोड़ या बदल सकता है, और पुनः-हस्ताक्षर एक नए मार्कर के रूप में दिखता है। यही कारण है कि कोई हस्ताक्षरित PDF एक से अधिक हस्ताक्षर मार्कर दिखा सकती है।
क्या कोई एन्क्रिप्टेड PDF अभी भी जाँची जा सकती है?
हाँ, सीमाओं के भीतर। जाँचक ignoreEncryption के साथ लोड होता है ताकि हस्ताक्षर शब्दकोश अभी भी दिखाई दें। /FT /Sig के लिए कच्चा बाइट स्कैन एन्क्रिप्शन की परवाह किए बिना काम करता है क्योंकि यह सादे टेक्स्ट स्ट्रीम में खोजता है।
क्या मेरी PDF कहीं अपलोड की जाती है?
नहीं। PDF को FileReader के साथ पढ़ा जाता है और बंडल की गई pdf-lib लाइब्रेरी का उपयोग करके पूरी तरह आपके ब्राउज़र में पार्स किया जाता है। नमूना PDF भी स्थानीय रूप से जनरेट होता है। कुछ भी आपके डिवाइस से बाहर नहीं जाता।
PKCS#7 / CAdES / PAdES क्या है?
PKCS#7 वह कंटेनर फ़ॉर्मैट है जो हस्ताक्षर डेटा रखता है (अब CMS के रूप में मानकीकृत)। PAdES उस फ़ॉर्मैट का PDF प्रोफ़ाइल है जिसका उपयोग यूरोपीय ई-हस्ताक्षर नियम करते हैं; यह दीर्घकालिक मान्यकरण विशेषताएँ जोड़ता है ताकि हस्ताक्षर वर्षों तक सत्यापन योग्य बने रहें।