একটি PDF-এ স্বাক্ষর ক্ষেত্র পরীক্ষা করুন, স্বাক্ষর মার্কার গণনা করুন এবং ByteRange অখণ্ডতা উইন্ডো বিশ্লেষণ করুন।
একটি PDF-এ স্বাক্ষর ক্ষেত্র পরীক্ষা করুন, স্বাক্ষর মার্কার গণনা করুন এবং ByteRange অখণ্ডতা উইন্ডো বিশ্লেষণ করুন। একটি PDF-এ স্বাক্ষর ক্ষেত্র পরীক্ষা করুন, স্বাক্ষর মার্কার গণনা করুন এবং ByteRange অখণ্ডতা উইন্ডো বিশ্লেষণ করুন।
পটভূমি
PDF স্বাক্ষর কীভাবে কাজ করে
PDF-এ একটি ডিজিটাল স্বাক্ষর পৃষ্ঠায় আঁকা একটি স্ট্যাম্প নয় (যদিও একটি
ভিজ্যুয়াল স্বাক্ষর চেহারা থাকতে পারে)। এটি একটি ক্রিপ্টোগ্রাফিক অবজেক্ট: একটি
স্বাক্ষর অভিধান যার /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 অস্বাভাবিক এবং ঘনিষ্ঠভাবে দেখার মতো। সম্পূর্ণ ক্রিপ্টোগ্রাফিক
যাচাই -- হ্যাশ পুনর্গণনা এবং সার্টিফিকেট চেইন বৈধকরণ --
স্বাক্ষরকারীর সম্পূর্ণ চেইন এবং একটি ট্রাস্ট স্টোর প্রয়োজন; এই পৃষ্ঠা সেই
কাঠামোগত বিশ্লেষণে ফোকাস করে যা প্রকাশ করে স্বাক্ষর বিদ্যমান কি না এবং
অখণ্ডতা উইন্ডো অক্ষত আছে কি না।
ফলাফল ব্যাখ্যা
একাধিক স্বাক্ষর মার্কার সাধারণত একাধিক স্বাক্ষর বা একটি
ইনক্রিমেন্টাল আপডেট বোঝায় যা ডকুমেন্ট পুনরায় স্বাক্ষর করেছে। একটি এনক্রিপ্টেড PDF পার্সার থেকে
স্বাক্ষর অভিধান লুকাতে পারে; ignoreEncryption মোড ব্যবহার করা হয় যাতে
কাঠামোটি এখনও রিপোর্ট করা হয়। মনে রাখবেন: এই টুল কাঠামো পরীক্ষা করে, পরিচয়
নয়। এটি আপনাকে বলতে পারে না স্বাক্ষরকারী তারা যা দাবি করে তা কি না --
এর জন্য একটি বিশ্বস্ত রুটের বিরুদ্ধে সার্টিফিকেট যাচাই করা প্রয়োজন। আপনি প্রাপ্ত
ডকুমেন্টে প্রাথমিক-পাস ট্রায়েজ হিসাবে এটি ব্যবহার করুন, তারপর গুরুত্বপূর্ণ কিছুর জন্য আপনার
প্ল্যাটফর্মের সম্পূর্ণ স্বাক্ষর যাচাই অনুসরণ করুন। বিশ্লেষণ
সম্পূর্ণরূপে আপনার ব্রাউজারে চলে; আপনার PDF কখনো আপলোড হয় না।
সচরাচর জিজ্ঞাসিত প্রশ্ন
এই টুল কি ক্রিপ্টোগ্রাফিকভাবে স্বাক্ষর যাচাই করে?
এটি কাঠামোগত বিশ্লেষণ করে: এটি স্বাক্ষর ক্ষেত্র শনাক্ত করে, /FT /Sig মার্কার গণনা করে, এবং ByteRange অখণ্ডতা উইন্ডোর আকৃতি পরীক্ষা করে। সম্পূর্ণ হ্যাশ পুনর্গণনা এবং সার্টিফিকেট-চেইন বৈধকরণের জন্য স্বাক্ষরকারীর চেইন এবং একটি ট্রাস্ট স্টোর প্রয়োজন, যা একটি ব্রাউজার পৃষ্ঠা অফলাইনে সরবরাহ করতে পারে না।
একটি খালি ByteRange রিপোর্টের অর্থ কী?
যদি কোনো /ByteRange অ্যারে পাওয়া না যায় কিন্তু স্বাক্ষর মার্কার থাকে, তাহলে PDF একটি অস্বাভাবিক স্বাক্ষর লেআউট ব্যবহার করতে পারে বা দূষিত হতে পারে। মার্কার বা ByteRange কোনোটিই নেই এমন একটি PDF-এ কেবল কোনো স্বাক্ষর নেই।
ইনক্রিমেন্টাল আপডেট কী এবং কেন এটি গুরুত্বপূর্ণ?
অনেক PDF টুল ফাইল পুনর্লিখনের পরিবর্তে শেষে পরিবর্তন যুক্ত করে। প্রতিটি যুক্তি অবজেক্ট যোগ বা প্রতিস্থাপন করতে পারে, এবং একটি পুনরায় স্বাক্ষর নতুন মার্কার হিসাবে দেখা যায়। এ কারণে একটি স্বাক্ষরিত PDF একাধিক স্বাক্ষর মার্কার দেখাতে পারে।
একটি এনক্রিপ্টেড PDF কি এখনও পরীক্ষা করা যায়?
হ্যাঁ, সীমার মধ্যে। পরীক্ষক ignoreEncryption সহ লোড হয় যাতে স্বাক্ষর অভিধান এখনও দৃশ্যমান থাকে। /FT /Sig-এর জন্য কাঁচা বাইট স্ক্যান এনক্রিপশন নির্বিশেষে কাজ করে কারণ এটি প্লেইনটেক্সট স্ট্রিম অনুসন্ধান করে।
আমার PDF কি কোথাও আপলোড হয়?
না। PDF FileReader দিয়ে পড়া হয় এবং বান্ডেল করা pdf-lib লাইব্রেরি ব্যবহার করে সম্পূর্ণরূপে আপনার ব্রাউজারে পার্স করা হয়। নমুনা PDF-ও স্থানীয়ভাবে তৈরি হয়। কিছুই আপনার ডিভাইস ছাড়ে না।
PKCS#7 / CAdES / PAdES কী?
PKCS#7 হলো স্বাক্ষর ডেটা ধারণকারী কন্টেইনার ফরম্যাট (এখন CMS হিসাবে মানসম্মত)। PAdES হলো সেই ফরম্যাটের PDF প্রোফাইল যা ইউরোপীয় ই-স্বাক্ষর নিয়ম দ্বারা ব্যবহৃত হয়; এটি দীর্ঘমেয়াদী বৈধতা বৈশিষ্ট্য যোগ করে যাতে স্বাক্ষর বছরের পর বছর যাচাইযোগ্য থাকে।