เวลาที่เชื่อถือได้: ไทม์สแตมป์พิสูจน์ 'เมื่อใด' ได้อย่างไร
Spec: RFC 3161RFC 3161Spec: RFC 5816RFC 5816Spec: ISO 32000-2, §12.8.5ISO 32000-2 §12.8.5
ภาพรวมโดยสังเขป
หัวข้อที่มีชื่อว่า “ภาพรวมโดยสังเขป”ไทม์สแตมป์ตอบคำถามเดียวที่ลื่นไหลอย่างน่าประหลาดใจ คือ ข้อมูลนี้มีอยู่แล้วหรือยัง ไม่ใช่ว่าใครเป็นคนสร้าง ไม่ใช่ว่ามันถูกต้องหรือไม่ — เพียงว่า ณ ช่วงเวลาที่ระบุไว้ ไบต์ชุดนี้พอดีนั้นมีอยู่ในโลกแล้ว หน้านี้สร้างแนวคิดขึ้นจากพื้นฐาน คือผู้ออกไทม์สแตมป์ทำอะไร โทเค็นบรรจุอะไรจริงๆ และทำไมตัวเลขบนนาฬิกาจึงกลายเป็นหลักฐาน
นี่คือคู่หูเชิงหลักการพื้นฐานของหน้า ไทม์สแตมป์และเวลาที่เชื่อถือได้ ที่เน้นเอนจิน จงอ่านหน้านี้ก่อนหากคำว่า “เวลาที่เชื่อถือได้” ฟังดูเหมือนศัพท์เฉพาะ
เหตุใดเรื่องนี้จึงสำคัญ
หัวข้อที่มีชื่อว่า “เหตุใดเรื่องนี้จึงสำคัญ”นาฬิกาของคอมพิวเตอร์คุณเป็นคำสารภาพ ไม่ใช่ข้อพิสูจน์ คุณตั้งมันเป็นค่าใดก็ได้ตามใจ และใครก็ทำได้เช่นกัน ทันทีที่วันที่มีความสำคัญต่อฝ่ายที่สอง — สัญญาที่ต้องลงนามก่อนกำหนดเส้นตาย บันทึกที่ต้องมีอยู่ก่อนเกิดข้อพิพาท — นาฬิกาของคุณเองก็ไร้ค่าในฐานะหลักฐาน เพราะคุณควบคุมมัน ปัญหาทั้งหมดของเวลาที่เชื่อถือได้คือการหานาฬิกา ที่คุณขยับไม่ได้
นี่ไม่ใช่ข้อกังวลเฉพาะกลุ่ม PDF ที่ลงนามแล้วและอยู่ยาวทุกฉบับพึ่งพามัน ใบรับรองที่ลงนามย่อมหมดอายุในที่สุด หลายปีต่อมา ผู้ตรวจสอบยืนยันต้องรู้ว่าลายเซ็นถูกสร้างขึ้น ในขณะที่ใบรับรองยังคงมีผล หากไม่มีบันทึก “เมื่อใด” ที่เป็นอิสระ คำถามนั้นก็ไม่มีคำตอบที่ซื่อตรง เวลาที่เชื่อถือได้คือรากฐานเงียบที่อาคารทั้งหลังของลายเซ็นที่คงทนวางอยู่บนมัน
ฉบับย่อ
หัวข้อที่มีชื่อว่า “ฉบับย่อ”- ไทม์สแตมป์พิสูจน์ว่าข้อมูลชิ้นหนึ่ง มีอยู่ก่อน ช่วงเวลาที่ระบุ นั่นคือ ขอบเขตบน ของอายุ ไม่มากไปกว่านั้น
- มันถูกสร้างโดยบุคคลที่สาม คือ ผู้ออกไทม์สแตมป์ (Time-Stamp Authority, TSA) ซึ่งคุณไว้ใจนาฬิกาของเขาก็เพราะมันไม่ใช่ของคุณ
- TSA ไม่เคยเห็นข้อมูลของคุณ มันลงนามบน แฮช ของข้อมูลที่ผูกเข้ากับค่าเวลา แล้วส่ง โทเค็น ที่ลงนามแล้วขนาดเล็กกลับมา
- โทเค็นพิสูจน์สามสิ่งพร้อมกัน คือข้อมูลเป็นข้อมูลนั้นจริง (แฮชตรงกัน) เวลาเป็นเวลาของ TSA (ลายเซ็นของมัน) และคำตอบตรงกับคำขอที่คุณส่งไป (nonce ที่มันสะท้อนกลับ ซึ่งป้องกันการตอบเก่าที่ถูกเล่นซ้ำ)
- มัน ไม่ พิสูจน์ว่าใครเขียนข้อมูล ว่าข้อมูลเป็นความจริง หรือช่วงเวลาที่สร้างอย่างแม่นยำ เพียงว่า ไม่ช้ากว่า เวลานี้
- ความเชื่อถือไหลไปสู่ TSA คือ TSA ที่ได้รับความเชื่อถือสาธารณะดีพอสำหรับบันทึกส่วนใหญ่ ส่วน TSA ที่ ผ่านการรับรองตาม eIDAS มีข้อสันนิษฐานทางกฎหมายในสหภาพยุโรป
แนวทางของ NextPDF ในเรื่องนี้
หัวข้อที่มีชื่อว่า “แนวทางของ NextPDF ในเรื่องนี้”เริ่มจากกลเม็ดที่อยู่ตรงใจกลางของทั้งหมด คุณต้องการให้คนแปลกหน้ารับรองว่าข้อมูลของคุณมีอยู่ เมื่อใด แต่คุณแสดงข้อมูลให้เขาดูไม่ได้ — มันอาจเป็นความลับ และไม่ว่าอย่างไรก็อาจมีขนาดมหึมา ดังนั้นคุณจึงไม่ทำเช่นนั้น คุณคำนวณ แฮช คือลายนิ้วมือสั้นๆ ความยาวคงที่ที่เปลี่ยนแปลงไปทั้งหมดหากแม้เพียงหนึ่งไบต์ของต้นฉบับเปลี่ยน และจากมันกู้ต้นฉบับกลับคืนไม่ได้ คุณส่งลายนิ้วมือ ไม่ใช่ไฟล์
TSA รับลายนิ้วมือนั้น แนบเวลาปัจจุบันของตนเข้าไป ลงนามคู่นั้นด้วยกุญแจส่วนตัวของมัน แล้วส่ง โทเค็นไทม์สแตมป์ กลับมา (Spec: RFC 3161, §2.1RFC 3161 §2.1) โทเค็นคือการผูกที่ถูกทำให้ถาวร คือ ลายนิ้วมือนี้ ณ เวลานี้ รับรองโดยฉัน เพราะโทเค็นถูกลงนาม ไม่มีใคร — แม้แต่ TSA เองในภายหลัง — แก้ไขเวลาได้โดยไม่ทำให้ลายเซ็นเสียหาย เพราะมันบรรจุลายนิ้วมือของคุณ มันจึงใช้กับไฟล์อื่นใดไม่ได้เลย และเพราะคำขอมี nonce สุ่มที่สร้างใหม่ซึ่ง TSA สะท้อนกลับมาโดยไม่เปลี่ยนแปลง คุณจึงบอกได้ว่าคำตอบสอดคล้องกับ คำขอนี้โดยเฉพาะ และไม่ใช่การเล่นซ้ำของคำตอบเก่า — nonce รับรองความสดใหม่ ไม่ใช่ว่าใครเป็นผู้ขอ (Spec: RFC 3161, §2.4.2RFC 3161 §2.4.2)
ลองนึกถึงตราประทับครั่งที่กดทับจดหมายที่พับไว้ ตราประทับไม่ได้อ่านจดหมาย มันเพียงพิสูจน์ว่าจดหมายยังครบถ้วนและอยู่ที่นั่นเมื่อตราถูกประทับลง ไทม์สแตมป์คือตราประทับที่ถูกกดด้วยนาฬิกาที่คุณไม่ได้เป็นเจ้าของ ทับลงบนลายนิ้วมือของข้อมูลคุณ
- Fingerprint the dataCompute a one-way hash of the file or the signature value. The data itself never leaves your hands.
- Ask the authoritySend the hash and a fresh random nonce to the Time-Stamp Authority.
- The TSA seals a timeIt signs the hash bound to its own clock and echoes your nonce, producing a small signed token.
- Store the tokenFor a PDF, the token is placed inside the file so the proof travels with the document.
- Verify laterAnyone who trusts the TSA can check the token: its signature against the TSA certificate, the matching hash, the echoed nonce, and the time — then concludes an upper bound on age.
ใน PDF กลไกเดียวกันนี้สวมสองบทบาท ไทม์สแตมป์ของลายเซ็น ผนึก เวลาที่ลายเซ็นถูกประทับลง ด้วยการประทับไทม์สแตมป์บนค่าของลายเซ็น ส่วน ไทม์สแตมป์ของเอกสาร ผนึก เวลาที่ทั้งไฟล์มีอยู่ ด้วยการแฮชทั้ง PDF (โดยตัดตัวที่กั้นที่ซึ่งโทเค็นจะเข้าไปอยู่ออก) แล้วเก็บโทเค็นที่ส่งกลับมาไว้ในที่กั้นนั้น (Spec: ISO 32000-2, §12.8.5ISO 32000-2 §12.8.5) แบบที่สองคือสิ่งที่ลายเซ็นจัดเก็บถาวรที่อยู่ยาวต่ออายุตลอดหลายปีเพื่อรักษาความเชื่อถือให้สดใหม่
มีรายละเอียดสมัยใหม่ข้อหนึ่งที่ควรรู้ คือรูปแบบไทม์สแตมป์เก่ายึดตัวเองเข้ากับอัลกอริทึมแฮชเดียวสำหรับการตั้งชื่อใบรับรองของ TSA เอง ส่วนโปรไฟล์ที่ปรับปรุงแล้วยอมให้โทเค็นตั้งชื่อใบรับรองด้วยไดเจสต์ปัจจุบันแทน (Spec: RFC 5816, §2.1RFC 5816 §2.1) ดังนั้นเวลาที่เชื่อถือได้จึงไม่แอบสืบทอดการเข้ารหัสลับของเมื่อวาน
ตัวอย่างเชิงปฏิบัติ
หัวข้อที่มีชื่อว่า “ตัวอย่างเชิงปฏิบัติ”คุณไม่ได้ประกอบโทเค็นด้วยมือ และคุณก็ไม่ควรต้องการทำเช่นนั้น สิ่งที่ควรค่าแก่การเข้าใจคือ รอยต่อแห่งความเชื่อถือ คือคุณกำลังเลือกที่จะเชื่อนาฬิกาเรือนใด ใน NextPDF การขอระดับลายเซ็นที่ต้องใช้เวลาที่เชื่อถือได้ทำให้การเลือกนั้นชัดเจนแทนที่จะเป็นโดยปริยาย
<?php
declare(strict_types=1);
use NextPDF\Security\Signature\SignatureLevel;
// A baseline signature trusts only the signer's own clock.$baseline = SignatureLevel::PAdES_B_B;$baseline->requiresTimestamp(); // false → no third party vouches for "when"
// Stepping up to B-T means a Time-Stamp Authority must be supplied:// from here on, "when" is attested by a clock you do not control.$timestamped = SignatureLevel::PAdES_B_T;$timestamped->requiresTimestamp(); // true → a TSA is now part of your trust model
// The decision is now visible at the call site, not buried in a default.// Choosing the TSA is choosing whose time becomes your evidence.ประเด็นของตัวอย่างไม่ใช่ API แต่คือ “ฉันมีเวลาที่เชื่อถือได้หรือไม่” เป็นข้อเท็จจริงแบบใช่หรือไม่เกี่ยวกับเอกสารของคุณ ตัดสินด้วยว่า TSA อยู่ในวงจรหรือไม่ — และเอนจินปฏิเสธที่จะปล่อยให้ข้อเท็จจริงนั้นกำกวม
ความเข้าใจผิดที่พบบ่อย
หัวข้อที่มีชื่อว่า “ความเข้าใจผิดที่พบบ่อย”กับดักคือการอ่านไทม์สแตมป์ว่า “สิ่งนี้ถูกสร้างขึ้นเมื่อเวลา 14:32 น.” มันไม่ได้บอกเช่นนั้นเลย มันบอกว่า “สิ่งนี้มีอยู่ไม่ช้ากว่าเวลา 14:32 น.” ความแตกต่างนั้นคือประเด็นทั้งหมด ไทม์สแตมป์เป็น ขอบเขตบน ไม่เคยเป็นขอบเขตล่างและไม่เคยเป็นช่วงเวลาที่แม่นยำ ข้อมูลของคุณอาจมีอยู่มาแล้วหลายปีก่อนที่คุณจะลงมือประทับไทม์สแตมป์ โทเค็นไม่ได้บอกอะไรเกี่ยวกับเรื่องนั้น มันลากเส้นเส้นเดียวแล้วบอกว่า ไม่ช้ากว่าตรงนี้
ความเข้าใจผิดที่สองซึ่งมีราคาแพงกว่าคือไทม์สแตมป์พิสูจน์ว่าเอกสารของคุณ เป็นของแท้ หรือ ถูกต้อง มันไม่ได้พิสูจน์ทั้งสองอย่าง มันไม่แยแสต่อความหมาย คำโกหกที่ถูกประทับไทม์สแตมป์อย่างสมบูรณ์แบบก็ยังเป็นคำโกหก — เพียงแต่ตอนนี้พิสูจน์ได้ว่าเก่าแก่แล้ว ความเป็นของแท้มาจากลายเซ็นที่บอกว่า ใคร ความจริงมาจากโลกความเป็นจริง ไทม์สแตมป์พูดถึงแค่ เมื่อใด เท่านั้นเสมอ
ข้อจำกัดและขอบเขต
หัวข้อที่มีชื่อว่า “ข้อจำกัดและขอบเขต”ขอบเขตของไทม์สแตมป์หยุดลงตรงที่โมเดลความเชื่อถือของมันหยุดพอดี มันพิสูจน์ขอบเขตบนของอายุและเพียงเท่านั้น และเฉพาะเมื่อคุณไว้ใจผู้ออกที่ผนึกมัน
มีผู้ออกสองระดับชั้นที่ควรแยกแยะ TSA ที่ได้รับความเชื่อถือสาธารณะ เชื่อมโยงไปยังใบรับรองที่ซอฟต์แวร์ของคุณยอมรับอยู่แล้ว โทเค็นของมันตรวจสอบยืนยันได้อย่างกว้างขวางและเหมาะกับบันทึกส่วนใหญ่ ส่วน TSA ที่ผ่านการรับรองตาม eIDAS เป็นผู้ให้บริการที่อยู่ภายใต้การกำกับดูแลในบัญชีรายชื่อที่เชื่อถือได้ของสหภาพยุโรป และไทม์สแตมป์อิเล็กทรอนิกส์ที่ผ่านการรับรองมี ข้อสันนิษฐานทางกฎหมาย ถึงความแม่นยำของวันที่และความสมบูรณ์ของข้อมูล — ข้อสันนิษฐานที่ไทม์สแตมป์ธรรมดาไม่มี (Spec: eIDAS, Art. 41eIDAS Art. 41) การเลือกระหว่างทั้งสองเป็นคำถามเกี่ยวกับ น้ำหนักเชิงพยานหลักฐาน ที่คุณต้องการ ไม่ใช่เกี่ยวกับการที่ไบต์ทำงานอย่างไร เพราะการเข้ารหัสลับเหมือนกัน
ไทม์สแตมป์ยังสืบทอดอายุขัยของจุดยึดความเชื่อถือของมันเอง ใบรับรองของ TSA หมดอายุหรือถูกเพิกถอนได้ และอัลกอริทึมแฮชที่มันใช้ก็เก่าได้ นั่นคือเหตุผลพอดีที่เอกสารอยู่ยาวไม่ประทับไทม์สแตมป์ครั้งเดียวแล้วเดินจากไป — มันต่ออายุ ด้วยการซ้อนไทม์สแตมป์ของเอกสารสดใหม่ทับหลักฐานเก่าก่อนที่หลักฐานเก่าจะอ่อนแอลง วงรอบการต่ออายุนั้นเป็นหัวข้อของตัวมันเอง ดูที่ การตรวจสอบความถูกต้องระยะยาว
| Edition | Availability |
|---|---|
| Core | รองรับ PAdES B-B และ B-T B-B คือ ลายเซ็นพื้นฐานที่ไม่มีไทม์สแตมป์ ส่วน B-T ร้องขอและฝังไทม์สแตมป์ของลายเซ็น RFC 3161 ที่ตรวจสอบยืนยันแล้ว เทียบกับ TSA ที่การนำไปใช้งานจัดหาให้ ซึ่งคุณเลือกนาฬิกาของมัน |
| Pro | เพิ่มข้อมูลการตรวจสอบความถูกต้องระยะยาวที่ฝังอยู่ (ใบรับรอง, OCSP, CRL) ที่ B-LT ต้องใช้เพื่อรักษาให้ลายเซ็นตรวจสอบยืนยันได้หลังจากใบรับรองของมันหมดอายุ |
| Enterprise | เพิ่มวงรอบการต่ออายุ B-LTA ที่ผนึกข้อมูลการตรวจสอบความถูกต้องไว้ใต้ไทม์สแตมป์ของ เอกสารสดใหม่ และประทับซ้ำก่อนที่การคุ้มครองจะอ่อนแอลง |
เอกสารที่เกี่ยวข้อง
หัวข้อที่มีชื่อว่า “เอกสารที่เกี่ยวข้อง”- ไทม์สแตมป์และเวลาที่เชื่อถือได้ — กลไกเดียวกันที่ระดับเอนจินและ PAdES พร้อมกฎการตรวจสอบยืนยันที่ระบุไว้ครบถ้วน
- การตรวจสอบความถูกต้องระยะยาว — การต่ออายุไทม์สแตมป์ของเอกสารรักษาให้ลายเซ็นตรวจสอบยืนยันได้นานหลายปีอย่างไร
- ลายเซ็นพิสูจน์ว่าใครเป็นผู้ลงนามอย่างไร — ส่วน “ใคร” ของเรื่องราวที่หน้านี้ละไว้
- คำอธิบายลายเซ็นที่ผ่านการรับรอง — “ผ่านการรับรอง” หมายความว่าอย่างไร และทำไม TSA ที่ผ่านการรับรองจึงมีน้ำหนักทางกฎหมาย
อภิธานศัพท์
หัวข้อที่มีชื่อว่า “อภิธานศัพท์”- ผู้ออกไทม์สแตมป์ (Time-Stamp Authority, TSA) — บริการอิสระที่ออกโทเค็นไทม์สแตมป์ที่ลงนามแล้ว คุณไว้ใจนาฬิกาของมันก็เพราะมันไม่ใช่ของคุณ
- โทเค็นไทม์สแตมป์ (Time-stamp token) — ออบเจกต์ขนาดเล็กที่ลงนามแล้วซึ่ง TSA ส่งกลับมา ผูกแฮชของข้อมูลคุณเข้ากับค่าเวลา (Spec: RFC 3161, §2.1RFC 3161 §2.1)
- แฮช (message imprint) — ลายนิ้วมือทางเดียวสั้นๆ ของข้อมูล TSA ลงนามบนสิ่งนี้ ไม่เคยลงนามบนตัวข้อมูลเอง เนื้อหาของคุณจึงยังคงเป็นส่วนตัว
- Nonce — ตัวเลขสุ่มสดใหม่ที่ส่งไปพร้อมคำขอและสะท้อนกลับมาไม่เปลี่ยนแปลงในคำตอบ แสดงว่าโทเค็นสอดคล้องกับ คำขอนั้นโดยเฉพาะ และไม่ใช่คำตอบเก่าที่ถูกเล่นซ้ำ (มันรับรองความสดใหม่ ไม่ใช่ตัวตนของผู้ขอ)
- ขอบเขตบน (Upper bound) — สิ่งที่ไทม์สแตมป์กำหนด คือข้อมูลมีอยู่ ไม่ช้ากว่า ช่วงเวลาที่ระบุ ไม่เคยเป็นช่วงเวลาสร้างที่แม่นยำ
- ไทม์สแตมป์ที่ผ่านการรับรองตาม eIDAS — ไทม์สแตมป์จากผู้ให้บริการในสหภาพยุโรปที่อยู่ภายใต้การกำกับดูแล ซึ่งมีข้อสันนิษฐานทางกฎหมายถึงความแม่นยำของวันที่และความสมบูรณ์ของข้อมูล
- ไทม์สแตมป์ของเอกสาร (Document timestamp) — ไทม์สแตมป์ที่ครอบคลุมทั้งไฟล์ PDF ใช้เพื่อยึดและต่ออายุหลักฐานการตรวจสอบความถูกต้องระยะยาว (Spec: ISO 32000-2, §12.8.5ISO 32000-2 §12.8.5)