Bức tranh tổng quan về các tiêu chuẩn
Spec: ISO 32000-2 ISO 32000-2 Spec: ETSI EN 319 142-1 ETSI EN 319 142-1 Spec: RFC 3161 RFC 3161 Spec: WCAG 2.2 WCAG 2.2 Evidence: Standard-backed
Nhìn nhanh
Phần tiêu đề “Nhìn nhanh”Một engine PDF không chỉ chịu trách nhiệm trước một tài liệu duy nhất. Nó chịu trách nhiệm trước một liên minh nhỏ gồm các tiêu chuẩn, do nhiều tổ chức khác nhau soạn thảo và tham chiếu lẫn nhau. Trang này phác họa liên minh đó theo cách mà NextPDF theo dõi nó. Trang cũng cho thấy con đường mà một điều khoản đi qua, từ “một tiêu chuẩn quy định như vậy” đến “engine làm đúng như vậy, và một bài kiểm thử chứng minh điều đó.”
Trang này dành cho kỹ sư cấp cao, người cần biết tài liệu nào chi phối một hành vi trước khi quyết định liệu cách NextPDF diễn giải nó có phải là cách họ có thể bảo vệ được hay không.
Vì sao điều này quan trọng
Phần tiêu đề “Vì sao điều này quan trọng”“Hỗ trợ PDF” là một tuyên bố che giấu một câu hỏi: chính xác là hỗ trợ cái gì? Cú pháp lõi là ISO 32000-2. Chữ ký đi qua ETSI. Dấu thời gian là một giao thức của IETF. HTML và CSS mà engine kết xuất thuộc về W3C. Phần mật mã bên dưới thuộc về NIST. Khả năng tiếp cận của đầu ra lại thuộc về W3C.
Nếu một thư viện xem tất cả những thứ đó như một khối không phân biệt, bạn không thể lập luận rõ ràng về một lỗi. Khi một trình kiểm tra từ chối một hóa đơn đã ký, câu hỏi hữu ích đầu tiên không phải là “PDF có bị hỏng không?” mà là “điều khoản của tiêu chuẩn nào đã không được đáp ứng, và ở phía nào?” Để đặt được câu hỏi đó, bạn cần một bản đồ gọi tên các tổ chức và một tường thuật trung thực về cách một điều khoản trở thành hành vi.
Phiên bản ngắn gọn
Phần tiêu đề “Phiên bản ngắn gọn”- NextPDF theo dõi năm tổ chức tiêu chuẩn. ISO sở hữu định dạng. ETSI sở hữu các hồ sơ chữ ký của châu Âu. IETF sở hữu các giao thức truyền tải (dấu thời gian, các hàm mật mã cơ bản theo tham chiếu). W3C sở hữu HTML, CSS và các tiêu chí về khả năng tiếp cận. NIST sở hữu các thuật toán mật mã đã được phê duyệt.
- Các tài liệu này tạo thành những lối đi, không phải một danh sách: một khả năng PDF có chữ ký đơn lẻ đi qua ISO → ETSI → IETF → NIST, trong đó mỗi lớp tham chiếu quy chuẩn đến lớp tiếp theo.
- Một điều khoản không trở thành hành vi chỉ vì được đọc. Nó trở thành hành vi khi được diễn giải lại và trích dẫn, ánh xạ thành một yêu cầu, triển khai, và ghim lại bằng một bài kiểm thử. Trang mô tả hành vi đó thể hiện rõ điều này qua mức độ bằng chứng của nó.
- Khi một điều khoản là bắt buộc, nó mang một từ khóa quy chuẩn (một
shall, mộtmust). NextPDF xem những từ khóa đó như các cam kết ràng buộc. Mộtshouldlà một khuyến nghị mà nó ghi nhận đúng như vậy, chứ không phải như một bảo đảm.
Cách NextPDF tiếp cận vấn đề này
Phần tiêu đề “Cách NextPDF tiếp cận vấn đề này”Một liên minh, không phải một khối
Phần tiêu đề “Một liên minh, không phải một khối”ISO 32000-2 là trung tâm. Nó định nghĩa thế nào là một tệp tuân thủ. Một tệp tuân thủ phải đáp ứng mọi yêu cầu của tài liệu, đồng thời có thể bỏ qua bất kỳ tính năng nào mà tài liệu không yêu cầu rõ ràng Spec: ISO 32000-2, §6 ISO 32000-2 §6 . Nó cũng đặt ra nghĩa vụ cho bên ghi: bất cứ thứ gì NextPDF tạo ra hoặc sửa đổi trong một tệp đều phải tuân thủ định dạng và giữ tính nhất quán với các phần tử đã có sẵn ở đó Spec: ISO 32000-2, §6 ISO 32000-2 §6 . Chỉ riêng điều khoản đó đã là lý do khiến engine từ chối phát ra một bản cập nhật gia tăng không nhất quán về mặt cấu trúc. Đó không phải là sở thích của NextPDF. Đó là quy tắc của chính định dạng.
Từ trung tâm đó, ISO 32000-2 trỏ ra bên ngoài. Việc xử lý chữ ký của nó được định nghĩa “bằng cách tham chiếu” đến bộ ETSI EN 319 142 cho PAdES. Đến lượt mình, ETSI tham chiếu RFC 3161 của IETF cho token dấu thời gian, và bộ NIST FIPS cho các thuật toán băm và chữ ký. Vì vậy, một khả năng là một lối đi qua nhiều tài liệu, mỗi tài liệu mang tính quy chuẩn cho lớp riêng của nó.
- Step 1 of 5: ISO 32000-2 §12.8 signatures
- Step 2 of 5: ETSI EN 319 142-1 PAdES baseline
- Step 3 of 5: RFC 3161 timestamp token
- Step 4 of 5: NIST FIPS 180-4 hash strength
- Step 5 of 5: WCAG 2.2 tagged output
Cách một điều khoản trở thành hành vi
Phần tiêu đề “Cách một điều khoản trở thành hành vi”Cách làm nguy hiểm với tiêu chuẩn là đọc một điều khoản rồi viết mã theo trí nhớ. Con đường của NextPDF dài hơn một cách có chủ đích, bởi vì chỉ con đường dài hơn đó mới có thể kiểm toán được:
- Retrieve The clause is read from the standard, not from memory.
- Cite It is paraphrased and pinned with a chunk digest, never quoted.
- Classify Its keyword (shall / should / may) sets whether it is a contract or a recommendation.
- Map The obligation becomes a concrete engine requirement.
- Implement The requirement is built into the pipeline.
- Pin A test holds the behaviour against drift.
- Tag The page that describes it declares its evidence level.
Bước “phân loại” là nơi phần lớn sự mơ hồ được giải quyết. Các đặc tả mã hóa mức độ yêu cầu của chúng bằng các từ khóa: nhóm quen thuộc gồm MUST, SHALL, SHOULD, MAY. Ý nghĩa của những từ khóa đó được cố định bởi quy ước từ khóa yêu cầu của IETF, vốn đã được cập nhật để làm rõ rằng chỉ các dạng viết hoa mới mang tính quy chuẩn, rồi được áp dụng vào phần văn bản mô tả của từng đặc tả
Spec: RFC 2119 RFC 2119 Spec: RFC 8174 RFC 8174 .
NextPDF hiểu một shall là một ranh giới cứng mà engine không vượt qua, và một
should là một khuyến nghị mà nó tuân theo và ghi nhận như một khuyến nghị —
không bao giờ như một lời hứa. Chính sự phân biệt đó tạo nên ranh giới giữa một
tuyên bố khả năng trung thực và một sự thổi phồng.
Sự tuân thủ có nhiều cấp độ, không phải nhị phân
Phần tiêu đề “Sự tuân thủ có nhiều cấp độ, không phải nhị phân”“Tuân thủ” hiếm khi chỉ là một bit. Các tiêu chuẩn chữ ký được phân cấp — chẳng hạn, hồ sơ dài hạn có lưu trữ của châu Âu được thiết kế riêng để thêm các token dấu thời gian, giúp một chữ ký vẫn có thể kiểm tra hợp lệ rất lâu sau khi nó được tạo ra Spec: ETSI EN 319 122-1, §6 ETSI EN 319 122-1 §6 . Đây là một tuyên bố mạnh hơn hẳn so với một chữ ký nền tảng đơn thuần. Tiêu chuẩn về khả năng tiếp cận cũng có hình thức tương tự: một mức tuân thủ chỉ đạt được khi đáp ứng mọi tiêu chí thành công ở mức đó, và một tuyên bố nêu rõ mức mà nó thực sự đạt được Spec: WCAG 2.2, §5.2.1 WCAG 2.2 §5.2.1 . Vì vậy, NextPDF nêu rõ hồ sơ và mức độ, chứ không chỉ dùng một chữ “tuân thủ” chung chung.
Bằng chứng nói gì
Phần tiêu đề “Bằng chứng nói gì”Trang này là Evidence: Standard-backed : mỗi tuyên bố đều được neo vào một điều khoản, được diễn giải lại, và được trích dẫn kèm một digest để người rà soát tiếp theo có thể kiểm tra lại với nguồn gốc.
| Lớp | Tổ chức | Điều khoản neo (đã diễn giải lại) | Nó chi phối điều gì trong NextPDF |
|---|---|---|---|
| Định dạng | ISO | Các phần tử do bên ghi tạo ra hoặc sửa đổi phải tuân thủ và giữ tính nhất quán Spec: ISO 32000-2, §6 ISO 32000-2 §6 | Tệp PDF mà engine phát ra |
| Sự tuân thủ | ISO | Một tệp tuân thủ đáp ứng tất cả các yêu cầu; các tính năng bổ sung là tùy chọn Spec: ISO 32000-2, §6 ISO 32000-2 §6 | “Đầu ra hợp lệ” nghĩa là gì |
| Hồ sơ chữ ký | ETSI | Mức dài hạn có lưu trữ thêm các dấu thời gian để kiểm tra hợp lệ về sau Spec: ETSI EN 319 122-1, §6 ETSI EN 319 122-1 §6 | Hồ sơ PAdES mà một chữ ký nhắm tới |
| Thời gian đáng tin cậy | IETF | Một dịch vụ dấu thời gian chứng minh một dữ liệu đã tồn tại trước một thời điểm Spec: RFC 3161, §2 RFC 3161 §2 | Token dấu thời gian của tài liệu |
| Mật mã | NIST | Các hàm băm đã được phê duyệt khác nhau về độ mạnh bảo mật mà chúng mang lại Spec: NIST FIPS 180-4, §1 NIST FIPS 180-4 §1 | Thuật toán digest đứng dưới một chữ ký |
| Khả năng tiếp cận đầu ra | W3C | Một mức tuân thủ đòi hỏi mọi tiêu chí ở mức đó Spec: WCAG 2.2, §5.2.1 WCAG 2.2 §5.2.1 | Các tuyên bố về khả năng tiếp cận trên PDF đã kết xuất |
Các digest được trích dẫn được ghi lại trong frontmatter citations của trang này. Không có phần văn bản nào của các tiêu chuẩn được tái hiện ở đây. Chính quy tắc chi phối lựa chọn đó là một trang riêng. Xem Kỷ luật trích dẫn.
Ví dụ thực tế
Phần tiêu đề “Ví dụ thực tế”Bạn không trực tiếp vận hành bức tranh tổng quan về các tiêu chuẩn; bạn đọc nó để quyết định cần yêu cầu engine làm gì. Cụ thể, một lời gọi ký có thể kiểm tra hợp lệ dài hạn là một cách nói rõ điểm nào trên lối đi mà bạn cần:
<?php
declare(strict_types=1);
use NextPDF\Core\Document;use NextPDF\Security\Signature\CertificateInfo;use NextPDF\Security\Signature\DigitalSigner;use NextPDF\Security\Signature\SignatureLevel;
// The signature level is a coordinate on the ISO -> ETSI -> RFC trail.// PAdES B-B is the ETSI baseline CMS SignedData the Core engine produces;// B-T adds an RFC 3161 timestamp, and B-LT/B-LTA add the DSS and document// timestamps that keep a signature validatable after the certificate// expires. The level you name is the point on the trail you are asking for.$certInfo = CertificateInfo::fromFiles( certPath: 'signer-cert.pem', keyPath: 'signer-key.pem',);
// The functional signing path is the direct two-phase signing engine.// (Document::setSignature() records intent but its writer seam is not yet// wired and fail-fasts on output — see the PadesOrchestrator docblock.)$signer = new DigitalSigner( certInfo: $certInfo, level: SignatureLevel::PAdES_B_B,);
$result = $signer->sign(file_get_contents('agreement.pdf'));
printf( "PAdES %s CMS: %d bytes, timestamp=%s\n", SignatureLevel::PAdES_B_B->value, $result->getSize(), $result->hasTimestamp() ? 'yes' : 'no',);Việc chỉ định PAdES_B_LTA thay vì một mức nền tảng đơn thuần không phải là một núm chỉnh hiệu năng. Đó là quyết định về việc nghĩa vụ vươn xa đến đâu trên lối đi tiêu chuẩn. B-LT và B-LTA kéo theo các lớp DSS và dấu thời gian lưu trữ, đồng thời yêu cầu gói LTV bản doanh nghiệp tại thời điểm chạy. Thay vì âm thầm hạ cấp, engine từ chối giả vờ rằng một mức thấp hơn có thể đem lại một mức cao hơn.
Hiểu lầm thường gặp
Phần tiêu đề “Hiểu lầm thường gặp”Cái bẫy là hiểu câu “NextPDF tuân thủ các tiêu chuẩn” như một bảo đảm duy nhất, toàn diện. Không phải vậy, và không một engine trung thực nào đưa ra một bảo đảm như thế. Sự tuân thủ là theo từng tiêu chuẩn, theo từng điều khoản, và theo từng mức. NextPDF nhắm tới mức nền tảng PDF 2.0, các hồ sơ PAdES được nêu tên, và các mức khả năng tiếp cận đã công bố — mỗi mức đều có phạm vi rõ ràng, mỗi mức đều được trích dẫn. Một tuyên bố không có điều khoản và mức độ đứng sau là tiếp thị, và Insider_ không in ra điều đó.
Cái bẫy thứ hai, tinh vi hơn, là cho rằng một should mang tính quy chuẩn là một lời hứa. Nó là một khuyến nghị. NextPDF ghi nhận các khuyến nghị đúng như khuyến nghị. Các bảo đảm của engine được xây dựng từ các điều khoản shall, và sự khác biệt đó là then chốt.
Giới hạn và ranh giới
Phần tiêu đề “Giới hạn và ranh giới”Trang này là bản đồ, không phải vùng lãnh thổ. Nó không liệt kê mọi điều khoản mà NextPDF triển khai, và cũng không phải là một chứng chỉ tuân thủ. Bằng chứng cho từng hành vi nằm trên trang chủ đề sở hữu hành vi đó, với mức độ bằng chứng riêng của trang đó — chẳng hạn PDF 2.0: những thay đổi cho phần khác biệt về định dạng.
Bức tranh tổng quan về các tiêu chuẩn cũng dịch chuyển. Các phiên bản mới được phát hành. Các tham chiếu được cập nhật. Một điều khoản được trích dẫn ở đây được ghim vào ảnh chụp corpus được ghi lại trong citations của trang này. Khi một tiêu chuẩn ở thượng nguồn được sửa đổi, trích dẫn được kiểm tra hợp lệ lại với điều khoản mới, chứ không mặc nhiên cho rằng nó vẫn còn giá trị. Ở những chỗ trang này gọi tên một khả năng thuộc gói Premium, nó làm vậy trên bình diện nó chịu trách nhiệm trước tiêu chuẩn nào, không bao giờ trên bình diện cơ chế nội bộ.
Tài liệu liên quan
Phần tiêu đề “Tài liệu liên quan”- PDF 2.0: những thay đổi — phần khác biệt cụ thể của ISO 32000-2 mà lớp định dạng của bản đồ này trỏ tới.
- Tài liệu như một sản phẩm — vì sao kỷ luật ánh xạ điều khoản thành hành vi được xem là công việc kỹ thuật.
- Kỷ luật trích dẫn — quy tắc quyết định cách một điều khoản được trích dẫn ở đây, và một mức độ bằng chứng có ý nghĩa gì.
Thuật ngữ
Phần tiêu đề “Thuật ngữ”- Tổ chức tiêu chuẩn — một tổ chức công bố một đặc tả (ISO, ETSI, IETF, W3C, NIST). Mỗi tổ chức sở hữu một lớp khác nhau của ngăn xếp PDF.
- Điều khoản quy chuẩn — một yêu cầu trong một tiêu chuẩn, được nhận diện qua từ khóa của nó (
shall/mustcho bắt buộc,shouldcho khuyến nghị,maycho tùy chọn). - Lối đi tiêu chuẩn — một chuỗi đặc tả có thứ tự mà một khả năng đơn lẻ đi qua, trong đó mỗi tài liệu tham chiếu quy chuẩn đến tài liệu tiếp theo.
- Mức tuân thủ — một bậc tuân thủ được phân cấp (một hồ sơ nền tảng của ETSI, một mức của WCAG). Một tuyên bố nêu rõ mức thực sự đạt được, chứ không phải một chữ “tuân thủ” chung chung.
- PAdES — PDF Advanced Electronic Signatures, họ hồ sơ chữ ký ETSI EN 319 142 mà ISO 32000-2 tham chiếu cho việc ký PDF.