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

การตรวจสอบความถูกต้องระยะยาว

Spec: ETSI EN 319 142-1 Spec: RFC 6960 Spec: ISO 32000-2, §12.8.4 Evidence: Standard-backed

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

ลักษณะที่น่ากังวลของลายเซ็นดิจิทัลคือลายเซ็นอาจ กลายเป็นตรวจสอบไม่ได้โดยไม่มีสัญญาณเตือน ทั้งที่ดูเหมือนไม่มีอะไรเปลี่ยนแปลง ไม่มีสิ่งใดในไฟล์เปลี่ยนแปลง ผู้ออกใบรับรองหยุดตอบคำถามเกี่ยวกับใบรับรองที่หมดอายุไปนานแล้ว ตัวตรวจสอบที่ต้องพึ่งคำตอบนั้นจึงไม่สามารถรับคำตอบได้อีกต่อไป สัญญาที่ใช้ได้โดยไม่ต้องสงสัยในวันที่ลงนามกลับกลายเป็น “ไม่สามารถระบุได้” ในอีกหนึ่งทศวรรษต่อมา และช่วงเวลาหนึ่งทศวรรษต่อมานั่นเองมักเป็นช่วงที่ข้อพิพาทมีแนวโน้มเกิดขึ้นมากที่สุดและมีความเสี่ยงสูงสุด หากภาระด้านการเก็บรักษาของคุณวัดเป็นปี ลายเซ็นที่ไม่มีการตรวจสอบความถูกต้องระยะยาวก็เป็นความเสี่ยงที่จะปรากฏให้เห็นในภายหลังเท่านั้น

  • ความถูกต้องของลายเซ็นขึ้นอยู่กับ ข้อเท็จจริงภายนอกที่ขึ้นกับเวลา ได้แก่ ช่วงเวลาที่ใบรับรองใช้ได้ และสถานะการเพิกถอนจากเซิร์ฟเวอร์
  • ข้อเท็จจริงเหล่านั้นจะ หาไม่ได้ หลังจากใบรับรองหมดอายุ เนื่องจากผู้ออกใบรับรองไม่มีหน้าที่ต้องตอบตลอดไป
  • การตรวจสอบความถูกต้องระยะยาว เก็บหลักฐาน ณ เวลาที่ลงนาม ได้แก่ ใบรับรอง การตอบสนอง OCSP และ CRL แล้วฝังไว้ใน Document Security Store (DSS) ของเอกสาร
  • จากนั้น การประทับเวลาเอกสาร จะพิสูจน์ว่า หลักฐานนั้นเอง มีอยู่และใช้ได้ ณ ขณะนั้น และสามารถต่ออายุได้ก่อนที่กลไกป้องกันของตัวมันเองจะอ่อนแอลง
  • ผลลัพธ์คือ เอกสารมีหลักฐานติดอยู่กับตัวเอกสารเอง การตรวจสอบจึงไม่ขึ้นอยู่กับการที่เซิร์ฟเวอร์ยังคงมีอยู่อีกต่อไป

หลักการคือ “รวบรวมหลักฐานในขณะที่ยังทำได้ แล้วผนึกไว้” เมื่อ NextPDF สร้างลายเซ็นระยะยาว จะรวบรวมห่วงโซ่ใบรับรองและการตอบสนองการเพิกถอนที่พิสูจน์ว่าใบรับรองสำหรับลงนามนั้นใช้ได้ ในขณะที่ลงนาม โดยเขียนสิ่งเหล่านั้นลงใน DSS เป็นค่าที่ฝังไว้แทนที่จะเป็นลิงก์ จากนั้นจึงเพิ่มการประทับเวลาเอกสารที่ครอบคลุมทั้งหมด สิ่งสำคัญคือค่าที่ฝังไว้ ลิงก์ไปยังเซิร์ฟเวอร์เพิกถอนคือการพึ่งพาที่การตรวจสอบความถูกต้องระยะยาวถูกออกแบบมาเพื่อขจัดออกไป

ชั้นข้อมูลระยะยาวถูกเขียนเป็นรีวิชันของเอกสารแยกต่างหาก โดยผนวกเข้าไปโดยไม่รบกวนช่วงไบต์ของลายเซ็นต้นฉบับ ลายเซ็นแรกยังคงตรวจสอบได้ต่อไป ข้อมูลระยะยาวถูกเพิ่ม รอบ ๆ ลายเซ็น ไม่ใช่ เข้าไปใน ลายเซ็น เมื่อกลไกป้องกันของการประทับเวลาเอกสารเองเริ่มเสื่อมตามเวลา ระดับการเก็บถาวรจะอนุญาตให้ซ้อนการประทับเวลาอีกชั้นหนึ่งทับด้านบน ผลลัพธ์คือห่วงโซ่ที่การประทับเวลาแต่ละชั้นรับรองทุกสิ่งที่อยู่ใต้ชั้นนั้น

  1. Sign The signature and its signed attributes are written (B-B).
  2. Capture evidence Certificate chain, OCSP responses, and CRLs proving the certificate was valid at signing time are gathered.
  3. Embed in the DSS The evidence is written into the document as embedded values, not links (B-LT).
  4. Seal with a document timestamp A timestamp proves the embedded evidence existed and was valid at that moment (B-LTA).
  5. 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 สถานะการเพิกถอนสามารถคงอยู่นานเกิน ช่วงเวลาที่ใบรับรองใช้ได้ และกลไกการตัดรอบการเก็บถาวรให้ บริบทเชิงประวัติแก่ตัวตรวจสอบเพื่อใช้ตัดสินว่าลายเซ็นเชื่อถือได้หรือไม่ ณ เวลาที่สร้างลายเซ็นนั้น แม้หลังจากที่ใบรับรองที่ใช้ตรวจสอบนั้น หมดอายุไปแล้ว นั่นคือเหตุผลที่การตรวจสอบความถูกต้องระยะยาวมีอยู่ คำตอบเรื่องการเพิกถอน มีให้ใช้ได้เพียงช่วงเวลาจำกัด ดังนั้นคุณต้องเก็บคำตอบเหล่านั้นก่อนที่ เวลานั้นจะสิ้นสุดลง

ในฝั่ง ETSI มาตรฐาน Spec: ETSI EN 319 142-2, §5.5 ระบุว่าพฤติกรรมระยะยาวกำหนดให้ต้องมี Document Security Store ที่บรรจุข้อมูลการตรวจสอบ เป็นค่า ตามด้วยการประทับเวลาเอกสาร Spec: 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 คือเหตุผลที่ต้องใส่การประทับเวลา ตั้งแต่เนิ่น ๆ ควรนำไปใช้ทันทีหลังจากลงนามเพื่อให้ เวลาที่บันทึกไว้ใกล้เคียงกับเวลาจริงมากที่สุดเท่าที่จะเป็นไปได้

เอนจินของ 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 โครงสร้างนั้นไม่ได้ผ่านการทดสอบความสอดคล้องกับโปรไฟล์ และส่วนเชื่อมไม่ได้ยืนยันสิ่งใดเกี่ยวกับความสอดคล้องกับ ETSI หรือความถูกต้องทางกฎหมาย ระดับ B-LT และ B-LTA ต้องใช้ทั้ง Pro และ Enterprise สำหรับระดับอื่นใด ส่วนเชื่อมจะล้มเหลวแบบปิด (fail closed) แทนที่จะให้ผลลัพธ์เพียงบางส่วน เอกสารที่เข้ารหัสลับก็ล้มเหลวแบบปิด (fail closed) สำหรับ B-LT และ B-LTA เช่นกัน DSS และการประทับเวลาเอกสารจะไม่ถูกเขียนทับเนื้อหาที่เข้ารหัสลับ เพราะหากทำเช่นนั้น ข้อมูลเหล่านั้นจะถูกเขียนอย่างไม่ถูกต้อง

ทางเลือกนี้ไม่สามารถนำมาเพิ่มภายหลังได้อย่างคุ้มค่า หลักฐานการเพิกถอนต้องถูกเก็บ ในเวลาที่ลงนาม ในขณะที่คำตอบยังคงมีอยู่ การตัดสินใจว่า “เราจะเพิ่มการตรวจสอบความถูกต้องระยะยาวในภายหลัง” มักหมายถึงการตัดสินใจว่า “เราจะไม่มีหลักฐานเมื่อถึงเวลาที่ต้องการ”

ความเข้าใจผิดคือ “การตรวจสอบความถูกต้องระยะยาวทำให้ลายเซ็นใช้ได้ตลอดไป” การตรวจสอบนี้ไม่ได้ทำให้ลายเซ็นใดใช้ได้ขึ้นมา แต่ รักษาความสามารถในการตรวจสอบ ความถูกต้องที่ถูกสร้างขึ้นในเวลาที่ลงนาม หากใบรับรองถูกเพิกถอนไปแล้วเมื่อเอกสารถูกลงนาม การฝังข้อเท็จจริงนั้นจะไม่ช่วยกอบกู้ลายเซ็น แต่กลับบันทึกความล้มเหลวนั้นไว้อย่างถาวรแทน การตรวจสอบความถูกต้องระยะยาวเป็นกลไกรักษาหลักฐาน ไม่ใช่กลไกสร้างหลักฐาน ความเข้าใจผิดประการที่สองคือการเชื่อว่า B-LTA เป็นแบบ “ตั้งค่าแล้วลืมไปได้เลย” การประทับเวลาเก็บถาวรได้รับการป้องกันด้วยอัลกอริทึมที่ตัวมันเองก็เก่าลงตามเวลา หากไม่มีการต่ออายุ ในที่สุดไฟล์ B-LTA ก็จะมีความเปราะบางแบบเดียวกับที่ตั้งใจหลีกเลี่ยง

NextPDF รวบรวมและฝังหลักฐานและเขียนการประทับเวลา แต่ไม่ได้เป็นผู้กำหนดความจริงของหลักฐานหรือกำหนดรอบการต่ออายุหลักฐาน การตอบสนองการเพิกถอนเชื่อถือได้เท่ากับหน่วยงานที่ออกการตอบสนองนั้นและช่วงเวลาที่ดึงข้อมูลมา การเชื่อมต่อกับหน่วยงานนั้นในเวลาที่ลงนามเป็นความรับผิดชอบของการนำไปใช้งาน เอนจินไม่สามารถสร้างคำตอบเรื่องการเพิกถอนที่ไม่สามารถหามาได้ การต่ออายุการเก็บถาวรเป็นกระบวนการ เชิงปฏิบัติการ เอนจินสามารถเพิ่มการประทับเวลาอีกชั้นได้ แต่ไม่สามารถตัดสินใจแทนนโยบายการเก็บรักษาของคุณว่า เมื่อใด ต้องทำ การพิจารณาในภายหลังว่าข้อมูลที่ฝังไว้เพียงพอหรือไม่ เป็นคำถามของตัวตรวจสอบและนโยบาย ซึ่งกล่าวถึงใน การตรวจสอบลายเซ็นอย่างถูกต้อง หน้านี้ไม่ได้ยืนยันการรับฟังได้ทางกฎหมาย ซึ่งขึ้นอยู่กับเขตอำนาจศาล ผู้ลงนาม และใบรับรอง

ความพร้อมใช้งานของการตรวจสอบความถูกต้องระยะยาวตามระดับ:

การตรวจสอบความถูกต้องระยะยาว (การฝัง DSS และลูปการประทับเวลาเก็บถาวร) — edition availability
Edition Availability
Core Not in this edition
Pro

PAdES B-T — การประทับเวลาที่เชื่อถือได้บนค่าลายเซ็น — มีให้ใช้ได้ แต่ ข้อมูลการตรวจสอบที่ฝังไว้ (DSS) ไม่ได้เป็นส่วนหนึ่งของ B-T

Enterprise

PAdES B-LT และ B-LTA: ค่าใบรับรองและค่าการเพิกถอนที่ฝังไว้ใน DSS การประทับเวลาเอกสารที่ผนึก และลูปการเก็บถาวรที่ต่ออายุได้

  • การตรวจสอบความถูกต้องระยะยาว (LTV) — การฝังหลักฐานที่จำเป็นต่อการตรวจสอบลายเซ็น เพื่อไม่ให้การตรวจสอบต้องพึ่งพาบริการภายนอกในภายหลัง
  • Document Security Store (DSS) — โครงสร้าง PDF ที่เก็บใบรับรองและข้อมูลการเพิกถอนที่ฝังไว้สำหรับการตรวจสอบความถูกต้องระยะยาว
  • การตอบสนอง OCSP — คำแถลงที่ลงนามแล้วเกี่ยวกับสถานะการเพิกถอนของใบรับรอง ณ จุดเวลาหนึ่ง (Online Certificate Status Protocol, RFC 6960)
  • CRL — Certificate Revocation List รายการที่ลงนามแล้วของใบรับรองที่ถูกเพิกถอน
  • การประทับเวลาเอกสาร — การประทับเวลาตาม RFC 3161 ที่นำไปใช้กับทั้งเอกสาร เพื่อพิสูจน์ว่าหลักฐานที่ฝังไว้มีอยู่และใช้ได้ ณ เวลานั้น
  • ลูปการเก็บถาวร — การเพิ่มการประทับเวลาเอกสารใหม่ซ้ำ ๆ ก่อนที่การป้องกันของชั้นก่อนหน้าจะอ่อนแอลง เพื่อยืดอายุความสามารถในการตรวจสอบ