Quy trình cho hợp đồng đã ký
Spec: ETSI EN 319 142-2, §5.1 ETSI EN 319 142-2 §5.1 Spec: ISO 32000-2:2020, §12.8 ISO 32000-2:2020 §12.8 Evidence: Mixed evidence
Tổng quan nhanh
Phần tiêu đề “Tổng quan nhanh”Một thỏa thuận đã ký không chỉ là “một tệp PDF có chữ ký trên đó.” Đó là tài liệu được chuẩn bị sao cho chữ ký bảo vệ đúng những byte cần bảo vệ. Tài liệu đó được ký ở mức tương xứng với nghĩa vụ, rồi được đóng gói để vẫn có thể xác minh sau khi chứng chỉ ký hết hạn. Trang này đi qua kịch bản đó, từ tài liệu trống đến hợp đồng có tuổi thọ dài. Trang này cũng nói thẳng những bước engine hiện đã đấu nối và những bước engine chỉ phơi bày dưới dạng một bề mặt đã đóng băng.
Vì sao điều này quan trọng
Phần tiêu đề “Vì sao điều này quan trọng”Một hợp đồng xác minh được vào ngày ký nhưng lại thất bại ba năm sau trong một vụ tranh chấp còn tệ hơn là không có chữ ký nào cả, vì đã có người dựa vào nó. Lỗi hiếm khi nằm ở mật mã học. Thường đó là dấu thời gian bị thiếu hoặc bằng chứng thu hồi bị thiếu, và điều này chỉ được phát hiện rất lâu sau khi người ký đã rời khỏi quy trình.
Chọn nghĩa vụ chữ ký ngay từ đầu, rồi tạo ra bằng chứng mà nghĩa vụ đó cần tại thời điểm ký, chính là điều phân biệt một thỏa thuận có thể đứng vững với một thỏa thuận âm thầm suy yếu. Đây là quyết định cần được đưa ra một lần, ngay trong quy trình, thay vì phải khám phá lại trong từng vụ tranh chấp.
Bản tóm tắt ngắn gọn
Phần tiêu đề “Bản tóm tắt ngắn gọn”- Chuẩn bị, rồi mới ký. Một chữ ký bao trùm chính xác dải byte mà nó được tính toán trên đó. Hãy quyết định tài liệu đã là bản cuối — bao gồm mọi bản sửa đổi được nối thêm sau này — trước khi bạn ký, chứ không phải sau đó.
- Chọn mức theo nghĩa vụ, chứ không phải ngược lại. PAdES định nghĩa một chuỗi tiến triển: chữ ký cơ bản, chữ ký có dấu thời gian, chữ ký có nhúng vật liệu xác thực, và chữ ký được đóng dấu lại để có hiệu lực lưu trữ vô thời hạn (ETSI EN 319 142-2 §5.1).
- Hiệu lực dài hạn là một cấu trúc, chứ không phải một thuộc tính. Đó là Document Security Store cộng với dấu thời gian tài liệu, được ghi vào tệp (ISO 32000-2:2020 §12.8).
- Hãy chính xác về đường ranh giới. Lớp cấp cao NextPDF
Document::setSignature()đóng băng API công khai nhưng thất bại sớm thay vì phát ra tệp chưa ký. Đường đã được đấu nối là bộ điều phối ở cấp thấp hơn. Trang này không giả vờ điều ngược lại.
NextPDF tiếp cận điều này như thế nào
Phần tiêu đề “NextPDF tiếp cận điều này như thế nào”NextPDF tách quyết định khỏi cơ chế. Quyết định là việc nghĩa vụ cần mức PAdES nào. Cơ chế là cách các byte được ký và cách vật liệu xác thực được mang theo. Gộp hai thứ này làm một là cách các nhóm rốt cuộc có một chữ ký hợp lệ nhưng không bền vững.
Kịch bản có bốn giai đoạn.
- Prepare the document Compose the agreement and treat it as final. The signature will protect this exact byte range and nothing added outside it without a new revision.
- Choose the obligation B-B proves who. B-T adds trusted time. B-LT embeds the material to validate later. B-LTA re-stamps for indefinite validity.
- Sign A CMS signature is embedded in the signature dictionary over the byte range; a timestamp is requested from a TSA if the level needs one.
- Preserve For long-term levels, the Document Security Store and a document timestamp are written so the signature outlives its certificate.
Enum mức là có thật, và nó mã hóa nghĩa vụ một cách rõ ràng. B-B chứng minh danh tính của người ký. B-T bổ sung một dấu thời gian đáng tin cậy. “Khi nào” được xác lập chắc chắn ngang với “ai”. B-LT nhúng các chứng chỉ và phản hồi thu hồi cần thiết để xác thực chữ ký sau khi chứng chỉ ký hết hạn.
B-LTA bổ sung các dấu thời gian tài liệu để chuỗi tin cậy có thể được gia hạn
vô thời hạn bằng cách đóng dấu lại trước khi mỗi chứng chỉ dấu thời gian hết hiệu lực. Enum
biết mức nào đòi hỏi dấu thời gian và mức nào đòi hỏi vật liệu xác thực
được nhúng, để engine có thể từ chối một tổ hợp bất khả thi
thay vì tạo ra một tệp “đã ký” một cách gây hiểu lầm.
Bằng chứng cho biết điều gì
Phần tiêu đề “Bằng chứng cho biết điều gì”Chuỗi tiến triển này được chuẩn-hậu-thuẫn. Evidence: Standard-backed Spec: ETSI EN 319 142-2, §5.1 ETSI EN 319 142-2 §5.1 mô tả các mức PAdES xếp lớp trên các khối xây dựng EN 319 142-1, từ một chữ ký nhúng cơ bản trở lên. Cấu trúc dài hạn được cố định bởi Spec: ISO 32000-2:2020, §12.8 ISO 32000-2:2020 §12.8 : xác thực dài hạn dựa trên Document Security Store và một từ điển dấu thời gian tài liệu được ghi vào tệp.
Mô hình mức được mã-hậu-thuẫn. Evidence: Code-backed Enum
SignatureLevel có bốn trường hợp PAdES (B-B, B-T, B-LT,
B-LTA) với các phương thức vị từ cho “đòi hỏi dấu thời gian”, “đòi hỏi
vật liệu xác thực được nhúng”, và “đòi hỏi các dấu thời gian tài liệu”. Lớp
cấp cao Document::setSignature() được đấu nối tới một bộ canh gác thất bại-sớm
nêu ra một chẩn đoán chặn-đứng, có thể hành động được thay vì phát ra một tài liệu
chưa ký — một hành vi có thể xác minh, chứ không phải một tuyên bố.
Hành vi bảo trì dài hạn được ghi lại ở mức năng lực cho cấp Premium: bề mặt lưu trữ ghi DSS và VRI cho từng chữ ký, kiểm tra tính đầy đủ của bản lưu trữ bằng một bước kiểm tra sức khỏe, và đóng dấu lại bằng dấu thời gian tài liệu trước khi chứng chỉ dấu thời gian hết hạn. Tài liệu nêu rõ rằng bên xác minh vẫn là bên quyết định.
Ví dụ thực tế
Phần tiêu đề “Ví dụ thực tế”Phần này trình bày quyết định — chọn nghĩa vụ — bằng cách dùng enum thật. Đường ký đã được đấu nối là bộ điều phối ở cấp thấp hơn. Lệnh gọi cấp cao chỉ được trình bày để làm rõ hành vi thất bại-sớm.
<?php
declare(strict_types=1);
use NextPDF\Security\Signature\SignatureLevel;
/** * Map a business obligation to a PAdES level. * * The obligation drives the level, not the reverse — choosing B-B for a * 10-year contract is a decision you do not want to make implicitly. */function levelForObligation(string $obligation): SignatureLevel{ return match ($obligation) { // Internal sign-off, short retention, signer identity is enough. 'internal_approval' => SignatureLevel::PAdES_B_B,
// Counterparty agreement: prove the moment of signing. 'counterparty_agreement' => SignatureLevel::PAdES_B_T,
// Regulated contract that must verify after cert expiry. 'regulated_contract' => SignatureLevel::PAdES_B_LT,
// Long-lived legal record: indefinite, re-stampable validity. 'long_term_legal_record' => SignatureLevel::PAdES_B_LTA,
default => throw new \InvalidArgumentException( "Unknown obligation: {$obligation}", ), };}
$level = levelForObligation('regulated_contract');
// The enum carries the obligation's implications with it.$needsTsa = $level->requiresTimestamp(); // true for B-T+$needsDss = $level->requiresDss(); // true for B-LT+$needsArchive = $level->requiresDocumentTimestamp(); // true only for B-LTAĐối tượng mức không chỉ là một nhãn. Nó trả lời nghĩa vụ kéo theo những gì, để phần đấu nối phía sau không phải suy luận lại.
Quan niệm sai thường gặp
Phần tiêu đề “Quan niệm sai thường gặp”Quan niệm sai lặp đi lặp lại là “chữ ký hợp lệ rồi, vậy là chúng ta xong.” Hợp lệ vào hôm nay là cần thiết nhưng chưa đủ. Một chữ ký được tính toán trên một dải byte. Bất cứ thứ gì được nối thêm ngoài dải đó trong một bản sửa đổi sau này đều không được chữ ký bao trùm, đó chính xác là lý do việc chuẩn bị phải đi trước việc ký. Và một chữ ký xác minh được ngay bây giờ vẫn có thể thất bại sau này khi chứng chỉ của nó hết hạn, trừ khi vật liệu xác thực đã được nhúng vào thời điểm ký. “Hợp lệ” và “bền vững” là hai bảo đảm khác nhau, và chỉ nghĩa vụ mới cho bạn biết bạn thật sự cần cái nào.
Một cái bẫy liên quan đặc thù với engine này: cho rằng lớp cấp cao
setSignature() tạo ra một tệp đã ký vào hôm nay. Nó không tạo ra. Nó thất bại sớm
một cách có chủ đích. Hãy coi chẩn đoán đó như hợp đồng.
Giới hạn và ranh giới
Phần tiêu đề “Giới hạn và ranh giới”Document::setSignature()là một bề mặt công khai đã đóng băng, chứ không phải một bộ ký đã đấu nối. Nó thất bại sớm với một chẩn đoán chặn-đứng. Nó không bao giờ phát ra tệp PDF chưa ký để thay cho một tệp đã ký. Đường đã được đấu nối là bộ điều phối hai pha ở cấp thấp hơn.- Việc bảo trì xác thực dài hạn (DSS/VRI, kiểm tra sức khỏe, vòng lặp dấu thời gian lưu trữ) là một năng lực thuộc cấp Premium. Core không cung cấp vòng lặp lưu trữ. Xem ranh giới ở bên dưới.
- Một chữ ký bảo vệ chính xác dải byte của nó. Các bản sửa đổi được nối thêm sau này là tách biệt. Engine không hồi tố mở rộng phạm vi bao trùm.
- NextPDF tạo ra và duy trì các cấu trúc; nó không phân xử. Việc một chữ ký có đáng tin cậy hay không phụ thuộc vào các neo tin cậy và chính sách của bên xác minh, vốn nằm ngoài engine.
- B-LTA tự nó không làm cho một chữ ký trở nên vĩnh viễn. Nó chỉ kích hoạt hiệu lực vô thời hạn nếu vòng lặp đóng dấu lại chạy đúng lịch trước khi mỗi chứng chỉ dấu thời gian hết hạn.
- Trang này ở mức hành vi đối với bề mặt lưu trữ Premium. Nó không khẳng định sự chấp nhận của bất kỳ tòa án hay cơ quan cụ thể nào.
| Edition | Availability |
|---|---|
| Core | Core phơi bày enum |
| Pro | Phần ký nền tảng PAdES (B-B / B-T) qua bộ điều phối là sẵn có. |
| Enterprise | Bổ sung B-LT / B-LTA, Document Security Store và việc bảo trì VRI cho từng chữ ký , bước kiểm tra sức khỏe LTV, và vòng lặp lưu trữ dấu thời gian tài liệu để có hiệu lực vô thời hạn. |
Tài liệu liên quan
Phần tiêu đề “Tài liệu liên quan”- Hồ sơ nền tảng PAdES — B-B, B-T, B-LT, B-LTA được giải thích như một chuỗi tiến triển và cách chọn.
- Xác thực dài hạn — vì sao một chữ ký xác minh được hôm nay có thể thất bại sau mười năm nữa, và LTV nhúng bằng chứng như thế nào.
- Hướng dẫn quyết định tích hợp — gói hệ sinh thái nào phù hợp với một quy trình ký, bao gồm cả ranh giới phê duyệt thủ công trong NextPDF Connect.
Bảng thuật ngữ
Phần tiêu đề “Bảng thuật ngữ”- PAdES — PDF Advanced Electronic Signatures: họ hồ sơ ETSI định nghĩa cách một chữ ký điện tử nâng cao được mang theo trong một tệp PDF.
- Byte range — dải byte tệp liền kề mà một chữ ký được tính toán trên đó; nội dung nằm ngoài dải đó không được chữ ký đó bảo vệ.
- Mức chữ ký (B-B / B-T / B-LT / B-LTA) — chuỗi tiến triển PAdES: ai đã ký, khi nào, với vật liệu xác thực được nhúng, và có thể đóng dấu lại để có hiệu lực lưu trữ vô thời hạn.
- TSA — Time-Stamping Authority: một dịch vụ RFC 3161 khẳng định một trạng thái tài liệu đã tồn tại tại một thời điểm UTC cho trước.
- DSS (Document Security Store) — kho lưu trong tệp các chứng chỉ, phản hồi OCSP, và CRL cần thiết để xác thực một chữ ký sau khi chứng chỉ của nó hết hạn.
- LTV (Long-Term Validation) — giữ cho một chữ ký xác minh được theo thời gian bằng cách nhúng bằng chứng xác thực và đóng dấu lại cho nó.
- Fail-fast — từ chối tạo ra một sản phẩm gây hiểu lầm và thay vào đó nêu lên một lỗi có thể hành động được, thay vì phát ra một tệp sai âm thầm.