การลงนาม PDF ด้วยลายเซ็น PAdES baseline (ย้ายแล้ว)
เรซิปีนี้ถูกย้ายแล้ว
หัวข้อที่มีชื่อว่า “เรซิปีนี้ถูกย้ายแล้ว”คำแนะนำทีละขั้นตอนสำหรับการลงนามที่เคยอยู่ในหน้านี้ถูกแทนที่แล้ว โปรดใช้เรซิปีฉบับหลักแทน:
เหตุใดหน้านี้จึงเปลี่ยนแปลง (การแก้ไข)
หัวข้อที่มีชื่อว่า “เหตุใดหน้านี้จึงเปลี่ยนแปลง (การแก้ไข)”หน้าเวอร์ชันก่อนหน้านี้ระบุว่าเส้นทางระดับสูง 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 ของใบรับรอง และนโยบายของตัวตรวจสอบ ปัจจัยทั้งหมดเหล่านั้นอยู่นอกขอบเขตของไลบรารีนี้