Συνέπεια αλγορίθμου digest CMS

Το HotPDF εντοπίζει ασυνεπή αναγνωριστικά αλγορίθμου CMS πριν διαβάσει τα εύρη του υπογεγραμμένου εγγράφου, υπολογίσει hash περιεχομένου, κατασκευήσει μονοπάτια πιστοποιητικών, ή καλέσει πάροχο υπογραφής

Έλεγχοι συνέπειας

Το τρέχον SignerInfo.digestAlgorithm πρέπει να υπάρχει στο σύνολο SignedData.digestAlgorithms του περιβάλλοντος container, ενώ επιπλέον μη σχετικοί αλγόριθμοι παραμένουν αποδεκτοί για διαλειτουργικούς containers πολλαπλών υπογραφόντων

Τα αναγνωριστικά υπογραφής RSA PKCS#1 v1.5 και ECDSA που εξαρτώνται από το digest, καθώς και το ρητό hash στις παραμέτρους RSA-PSS, πρέπει να επιλέγουν το ίδιο digest με το SignerInfo.digestAlgorithm

Όταν υπάρχει το signed attribute CMSAlgorithmProtection της RFC 6211, πρέπει να εμφανίζεται μία φορά με μία τιμή, και οι προστατευόμενες τιμές AlgorithmIdentifier digest και υπογραφής πρέπει να ταιριάζουν με τα πραγματικά πεδία SignerInfo

Απόντες και παράμετροι DER NULL θεωρούνται ισοδύναμοι για αναγνωριστικά αλγορίθμου χωρίς παραμέτρους· οι υπόλοιπες παράμετροι συγκρίνονται ακριβώς, ώστε οι παραμετροποιημένοι μηχανισμοί υπογραφής να μην μπορούν να κανονικοποιηθούν σιωπηρά

Αποτέλεσμα για μηχανική ανάγνωση

Η HPDFParseCMSSignature διατηρεί τα μεταδεδομένα που αναλύθηκαν επιτυχώς αλλά θέτει το THPDFSignatureInfo.Status σε svDigestAlgorithmMismatch όταν κάποιος έλεγχος συνέπειας αποτύχει

Η επαλήθευση επιστρέφει svDigestAlgorithmMismatch, οι αναφορές επικύρωσης χρησιμοποιούν vfcDigestAlgorithmMismatch, και το JSON εκπέμπει digestAlgorithmMismatch, χωρίς η κατάσταση να συμπτύσσεται σε ελαττωματικό CMS, μη υποστηριζόμενο αλγόριθμο, ή ασυμφωνία digest περιεχομένου

Το THPDFSignatureInfo.DigestAlgorithmOID καταγράφει το OID digest του υπογράφοντα και το THPDFSignatureInfo.DigestConsistencyIssue επιλέγει μία από τις ακόλουθες αιτίες

Τα αντικείμενα JSON υπογράφοντος εκτίθενται τις ίδιες πληροφορίες ως digestAlgorithmOID και digestConsistencyIssue με τις τιμές signerDigestNotDeclared, signatureDigestMismatch, algorithmProtectionDigestMismatch, ή algorithmProtectionSignatureMismatch

Χρονικές σφραγίδες και προτεραιότητα

Οι χρονικές σφραγίδες εγγράφου RFC 3161 και οι μη υπογεγραμμένοι token χρονικής σφράγισης υπογραφής χρησιμοποιούν τους ίδιους ελέγχους, και η τιμή THPDFTimestampInfo.DigestConsistencyIssue προσδιορίζει ένα ασυνεπές ένθετο container CMS

Τα δομικά σφάλματα εξακολουθούν να αποτυγχάνουν ως ελαττωματικό CMS, τα άγνωστα digest υπογράφοντα παραμένουν μη υποστηριζόμενα, και η πρώτη αιτιοκρατική ασυνέπεια συνέπειας διατηρείται με τη σειρά container, algorithm-protection και έπειτα μηχανισμού υπογραφής

Δείτε τους σύγχρονους παρόχους υπογραφής και τη THotPDF.VerifyLoadedSignatureWithOptions για τα συμβόλαια παρόχου και επαλήθευσης φορτωμένου εγγράφου