ข้ามไปยังเนื้อหา

การลงนาม PDF ด้วยลายเซ็น PAdES baseline (ย้ายแล้ว)

คำแนะนำทีละขั้นตอนสำหรับการลงนามที่เคยอยู่ในหน้านี้ถูกแทนที่แล้ว โปรดใช้เรซิปีฉบับหลักแทน:

การลงนาม PDF ด้วย PAdES B-B แล้วขยายไปยัง PAdES B-T

หน้าเวอร์ชันก่อนหน้านี้ระบุว่าเส้นทางระดับสูง Document::setSignature()save() ยังไม่ได้เชื่อมต่อ และจะโยน NotImplementedException ข้อความดังกล่าวไม่เป็นจริงอีกต่อไป ปัจจุบันเส้นทางระดับสูงเขียนลายเซ็นจริงแล้ว

Document::setSignature($cert, SignatureLevel::PAdES_B_B)->save() (และ output() / getPdfData() ที่เทียบเท่ากัน) จะเขียนฟิลด์ /Sig พร้อม /ByteRange และอ็อบเจกต์ SignedData แบบ Cryptographic Message Syntax (CMS) ที่เข้ารหัสด้วย Distinguished Encoding Rules (DER) ลงในรายการ Contents ของ signature dictionary โครงสร้างนี้คือสิ่งที่ ISO 32000-2 §12.8 กำหนดไว้สำหรับ ETSI.CAdES.detached SubFilter ผลลัพธ์ตรวจสอบได้แบบ CMS: ตัวตรวจสอบ CMS/PKCS#7 (Public-Key Cryptography Standards #7) มาตรฐานสามารถแยกวิเคราะห์และตรวจสอบได้

  • B-B — ระดับ Core — ถูกสร้างขึ้นโดยตรงผ่านเส้นทางนี้
  • B-T เพิ่ม RFC 3161 signature-time-stamp หนึ่งรายการเมื่อส่ง TsaClient ในการเรียกครั้งเดียวกัน
  • B-LT / B-LTA เข้าถึงได้ผ่านเส้นทางระดับสูงเดียวกัน (setSignature($cert, SignatureLevel::PAdES_B_LTA, $tsaClient)->save()) เมื่อมีการติดตั้งแพ็กเกจ Pro และ Enterprise แล้ว หากไม่ได้ติดตั้ง การเรียกจะล้มเหลวแบบปิด (fail closed) แทนที่จะเขียน revision ระยะยาวที่ไม่สมบูรณ์ สำหรับเอกสารที่เข้ารหัสลับ เส้นทาง B-LT/B-LTA จะล้มเหลวแบบปิด (fail closed) เช่นกัน

เส้นทางระดับล่าง NextPDF\Security\Signature\DigitalSigner ยังคงรองรับอยู่ เรซิปีฉบับหลักด้านล่างอธิบายขั้นตอนตั้งแต่ต้นจนจบ เส้นทางระดับสูงเป็นเพียงชั้นอำนวยความสะดวกแบบบางที่ครอบเอนจินการลงนามตัวเดียวกัน ชุดทดสอบการรวมระบบ (integration suite) ทดสอบทั้งสองเส้นทางและสร้างอ็อบเจกต์ CMS จริงที่แยกวิเคราะห์ได้

ข้อควรระวัง U-1 (ขอบเขตของคำกล่าวอ้าง) “ตรวจสอบได้แบบ CMS” หมายความว่าอ็อบเจกต์ที่สร้างขึ้น เป็น CMS SignedData ที่มีรูปแบบถูกต้องตาม RFC 5652 และ ISO 32000-2 §12.8 ทั้งนี้ไม่ใช่การยืนยันความสอดคล้องตามโปรไฟล์ baseline ของ ETSI EN 319 142-1 หรือความสมบูรณ์ทางกฎหมาย ส่วนของมาตรฐานที่ว่าด้วยระดับ baseline ไม่ได้อยู่ใน คลังข้อมูลที่ใช้ตรวจสอบ ข้อกำหนด signature-time-stamp ของ B-T ได้รับการตรวจสอบ เทียบกับ ETSI EN 319 122-1 §5.3 ร่วมกับ RFC 3161, RFC 5652, RFC 5816, และ ISO 32000-2 §12.8 B-LT/B-LTA สร้างโครงสร้างเพื่อการตรวจสอบความถูกต้องระยะยาว (DSS dictionary พร้อม revision แบบ DocTimeStamp) แต่ไม่ได้ระบุว่า ได้รับการทดสอบความสอดคล้องตามโปรไฟล์ ตัวตรวจสอบอิสระเป็นผู้ตัดสินความสอดคล้องและ ความสมบูรณ์ทางกฎหมาย

ข้อเท็จจริงเชิงโครงสร้างที่หน้าเดิมระบุไว้เกี่ยวกับ artifact บนดิสก์ยังคงถูกต้อง เรซิปีที่ใช้แทนกล่าวย้ำข้อเท็จจริงเหล่านี้พร้อมหลักฐาน:

  • ค่าลายเซ็นถูกจัดเก็บไว้ในรายการ Contents ของ signature dictionary (ISO 32000-2 §12.8.1)
  • ค่า digest คำนวณจาก ByteRange โดยไม่รวมค่าลายเซ็นเอง (ISO 32000-2 §12.8.1)

หน้านี้ไม่ได้ยืนยันว่าลายเซ็นที่ได้นั้นสมบูรณ์ทางกฎหมาย ความสมบูรณ์ทางกฎหมายขึ้นอยู่กับใบรับรอง, trust anchor ของใบรับรอง และนโยบายของตัวตรวจสอบ ปัจจัยทั้งหมดเหล่านั้นอยู่นอกขอบเขตของไลบรารีนี้