การตรวจสอบความถูกต้องระยะยาว
Spec: ETSI EN 319 142-1 ETSI EN 319 142-1 Spec: RFC 6960 RFC 6960 Spec: ISO 32000-2, §12.8.4 ISO 32000-2 §12.8.4 Evidence: Standard-backed
โดยสรุป
หัวข้อที่มีชื่อว่า “โดยสรุป”ลายเซ็นที่คุณตรวจสอบในวันนี้ตั้งอยู่บนข้อเท็จจริงที่ไม่คงอยู่ถาวร ได้แก่ ใบรับรองที่หมดอายุ เซิร์ฟเวอร์เพิกถอนที่ออฟไลน์ และอัลกอริทึมแฮชที่อ่อนแอลง การตรวจสอบความถูกต้องระยะยาวจะบันทึกหลักฐานไว้ในเอกสารขณะที่ยังหาหลักฐานนั้นได้ เพื่อให้ตรวจสอบลายเซ็นได้อีกหลายปีต่อมาโดยไม่ต้องขอข้อมูลจากแหล่งใดอีก
เหตุใดเรื่องนี้จึงสำคัญ
หัวข้อที่มีชื่อว่า “เหตุใดเรื่องนี้จึงสำคัญ”ลักษณะที่น่ากังวลของลายเซ็นดิจิทัลคือลายเซ็นอาจ กลายเป็นตรวจสอบไม่ได้โดยไม่มีสัญญาณเตือน ทั้งที่ดูเหมือนไม่มีอะไรเปลี่ยนแปลง ไม่มีสิ่งใดในไฟล์เปลี่ยนแปลง ผู้ออกใบรับรองหยุดตอบคำถามเกี่ยวกับใบรับรองที่หมดอายุไปนานแล้ว ตัวตรวจสอบที่ต้องพึ่งคำตอบนั้นจึงไม่สามารถรับคำตอบได้อีกต่อไป สัญญาที่ใช้ได้โดยไม่ต้องสงสัยในวันที่ลงนามกลับกลายเป็น “ไม่สามารถระบุได้” ในอีกหนึ่งทศวรรษต่อมา และช่วงเวลาหนึ่งทศวรรษต่อมานั่นเองมักเป็นช่วงที่ข้อพิพาทมีแนวโน้มเกิดขึ้นมากที่สุดและมีความเสี่ยงสูงสุด หากภาระด้านการเก็บรักษาของคุณวัดเป็นปี ลายเซ็นที่ไม่มีการตรวจสอบความถูกต้องระยะยาวก็เป็นความเสี่ยงที่จะปรากฏให้เห็นในภายหลังเท่านั้น
ฉบับย่อ
หัวข้อที่มีชื่อว่า “ฉบับย่อ”- ความถูกต้องของลายเซ็นขึ้นอยู่กับ ข้อเท็จจริงภายนอกที่ขึ้นกับเวลา ได้แก่ ช่วงเวลาที่ใบรับรองใช้ได้ และสถานะการเพิกถอนจากเซิร์ฟเวอร์
- ข้อเท็จจริงเหล่านั้นจะ หาไม่ได้ หลังจากใบรับรองหมดอายุ เนื่องจากผู้ออกใบรับรองไม่มีหน้าที่ต้องตอบตลอดไป
- การตรวจสอบความถูกต้องระยะยาว เก็บหลักฐาน ณ เวลาที่ลงนาม ได้แก่ ใบรับรอง การตอบสนอง OCSP และ CRL แล้วฝังไว้ใน Document Security Store (DSS) ของเอกสาร
- จากนั้น การประทับเวลาเอกสาร จะพิสูจน์ว่า หลักฐานนั้นเอง มีอยู่และใช้ได้ ณ ขณะนั้น และสามารถต่ออายุได้ก่อนที่กลไกป้องกันของตัวมันเองจะอ่อนแอลง
- ผลลัพธ์คือ เอกสารมีหลักฐานติดอยู่กับตัวเอกสารเอง การตรวจสอบจึงไม่ขึ้นอยู่กับการที่เซิร์ฟเวอร์ยังคงมีอยู่อีกต่อไป
NextPDF จัดการเรื่องนี้อย่างไร
หัวข้อที่มีชื่อว่า “NextPDF จัดการเรื่องนี้อย่างไร”หลักการคือ “รวบรวมหลักฐานในขณะที่ยังทำได้ แล้วผนึกไว้” เมื่อ NextPDF สร้างลายเซ็นระยะยาว จะรวบรวมห่วงโซ่ใบรับรองและการตอบสนองการเพิกถอนที่พิสูจน์ว่าใบรับรองสำหรับลงนามนั้นใช้ได้ ในขณะที่ลงนาม โดยเขียนสิ่งเหล่านั้นลงใน DSS เป็นค่าที่ฝังไว้แทนที่จะเป็นลิงก์ จากนั้นจึงเพิ่มการประทับเวลาเอกสารที่ครอบคลุมทั้งหมด สิ่งสำคัญคือค่าที่ฝังไว้ ลิงก์ไปยังเซิร์ฟเวอร์เพิกถอนคือการพึ่งพาที่การตรวจสอบความถูกต้องระยะยาวถูกออกแบบมาเพื่อขจัดออกไป
ชั้นข้อมูลระยะยาวถูกเขียนเป็นรีวิชันของเอกสารแยกต่างหาก โดยผนวกเข้าไปโดยไม่รบกวนช่วงไบต์ของลายเซ็นต้นฉบับ ลายเซ็นแรกยังคงตรวจสอบได้ต่อไป ข้อมูลระยะยาวถูกเพิ่ม รอบ ๆ ลายเซ็น ไม่ใช่ เข้าไปใน ลายเซ็น เมื่อกลไกป้องกันของการประทับเวลาเอกสารเองเริ่มเสื่อมตามเวลา ระดับการเก็บถาวรจะอนุญาตให้ซ้อนการประทับเวลาอีกชั้นหนึ่งทับด้านบน ผลลัพธ์คือห่วงโซ่ที่การประทับเวลาแต่ละชั้นรับรองทุกสิ่งที่อยู่ใต้ชั้นนั้น
- Sign The signature and its signed attributes are written (B-B).
- Capture evidence Certificate chain, OCSP responses, and CRLs proving the certificate was valid at signing time are gathered.
- Embed in the DSS The evidence is written into the document as embedded values, not links (B-LT).
- Seal with a document timestamp A timestamp proves the embedded evidence existed and was valid at that moment (B-LTA).
- Renew before it weakens Another timestamp is layered before the previous one’s protection ages, extending verifiability.
หลักฐานบอกอะไร
หัวข้อที่มีชื่อว่า “หลักฐานบอกอะไร”Evidence: Standard-backed ความจำเป็นนี้ปรากฏชัดใน Spec: RFC 6960, §4.4.4 RFC 6960 §4.4.4 สถานะการเพิกถอนสามารถคงอยู่นานเกิน ช่วงเวลาที่ใบรับรองใช้ได้ และกลไกการตัดรอบการเก็บถาวรให้ บริบทเชิงประวัติแก่ตัวตรวจสอบเพื่อใช้ตัดสินว่าลายเซ็นเชื่อถือได้หรือไม่ ณ เวลาที่สร้างลายเซ็นนั้น แม้หลังจากที่ใบรับรองที่ใช้ตรวจสอบนั้น หมดอายุไปแล้ว นั่นคือเหตุผลที่การตรวจสอบความถูกต้องระยะยาวมีอยู่ คำตอบเรื่องการเพิกถอน มีให้ใช้ได้เพียงช่วงเวลาจำกัด ดังนั้นคุณต้องเก็บคำตอบเหล่านั้นก่อนที่ เวลานั้นจะสิ้นสุดลง
ในฝั่ง ETSI มาตรฐาน Spec: ETSI EN 319 142-2, §5.5 ETSI EN 319 142-2 §5.5 ระบุว่าพฤติกรรมระยะยาวกำหนดให้ต้องมี Document Security Store ที่บรรจุข้อมูลการตรวจสอบ เป็นค่า ตามด้วยการประทับเวลาเอกสาร Spec: ISO 32000-2, §12.8.3.3 ISO 32000-2 §12.8.3.3 เชื่อมโยงภาพรวมทั้งหมดเข้าด้วยกัน PAdES คือ CAdES CMS ที่ผนวกกับการตรวจสอบความถูกต้องระยะยาว (§12.8.4) และ พจนานุกรมการประทับเวลาเอกสาร (§12.8.5) และ Spec: ETSI EN 319 142-2, §6.3.2.2 ETSI EN 319 142-2 §6.3.2.2 คือเหตุผลที่ต้องใส่การประทับเวลา ตั้งแต่เนิ่น ๆ ควรนำไปใช้ทันทีหลังจากลงนามเพื่อให้ เวลาที่บันทึกไว้ใกล้เคียงกับเวลาจริงมากที่สุดเท่าที่จะเป็นไปได้
เอนจินของ NextPDF นำแนวทางนี้ไปใช้เป็นระดับ B-LT และ B-LTA ได้แก่ ค่าการเพิกถอนที่ฝังไว้ใน DSS การประทับเวลาเอกสารที่ผนึกค่าเหล่านั้น และลูปการเก็บถาวรที่ต่ออายุตราผนึก โดยเขียนเป็นรีวิชันที่ผนวกเข้าไปซึ่งไม่กระทบช่วงไบต์ของลายเซ็นต้นฉบับ
ตัวอย่างการใช้งานจริง
หัวข้อที่มีชื่อว่า “ตัวอย่างการใช้งานจริง”ระดับที่คุณเลือก คือ การตัดสินใจระยะยาว API ทำให้ข้อกำหนดชัดเจนก่อนที่คุณจะตัดสินใจ
<?php
declare(strict_types=1);
use NextPDF\Security\Signature\SignatureLevel;
// B-LT embeds validation material; B-LTA adds the renewable seal.$level = SignatureLevel::PAdES_B_LTA;
$level->requiresDss(); // true → certificates + revocation embedded$level->requiresDocumentTimestamp(); // true → a document timestamp seals the DSS
// The high-level seam produces the level end to end: it embeds the DSS// dictionary and appends the DocTimeStamp revision in one call.$document ->setSignature($cert, SignatureLevel::PAdES_B_LTA, $tsaClient) ->save();
// The engine produces this only if the deployment can supply what it needs// (a TSA, and revocation data reachable at signing time). It fails with an// actionable error rather than embedding nothing and reporting success.ส่วนเชื่อมระดับสูงที่แสดงด้านบน — setSignature($cert, SignatureLevel::PAdES_B_LTA, $tsaClient)->save() — ขณะนี้เชื่อมต่อแบบครบวงจรแล้ว รุ่นก่อนหน้าเปิดเผยเฉพาะ enum ของระดับ แต่ไม่มีส่วนเชื่อมที่สร้างระดับนั้น สิ่งที่ส่วนเชื่อมเขียนคือ โครงสร้าง ได้แก่ พจนานุกรม DSS และรีวิชัน DocTimeStamp ตามที่อธิบายไว้ใน Spec: ISO 32000-2, §12.8 ISO 32000-2 §12.8 โครงสร้างนั้นไม่ได้ผ่านการทดสอบความสอดคล้องกับโปรไฟล์ และส่วนเชื่อมไม่ได้ยืนยันสิ่งใดเกี่ยวกับความสอดคล้องกับ ETSI หรือความถูกต้องทางกฎหมาย ระดับ B-LT และ B-LTA ต้องใช้ทั้ง Pro และ Enterprise สำหรับระดับอื่นใด ส่วนเชื่อมจะล้มเหลวแบบปิด (fail closed) แทนที่จะให้ผลลัพธ์เพียงบางส่วน เอกสารที่เข้ารหัสลับก็ล้มเหลวแบบปิด (fail closed) สำหรับ B-LT และ B-LTA เช่นกัน DSS และการประทับเวลาเอกสารจะไม่ถูกเขียนทับเนื้อหาที่เข้ารหัสลับ เพราะหากทำเช่นนั้น ข้อมูลเหล่านั้นจะถูกเขียนอย่างไม่ถูกต้อง
ทางเลือกนี้ไม่สามารถนำมาเพิ่มภายหลังได้อย่างคุ้มค่า หลักฐานการเพิกถอนต้องถูกเก็บ ในเวลาที่ลงนาม ในขณะที่คำตอบยังคงมีอยู่ การตัดสินใจว่า “เราจะเพิ่มการตรวจสอบความถูกต้องระยะยาวในภายหลัง” มักหมายถึงการตัดสินใจว่า “เราจะไม่มีหลักฐานเมื่อถึงเวลาที่ต้องการ”
ความเข้าใจผิดที่พบบ่อย
หัวข้อที่มีชื่อว่า “ความเข้าใจผิดที่พบบ่อย”ความเข้าใจผิดคือ “การตรวจสอบความถูกต้องระยะยาวทำให้ลายเซ็นใช้ได้ตลอดไป” การตรวจสอบนี้ไม่ได้ทำให้ลายเซ็นใดใช้ได้ขึ้นมา แต่ รักษาความสามารถในการตรวจสอบ ความถูกต้องที่ถูกสร้างขึ้นในเวลาที่ลงนาม หากใบรับรองถูกเพิกถอนไปแล้วเมื่อเอกสารถูกลงนาม การฝังข้อเท็จจริงนั้นจะไม่ช่วยกอบกู้ลายเซ็น แต่กลับบันทึกความล้มเหลวนั้นไว้อย่างถาวรแทน การตรวจสอบความถูกต้องระยะยาวเป็นกลไกรักษาหลักฐาน ไม่ใช่กลไกสร้างหลักฐาน ความเข้าใจผิดประการที่สองคือการเชื่อว่า B-LTA เป็นแบบ “ตั้งค่าแล้วลืมไปได้เลย” การประทับเวลาเก็บถาวรได้รับการป้องกันด้วยอัลกอริทึมที่ตัวมันเองก็เก่าลงตามเวลา หากไม่มีการต่ออายุ ในที่สุดไฟล์ B-LTA ก็จะมีความเปราะบางแบบเดียวกับที่ตั้งใจหลีกเลี่ยง
ขีดจำกัดและขอบเขต
หัวข้อที่มีชื่อว่า “ขีดจำกัดและขอบเขต”NextPDF รวบรวมและฝังหลักฐานและเขียนการประทับเวลา แต่ไม่ได้เป็นผู้กำหนดความจริงของหลักฐานหรือกำหนดรอบการต่ออายุหลักฐาน การตอบสนองการเพิกถอนเชื่อถือได้เท่ากับหน่วยงานที่ออกการตอบสนองนั้นและช่วงเวลาที่ดึงข้อมูลมา การเชื่อมต่อกับหน่วยงานนั้นในเวลาที่ลงนามเป็นความรับผิดชอบของการนำไปใช้งาน เอนจินไม่สามารถสร้างคำตอบเรื่องการเพิกถอนที่ไม่สามารถหามาได้ การต่ออายุการเก็บถาวรเป็นกระบวนการ เชิงปฏิบัติการ เอนจินสามารถเพิ่มการประทับเวลาอีกชั้นได้ แต่ไม่สามารถตัดสินใจแทนนโยบายการเก็บรักษาของคุณว่า เมื่อใด ต้องทำ การพิจารณาในภายหลังว่าข้อมูลที่ฝังไว้เพียงพอหรือไม่ เป็นคำถามของตัวตรวจสอบและนโยบาย ซึ่งกล่าวถึงใน การตรวจสอบลายเซ็นอย่างถูกต้อง หน้านี้ไม่ได้ยืนยันการรับฟังได้ทางกฎหมาย ซึ่งขึ้นอยู่กับเขตอำนาจศาล ผู้ลงนาม และใบรับรอง
ความพร้อมใช้งานของการตรวจสอบความถูกต้องระยะยาวตามระดับ:
| Edition | Availability |
|---|---|
| Core | Not in this edition |
| Pro | PAdES B-T — การประทับเวลาที่เชื่อถือได้บนค่าลายเซ็น — มีให้ใช้ได้ แต่ ข้อมูลการตรวจสอบที่ฝังไว้ (DSS) ไม่ได้เป็นส่วนหนึ่งของ B-T |
| Enterprise | PAdES B-LT และ B-LTA: ค่าใบรับรองและค่าการเพิกถอนที่ฝังไว้ใน DSS การประทับเวลาเอกสารที่ผนึก และลูปการเก็บถาวรที่ต่ออายุได้ |
เอกสารที่เกี่ยวข้อง
หัวข้อที่มีชื่อว่า “เอกสารที่เกี่ยวข้อง”- โปรไฟล์พื้นฐานของ PAdES — ตำแหน่งของ B-LT และ B-LTA ในลำดับขั้นของระดับ และแต่ละระดับเพิ่มสิ่งใดบ้าง
- การประทับเวลาและเวลาที่เชื่อถือได้ — การประทับเวลาเอกสารที่ผนึกหลักฐานที่ฝังไว้
- การตรวจสอบลายเซ็นอย่างถูกต้อง — ตัวตรวจสอบใช้ข้อมูลที่ฝังไว้อย่างไร และเหตุใดเพียงคำว่า “ใช้ได้” จึงไม่สมบูรณ์
- เวิร์กโฟลว์ข้อตกลงที่ลงนามแล้ว — เวิร์กโฟลว์แบบครบวงจรที่นำข้อมูลการตรวจสอบความถูกต้องระยะยาวไปใช้ในทางปฏิบัติ
อภิธานศัพท์
หัวข้อที่มีชื่อว่า “อภิธานศัพท์”- การตรวจสอบความถูกต้องระยะยาว (LTV) — การฝังหลักฐานที่จำเป็นต่อการตรวจสอบลายเซ็น เพื่อไม่ให้การตรวจสอบต้องพึ่งพาบริการภายนอกในภายหลัง
- Document Security Store (DSS) — โครงสร้าง PDF ที่เก็บใบรับรองและข้อมูลการเพิกถอนที่ฝังไว้สำหรับการตรวจสอบความถูกต้องระยะยาว
- การตอบสนอง OCSP — คำแถลงที่ลงนามแล้วเกี่ยวกับสถานะการเพิกถอนของใบรับรอง ณ จุดเวลาหนึ่ง (Online Certificate Status Protocol, RFC 6960)
- CRL — Certificate Revocation List รายการที่ลงนามแล้วของใบรับรองที่ถูกเพิกถอน
- การประทับเวลาเอกสาร — การประทับเวลาตาม RFC 3161 ที่นำไปใช้กับทั้งเอกสาร เพื่อพิสูจน์ว่าหลักฐานที่ฝังไว้มีอยู่และใช้ได้ ณ เวลานั้น
- ลูปการเก็บถาวร — การเพิ่มการประทับเวลาเอกสารใหม่ซ้ำ ๆ ก่อนที่การป้องกันของชั้นก่อนหน้าจะอ่อนแอลง เพื่อยืดอายุความสามารถในการตรวจสอบ