Enterprise phiên bản
Xác minh chữ ký — Tài liệu tham chiếu chuyên sâu
Nhìn tổng quan
Phần tiêu đề “Nhìn tổng quan”Trang này là tham chiếu chuyên sâu cho bề mặt phía xác minh AdES trong NextPDF Enterprise. Điểm vào là NextPDF\Enterprise\Security\Validation\AdESValidationEngine. Nó triển khai các luồng xác thực mô hình hóa theo ETSI của NextPDF cho các phép kiểm tra cơ bản, có thời gian, dài hạn, và dấu thời gian lưu trữ: xác thực cơ bản, xác thực có thời gian, xác thực với dữ liệu dài hạn, và xác thực chuỗi bao phủ DocTimeStamp lưu trữ. Kết quả là các giá trị ValidationReport mang theo các case enum MainIndication và SubIndication với các giá trị chuỗi ETSI URN. Các bề mặt hỗ trợ được ghi lại ở đây: SPI SignatureDataExtractor và bản triển khai CmsSignatureDataExtractor của nó, trình quét cấp byte PdfSignatureDictionaryScanner, bề mặt xác thực đường dẫn NextPDF\Enterprise\Security\Pki, và BatchSignatureValidator. Để có hướng dẫn ở cấp quy trình, xem Xác minh chữ ký: phía xác minh mật mã AdES / PAdES.
Khả năng cung cấp & cấp phép
Phần tiêu đề “Khả năng cung cấp & cấp phép”Năng lực này được cung cấp trong NextPDF Enterprise (nextpdf/enterprise) và kích hoạt bằng một gói giấy phép cấp Enterprise. Một triển khai không có quyền đó sẽ không nạp các lớp của năng lực này. So sánh các phiên bản và nhận giấy phép.
Bề mặt API công khai
Phần tiêu đề “Bề mặt API công khai”| Ký hiệu | Tham số | Hành vi mặc định | Trả về | Ném hoặc thất bại với | Ghi chú |
|---|---|---|---|---|---|
AdESValidationEngine::__construct | 11 tham số tùy chọn: ?PathValidatorInterface $chainValidator, ?SignatureDataExtractor $extractor, ClockInterface $clock, ?LoggerInterface $logger, string $defaultPolicy, NetworkPolicy $networkPolicy, và năm cộng tác viên verifier tùy chọn | Tất cả mặc định đều fail-closed: trình xác thực đường dẫn Pki trên đồng hồ của engine, không có extractor, không có kho tin cậy TSA | Engine mới | Không ném | Không có kho tin cậy, đánh giá chuỗi TSA báo cáo là không được tin cậy; điều đó ánh xạ tới INDETERMINATE, không bao giờ là kết quả đạt |
AdESValidationEngine::validateBasic | string $signedData, string $signature | Xác thực cơ bản: định dạng, digest, mật mã, thuật toán yếu, chuỗi, thu hồi có kiểm soát theo xuất xứ | ValidationReport | Không ném; các thất bại trích xuất và đường dẫn ánh xạ tới các báo cáo fail-closed | Không có extractor, chỉ kiểm tra bảo vệ; xem các trường hợp biên |
AdESValidationEngine::validateWithTime | string $signedData, string $signature, DateTimeImmutable $claimedTime | Xác thực cơ bản trước; cửa sổ chứng chỉ và thu hồi được so sánh với thời gian đã tuyên bố | ValidationReport | Không ném | Cổng dấu thời gian chữ ký nghiêm ngặt khi thuộc tính hiện diện; $claimedTime vẫn là mốc thời gian |
AdESValidationEngine::validateWithLongTermData | string $signedData, string $signature, array $dssData (certs/ocsps/crls) | Yêu cầu đạt cơ bản; cổng dấu thời gian chữ ký được kích hoạt với TSA-tại-genTime; các cổng POE, thu hồi DSS, và lưu trữ | ValidationReport | Không ném | NetworkPolicy::STRICT_OFFLINE với dữ liệu nhúng không đủ tạo ra INDETERMINATE / TRY_LATER |
AdESValidationEngine::validateArchivalTimestampChain | string $pdfBytes, array $dssData = [], ?TrustAnchorStoreInterface $anchors = null | Chuỗi bao phủ DocTimeStamp dựa trên bằng chứng trên chính xác các byte ByteRange | ValidationReport | Không ném với byte thù địch | TOTAL_PASSED chỉ dành cho một chuỗi được tin cậy, bao phủ tới EOF |
MainIndication | — | Enum dựa trên chuỗi, ba case | — | — | Các giá trị ETSI URN; xem danh sách case bên dưới |
SubIndication | — | Enum dựa trên chuỗi, mười lăm case | — | — | Các giá trị ETSI URN; xem danh sách case bên dưới |
ValidationReport::__construct | MainIndication $mainIndication, ?SubIndication $subIndication, DiagnosticData $diagnosticData, DateTimeImmutable $validationTime, string $validationPolicy = '' | Kết quả xác thực bất biến (final readonly) | Báo cáo mới | Không ném | isPassed(), isFailed(), isIndeterminate(), toArray() |
DiagnosticData::__construct | array $certificateChain, array $timestamps, array $revocationData, string $validationPolicy, string $signatureFormat, array $warnings (tất cả đều có mặc định) | Vùng chứa bằng chứng bất biến; chỉ để lưu vết kiểm toán | Giá trị mới | Không ném | toArray() tuần tự hóa các tham chiếu để báo cáo |
SignatureDataExtractor::extract | string $signedData, string $signature | SPI: phân tích CMS và trích xuất các thành phần xác thực | ExtractedSignatureData | SignatureExtractionException khi không thể phân tích chữ ký | Interface; tách rời việc phân tích ASN.1 khỏi engine |
CmsSignatureDataExtractor::extract | string $signedData, string $signature | Trích xuất cộng với xác minh bằng mật mã một chữ ký cơ bản PAdES tách rời | ExtractedSignatureData | SignatureExtractionException chỉ khi hoàn toàn không thể phân tích CMS | Một thất bại về mật mã hoặc ràng buộc trả về dữ liệu với cryptoValid / hashValid là false; nó không bao giờ ném vì điều đó |
PdfSignatureDictionaryScanner::scan | string $pdfBytes | Quét cấp byte tìm các từ điển /ByteRange + /Contents với các kiểm tra chéo chống giả mạo khớp chính xác | list<PdfSignatureOccurrence> | Toàn phần; không bao giờ ném; các ứng viên dị dạng bị bỏ qua | Được sắp xếp theo điểm kết thúc bao phủ, sớm nhất trước |
PathValidatorInterface::validate | array $chain, ?DateTimeImmutable $validationTime = null, array $initialPolicies = [] | Xác thực đường dẫn RFC 5280 §6.1.4 với xử lý chính sách | PathValidationResult | PathValidationException khi chuỗi không hợp lệ về mặt cấu trúc hoặc khi vượt qua một giới hạn đối kháng | Chuỗi có thực thể-cuối trước, neo cuối cùng |
PathValidatorInterface::validateWithAiaChasing | array $chain, ?DateTimeImmutable $validationTime = null | Giải quyết AIA cho các trung gian bị thiếu, rồi xác thực | PathValidationResult | PathValidationException | Việc tải được giới hạn bởi thời gian chờ và giới hạn byte |
CertificateChainValidator | Constructor: engine, PathValidationOptions, clock, logger; static withDefaults() | Bản triển khai SPI với các mức trần đối kháng mặc định | PathValidationResult từ cả hai phương thức | PathValidationException | Cũng được ném khi không thể xuất một OpenSSLCertificate sang PEM |
PathValidationOptions::__construct | Các mức trần (maxDepth, maxPolicyFanout, fetchTimeoutSeconds, fetchSizeCapBytes) cộng với các cờ chính sách, ?TrustAnchorStoreInterface $trustAnchors, bool $requireTrustedAnchor | Độ sâu 32, fanout 64, 5 s mỗi lần tải, 10 MiB mỗi lần tải; tất cả các cờ đều false | Tùy chọn mới | Không ném | Các factory: defaults(), strict(), withTrustAnchors() |
PathValidationResult::__construct | bool $valid, string $trustAnchorFingerprint, DateTimeImmutable $validatedAt, array $validPolicies, ?RevocationCheckResult $revocation, bool $trustAnchorTrusted, array $fetchedCertificates, array $failureReasons | Kết quả bất biến; trustAnchorTrusted mặc định là false (fail-closed) | Giá trị mới | Không ném | Tư cách thành viên tin cậy khác biệt với tính hợp lệ về cấu trúc |
PolicyProcessor | Constructor: PolicyTreeState $state, PathValidationOptions $options; processCertificate(string $certDer, int $depth, bool $selfIssued), finalizeWrapUp(), tree() | Mở rộng, ánh xạ, và kết thúc cây chính sách RFC 5280 §6.1.4 | void / list<non-empty-string> / PolicyTree | PathValidationException với bất kỳ thất bại xử lý chính sách nào (fail-closed) | Kết thúc trả về các OID chính sách còn sống sót, loại trừ anyPolicy |
PolicyTree | attach(PolicyTreeNode $node, PathValidationOptions $options), enforceFanout(...), remove(...), cộng với các truy vấn đọc | Trạng thái valid_policy_tree với một chỉ mục độ sâu | Thay đổi theo từng phương thức | PathValidationException khi số lượng lá còn sống vượt quá mức trần fanout | Phơi bày ANY_POLICY_OID (2.5.29.32.0) |
NameConstraintsChecker::processCertificate | string $certDer, bool $applyNameCheck | Tích lũy và thực thi các cây con được phép / bị loại trừ theo RFC 5280 §6.1.4(g) | void | PathValidationException khi một cây con bị vi phạm, một dạng GeneralName không được hỗ trợ trong một ràng buộc, hoặc một mức trần bị vượt qua | Các tên không thể so sánh được xử lý fail-closed |
TrustAnchorStoreInterface::containsFingerprint | string $anchorDerSha256Hex | Tư cách thành viên theo SHA-256 hex chữ thường trên chứng chỉ DER của neo | bool | Không ném | Đường ghép tin cậy được trình xác thực đường dẫn tham vấn |
BatchSignatureValidator::validate | array $inputs (list<DocumentSignatureInput>) | Xác thực chữ ký nhiều tài liệu với bộ nhớ đệm thu hồi theo từng lô | BatchValidationReport | InvalidArgumentException với danh sách rỗng; một bộ bảo vệ tài nguyên từ chối các lô trên 1000 tài liệu | Nằm trong NextPDF\Enterprise\Signature |
final class AdESValidationEnginepublic function validateBasic(string $signedData, string $signature): ValidationReportpublic function validateWithTime( string $signedData, string $signature, DateTimeImmutable $claimedTime,): ValidationReportpublic function validateWithLongTermData( string $signedData, string $signature, array $dssData,): ValidationReportpublic function validateArchivalTimestampChain( string $pdfBytes, array $dssData = [], ?TrustAnchorStoreInterface $anchors = null,): ValidationReportpublic function validate( array $chain, ?DateTimeImmutable $validationTime = null, array $initialPolicies = [],): PathValidationResult;public function validateWithAiaChasing( array $chain, ?DateTimeImmutable $validationTime = null,): PathValidationResult;public static function withDefaults( ?ClockInterface $clock = null, ?AiaChaser $aiaChaser = null, ?LoggerInterface $logger = null,): selfpublic function containsFingerprint(string $anchorDerSha256Hex): bool;public function extract(string $signedData, string $signature): ExtractedSignatureData;public function scan(string $pdfBytes): arraypublic function validate(array $inputs): BatchValidationReportCác enum chỉ thị. Các case MainIndication: TOTAL_PASSED, TOTAL_FAILED, INDETERMINATE. Các giá trị nền tuân theo mẫu urn:etsi:019102:mainindication:total-passed (chữ thường, có dấu gạch nối). Các case SubIndication: HASH_FAILURE, SIG_CRYPTO_FAILURE, REVOKED, EXPIRED, NOT_YET_VALID, NO_POE, TRY_LATER, CERTIFICATE_CHAIN_GENERAL_FAILURE, FORMAT_FAILURE, REVOKED_CA_NO_POE, CRYPTO_CONSTRAINTS_FAILURE, POLICY_PROCESSING_FAILURE, REVOCATION_OUT_OF_BOUNDS_NO_POE, NO_SIGNING_CERTIFICATE_FOUND, TIMESTAMP_ORDER_FAILURE. Mỗi case được nền bởi urn:etsi:019102:subindication:<CASE_NAME> với đúng tên case.
Hợp đồng hành vi
Phần tiêu đề “Hợp đồng hành vi”- Báo cáo vào, báo cáo ra. Bốn điểm vào của engine trả về một
ValidationReportcho đầu vào thù địch thay vì ném. MộtSignatureExtractionExceptionbị bắt sẽ định tuyến tới đường dẫn bảo vệ; mộtPathValidationExceptionbị bắt ánh xạ tớiTOTAL_FAILED/CERTIFICATE_CHAIN_GENERAL_FAILURE. - Thứ tự xác thực cơ bản. Kiểm tra định dạng trước; một cấu trúc không thể phân tích là
TOTAL_FAILED/FORMAT_FAILURE(EN 319 102-1 §5.3.4). Sau đó là digest (HASH_FAILURE) và xác minh mật mã (SIG_CRYPTO_FAILURE), khớp với các kết quả khối xây dựng của EN 319 102-1 §5.2.7.4. Digest được trình xác minh tính lại và so sánh với thuộc tính đã kýmessageDigest(RFC 5652 §5.6); các digest do nhà sản xuất cung cấp không bao giờ được tin cậy. - Các thuật toán yếu bị hạ cấp. Một chữ ký xác minh được dưới SHA-1, hoặc với một ràng buộc chứng chỉ ký yếu, trả về
INDETERMINATE/CRYPTO_CONSTRAINTS_FAILURE, không bao giờ làTOTAL_PASSED. Đường dẫn thời gian tái khẳng định điều này để một chữ ký yếu không bao giờ được rửa thành một kết quả đạt hợp lệ về thời gian. - Cổng xuất xứ thu hồi. Các cờ thu hồi của extractor chỉ được tham vấn khi extractor thực sự đã thực hiện một kiểm tra thu hồi (
revocationCheckedlà true). Một giá trị mặc định chưa được kiểm tra không phải là “đã xác minh là chưa bị thu hồi” cũng không phải là một tác nhân kích hoạtREVOKED. Bằng chứng thu hồi được thiết lập bởi đường dẫn DSS. - Lan truyền kết quả không-đạt. Các đường dẫn thời gian và dài hạn không bao giờ nâng cấp một kết quả cơ bản không-đạt. Có một ngoại lệ: một
INDETERMINATE/REVOKEDcơ bản được giải quyết dựa trên$claimedTime; thu hồi tại hoặc trước thời gian đã tuyên bố làTOTAL_FAILED/REVOKED. Điều này phản ánh mẫu của EN 319 102-1 §5.3.4 về việc giải quyết một trạng thái bất định liên quan đến thu hồi bằng bằng chứng thời gian. Khi không thể thực hiện phép so sánh, báo cáo cơ bản chưa được giải quyết được lan truyền nguyên văn. - Ràng buộc dấu thời gian chữ ký nghiêm ngặt (fail-closed; phá vỡ BC). Khi CMS mang một thuộc tính chưa ký
id-aa-timeStampToken, sự hiện diện của nó kích hoạt việc thực thi trong cả đường dẫn thời gian và dài hạn; không có chế độ chỉ-cảnh-báo. Số lượng phải chính xác là một thuộc tính với chính xác một giá trị (EN 319 122-1 §5.3); bất kỳ hình dạng nào khác làTOTAL_FAILED/FORMAT_FAILURE. Token phải xác minh được bằng mật mã từ đầu đến cuối; một token không thể xác minh, một xung đột phân tích khác biệt, hoặc một sự không khớp imprint làINDETERMINATE/TIMESTAMP_ORDER_FAILURE. Một thuật toán imprint không được hỗ trợ hoặc SHA-1 làINDETERMINATE/CRYPTO_CONSTRAINTS_FAILURE. Quy tắc ràng buộc là RFC 3161 Appendix A:messageImprintcủa token phải bằng với hash của các octet giá trịsignaturecủa SignerInfo, được so sánh trong thời gian không đổi. - Các cổng đường dẫn dài hạn. Trong đường dẫn được chú thích theo điều khoản 5.4, dấu thời gian chữ ký đã ràng buộc còn nhận thêm đánh giá chứng chỉ TSA tại
genTimecủa token; một neo không được tin cậy làINDETERMINATE/CERTIFICATE_CHAIN_GENERAL_FAILURE, không bao giờ là kết quả đạt.NetworkPolicy::STRICT_OFFLINEvới tài liệu DSS nhúng không đủ trả vềINDETERMINATE/TRY_LATER. Các phát hiện về bằng chứng-tồn-tại, thu hồi DSS, và chuỗi lưu trữ mỗi cái đều ngắn mạch tớiINDETERMINATEvới một sub-indication được ánh xạ. - Các cổng chuỗi lưu trữ. Không có DocTimeStamp nào hiện diện là
INDETERMINATE/NO_POE. Một ByteRange không tuân thủ về cấu trúc làTOTAL_FAILED/FORMAT_FAILURE. Mỗi token phải xác minh được, ràng buộc imprint của nó với chính xác các byte được ByteRange bao phủ, và vượt qua ánh xạ khía cạnh TSA-tại-genTime (EXPIRED,NOT_YET_VALID,REVOKED_CA_NO_POE,CERTIFICATE_CHAIN_GENERAL_FAILURE, hoặcTRY_LATERdưới chế độ strict-offline). Thứ tự được thực thi:genTimekhông giảm, độ bao phủ tiến triển nghiêm ngặt, và các token sau chứa lỗ hổng/Contentscủa token trước. Token mới nhất phải bao phủ byte cuối cùng; các byte đuôi làTIMESTAMP_ORDER_FAILURE. MộtgenTimevượt hơn 300 giây so với đồng hồ của trình xác minh làTIMESTAMP_ORDER_FAILURE. - Chẩn đoán không bao giờ quyết định. Các mục bằng chứng-tồn-tại
DiagnosticData::$timestampschỉ để lưu vết kiểm toán. Chúng không bao giờ thay đổi một chỉ thị, và bộ tích lũy được đặt lại tại mỗi điểm vào. - Các giới hạn Pki đi trước mật mã. Các mức trần
PathValidationOptions(độ sâu 32, fanout chính sách 64, 5 s và 10 MiB mỗi lần tải) được kiểm tra trước công việc tốn kém.PathValidationResult::$trustAnchorTrustedkhác biệt với$valid;requireTrustedAnchorlàm cho một điểm cuối chưa được khẳng định trở nên không hợp lệ.strict()bậtrequireExplicitPolicy, vận chuyển thu hồi hard-fail, vàrequireTrustedAnchor. Tính hợp lệ của đường dẫn là tương đối theo neo theo RFC 5280 §6.1: một đường dẫn hợp lệ bắt đầu tại một neo tin cậy được cung cấp làm đầu vào. - Bề mặt theo lô.
BatchSignatureValidator::validate()némInvalidArgumentExceptioncho một danh sách rỗng và từ chối các lô trên 1000 tài liệu thông qua một bộ bảo vệ tài nguyên. PHP sở hữu toàn bộ việc xác thực mật mã trong pipeline đó.
Các trường hợp biên & chế độ thất bại
Phần tiêu đề “Các trường hợp biên & chế độ thất bại”- Engine mặc định không có extractor.
new AdESValidationEngine()chỉ thực hiện các kiểm tra bảo vệ: chữ ký rỗng hoặc dữ liệu đã ký rỗng làTOTAL_FAILED; bất kỳ cặp không rỗng nào cũng giải quyết thànhINDETERMINATE/NO_SIGNING_CERTIFICATE_FOUND, không bao giờ làTOTAL_PASSED. TiêmNextPDF\Enterprise\Security\Validation\CmsSignatureDataExtractorđể có được xác minh mật mã. - Kiểm tra tin cậy TSA mặc định không có kho. Khi đó mọi chuỗi TSA đều báo cáo là không được tin cậy, nên các kết quả dấu thời gian chữ ký lưu trữ và dài hạn vẫn ở
INDETERMINATE. Cung cấp các neo quavalidateArchivalTimestampChain(..., $anchors)hoặc mộtTsaCertificateAtGenTimeCheckđã được cấu hình. $pdfBytesrỗng.validateArchivalTimestampChain('')trả vềTOTAL_FAILED/FORMAT_FAILURE.- Các dấu thời gian chữ ký trước bản vá không thể đạt. Các token được tạo bởi các phiên bản NextPDF trước bản vá ràng buộc nghiêm ngặt đã imprint một đầu vào khác. Chúng thất bại vĩnh viễn với ràng buộc Appendix A; hãy ký lại và đóng dấu thời gian lại để khôi phục một kết quả tích cực. Đây là một sự phá vỡ BC có chủ ý và được ghi lại.
- Các DocTimeStamp trùng lặp hoặc chồng lấn. Một bản trùng lặp cùng bản sửa đổi, độ bao phủ bằng nhau hoặc chồng lấn, hoặc một token sau không chứa lỗ hổng chữ ký của token trước sẽ thất bại tại cổng thứ tự.
- Trình quét là toàn phần và ở cấp byte.
scan()bỏ qua một cách âm thầm các ứng viên dị dạng hoặc bị giả mạo; một/ByteRangemồi nhử bên trong một luồng nội dung bị từ chối. Nó không giải quyết các đối tượng gián tiếp hoặc duyệt bảng tham chiếu chéo. - Bao phủ, không phải khả năng tiếp cận.
validateArchivalTimestampChain()chứng minh độ bao phủ dải byte bằng mật mã đến cuối tệp. Phân tích khả năng tiếp cận ở cấp đối tượng (ví dụ, một gốc tài liệu được trỏ lại bên trong một bản sửa đổi được bao phủ) được tuyên bố là ngoài phạm vi. - Sử dụng Pki trực tiếp sẽ ném. Gọi trực tiếp các bản triển khai
PathValidatorInterfacesẽ phơi bàyPathValidationExceptioncho các chuỗi không hợp lệ về cấu trúc, các mức trần bị vượt qua, các dạng ràng buộc không được hỗ trợ, và việc xuất PEM thất bại của một handleOpenSSLCertificate. Engine bắt lớp này; các trình gọi của riêng bạn phải xử lý nó.
Hành vi chế độ FIPS
Phần tiêu đề “Hành vi chế độ FIPS”Phía xác minh chấp nhận RSA PKCS#1 v1.5 với SHA-2 và ECDSA trên P-256/P-384/P-521. Các token RSASSA-PSS, EdDSA, và SHA-3 thất bại fail-closed do không được hỗ trợ; SHA-1 hạ cấp thành CRYPTO_CONSTRAINTS_FAILURE. Dưới hồ sơ chính sách mật mã FIPS 140-3 của Enterprise (được ghi lại cùng module bảo mật), ràng buộc áp dụng cho việc thuật toán nào được chấp nhận; bản thân luồng xác thực — tính lại digest, kiểm tra chữ ký, ràng buộc, xác thực đường dẫn — không thay đổi. NextPDF không nắm giữ chứng chỉ FIPS 140-3 nào và trang này không tuyên bố gì cả.
Tuân thủ
Phần tiêu đề “Tuân thủ”| Tuyên bố | Tiêu chuẩn | Điều khoản |
|---|---|---|
| Xác thực Basic Signature là một khối xây dựng tái sử dụng được cho xác thực dấu thời gian và có-thời-gian. | ETSI EN 319 102-1 | §5.3.1 |
Thất bại toàn vẹn ánh xạ tới HASH_FAILURE; một kiểm tra chữ ký thất bại ánh xạ tới SIG_CRYPTO_FAILURE. | ETSI EN 319 102-1 | §5.2.7.4 |
| Kiểm tra định dạng chạy trước và một kết quả không-đạt sẽ dừng quá trình. | ETSI EN 319 102-1 | §5.3.4 |
| Một trạng thái bất định liên quan đến thu hồi có thể được giải quyết bằng bằng chứng thời gian. | ETSI EN 319 102-1 | §5.3.4 |
| Một đường dẫn chứng nhận hợp lệ bắt đầu tại một neo tin cậy được cung cấp làm đầu vào. | RFC 5280 | §6.1 |
Trình xác minh tính lại digest nội dung; nó phải bằng thuộc tính đã ký messageDigest. | RFC 5652 | §5.6 |
messageImprint của dấu thời gian chữ ký băm giá trị trường signature của SignerInfo. | RFC 3161 | Appendix A |
Thuộc tính signature-time-stamp mang chính xác một AttributeValue. | ETSI EN 319 122-1 | §5.3 |
Tất cả các điều khoản đều được diễn giải lại; NextPDF không tái tạo văn bản quy phạm. NextPDF không đưa ra tuyên bố tuân thủ hay chứng nhận AdES / PAdES nào. Hỗ trợ một tiêu chuẩn không phải là tuân thủ nó, và tuân thủ không phải là chứng nhận — NextPDF không nắm giữ chứng nhận nào và không cấp chứng nhận nào. Engine triển khai các quy trình xác thực được trích dẫn như một năng lực; nó không phải là một dịch vụ xác thực đủ điều kiện hay được chứng nhận, và một báo cáo TOTAL_PASSED là một tuyên bố mật mã, không phải một phán quyết pháp lý. Các giá trị enum tái sử dụng mẫu định danh ETSI URN để tương tác dữ liệu báo cáo; sự tái sử dụng đó không khẳng định bất kỳ sự chứng thực nào.
Ghi chú phát triển
Phần tiêu đề “Ghi chú phát triển”- Ánh xạ nhãn điều khoản. Mã nguồn của gói chú thích các điểm vào là các điều khoản 5.2, 5.3, và 5.4 của EN 319 102-1. Kho tài liệu tuân thủ đặt bản thân quy trình xác thực Basic Signature tại điều khoản 5.3, với khối xây dựng mật mã tại 5.2.7.4. Trang này trích dẫn các số điều khoản đã truy xuất; hợp đồng hành vi, chứ không phải nhãn, mới là có thẩm quyền.
- Các bài kiểm tra tất định. Mọi phép so sánh thời gian đều đi qua
ClockInterfacePSR-20 được tiêm. Tiêm một đồng hồ đóng băng để kiểm tra các kiểm tra cửa sổ, giới hạn lệch genTime 300 giây, và các quyết định về độ tươi của CRL. - Thành phần. Tất cả các cộng tác viên của engine đều được tiêm qua constructor và tùy chọn, với các mặc định fail-closed. Trình xác thực đường dẫn mặc định là
CertificateChainValidator::withDefaults()trên đồng hồ của engine; các tùy chọn mặc định giữ cho việc xử lý chính sách và ràng buộc tên là một no-op đối với các đầu vào tuân thủ, không bị ràng buộc. - Không gian tên. Bề mặt engine nằm trong
NextPDF\Enterprise\Security\Validation, bề mặt xác thực đường dẫn trongNextPDF\Enterprise\Security\Pki, và bộ điều phối lô trongNextPDF\Enterprise\Signature. - Vệ sinh báo cáo. Các báo cáo là bất biến và có thể tuần tự hóa qua
toArray(). Ngữ cảnh chẩn đoán đặt lại tại mỗi điểm vào, nên một báo cáo không bao giờ mang bằng chứng từ một lần chạy trước trên cùng một thực thể engine.
Xem thêm
Phần tiêu đề “Xem thêm”- Xác minh chữ ký: phía xác minh mật mã AdES / PAdES — trang năng lực: quy trình, bảng thuật toán, ghi chú nâng cấp.
- Chữ ký — Tham chiếu chuyên sâu — phía nhà sản xuất PAdES B-LT / B-LTA.
- Xác thực — Tham chiếu chuyên sâu — các kiểm tra chính sách cấu trúc không có mật mã.
- Bảo mật — Tham chiếu chuyên sâu — bề mặt bảo mật Enterprise kết hợp, bao gồm hồ sơ FIPS.
- Ánh xạ đường cơ sở PAdES — B-B, B-T, B-LT, B-LTA trên các phiên bản.
Ranh giới xuất bản
Phần tiêu đề “Ranh giới xuất bản”Trang này chỉ ghi lại hành vi có thể quan sát từ bên ngoài và bề mặt API công khai được hỗ trợ. Các đường dẫn không gian tên nội bộ, các lớp trợ giúp, các bảng cơ chế, tên tệp runbook, và các tiền tố vé đều nằm ngoài phạm vi.