Phát hiện Sự xâm phạm Chữ ký

Phát hiện Sự xâm phạm Chữ ký

Phát hiện sự xâm phạm chữ ký

SignaturesCompromiseDetector là điểm khởi đầu cho hướng dẫn này: nó kiểm tra lịch sử phiên bản của tài liệu đã ký để phát hiện các dấu hiệu nội dung được thêm vào sau khi chữ ký cuối cùng được áp dụng, và báo cáo những gì nó tìm thấy dưới dạng CompromiseCheckResult. Đây là phạm vi bảo mật được bao phủ bởi cụm kiến thức này — nó không bao gồm việc tạo hoặc áp dụng chữ ký, hay mã hóa tài liệu; nó chỉ xem xét các dấu ký đã có trên tài liệu.


Thực hiện Kiểm tra Xâm phạm

Tạo SignaturesCompromiseDetector bằng tài liệu bạn muốn kiểm tra, sau đó gọi SignaturesCompromiseDetector.check(). Kiểm tra sẽ duyệt qua từng dấu ký đã có trên tài liệu và tìm các byte chưa ký được thêm vào sau phiên bản đã ký cuối cùng — một dấu hiệu cho thấy nội dung có thể đã được chèn thêm — đồng thời chấp nhận các vật liệu xác thực dài hạn hợp pháp (như kho lưu trữ bảo mật tài liệu hoặc dấu thời gian lưu trữ) được thêm bởi một dấu ký bao phủ sau này.


Giải thích Kết quả

SignaturesCompromiseDetector.check() trả về một CompromiseCheckResult với bốn thuộc tính:

  • CompromiseCheckResult.has_compromised_signatures — True nếu bất kỳ chữ ký nào hiển thị dấu hiệu can thiệp.
  • CompromiseCheckResult.compromised — phản chiếu CompromiseCheckResult.has_compromised_signatures, được cung cấp dưới dạng bí danh tiện lợi chỉ đọc.
  • CompromiseCheckResult.signatures_coverage — số lượng chữ ký mà bộ phát hiện đã kiểm tra trên tài liệu.
  • CompromiseCheckResult.reasons — danh sách các chuỗi ngắn mô tả lý do tài liệu bị gắn cờ, và thời điểm xảy ra.

Một tài liệu không có chữ ký, hoặc không tồn tại tài liệu nào, được báo cáo là không bị xâm phạm, với CompromiseCheckResult.signatures_coverage bằng 0.


Mẹo và Thực tiễn Tốt nhất

  • Xem CompromiseCheckResult.compromised và CompromiseCheckResult.has_compromised_signatures là tương đương — chúng luôn báo cáo cùng một giá trị.
  • Kiểm tra CompromiseCheckResult.signatures_coverage trước khi tin tưởng kết quả False: mức độ bao phủ 0 có nghĩa là bộ phát hiện không tìm thấy dấu nào để kiểm tra, chứ không phải các dấu hiện có đã được xác minh là nguyên vẹn.
  • Đọc CompromiseCheckResult.reasons khi CompromiseCheckResult.has_compromised_signatures là True — danh sách giải thích heuristic nào đã được kích hoạt, điều này hữu ích khi ghi log hoặc trình bày kết quả cho người xem xét.
  • SignaturesCompromiseDetector kiểm tra lịch sử sửa đổi để tìm dấu hiệu giả mạo; nó không tự xác thực tính toàn vẹn của chữ ký mật mã, vì vậy hãy ghép nó với kết quả xác thực chữ ký của tài liệu khi điều đó quan trọng trong quy trình làm việc của bạn.

Vấn đề thường gặp

Vấn đềNguyên nhânCách khắc phục
CompromiseCheckResult.signatures_coverage là 0 đối với một tài liệu mà bạn biết đã được kýSignaturesCompromiseDetector được tạo mà không có tài liệu, hoặc đối tượng tài liệu không có bất kỳ chữ ký nào có thể truy cậpXác nhận rằng tài liệu được truyền vào SignaturesCompromiseDetector công khai các ký của nó trước khi gọi SignaturesCompromiseDetector.check()
CompromiseCheckResult.reasons trống mặc dù bạn mong đợi một lời giải thíchCompromiseCheckResult.has_compromised_signatures là False đối với tài liệu nàyCác lý do chỉ được điền khi thực sự phát hiện chỉ báo xâm phạm; danh sách trống trong kết quả sạch là điều mong đợi
Một tệp PDF được cập nhật hợp pháp (ví dụ: có dấu thời gian xác thực dài hạn được thêm vào) bị đánh dấu là đã bị xâm phạmPhần bổ sung sau này không được bao phủ đầy đủ bởi một bằng chứng ký tiếp theo hoặc không được công nhận là tài liệu chỉ để xác thựcChạy lại kiểm tra sau khi xác nhận việc cập nhật được thực hiện bằng một bằng chứng ký hoặc dấu thời gian bao phủ hợp lệ, và kiểm tra CompromiseCheckResult.reasons để tìm nguyên nhân cụ thể

FAQ

Thực tế CompromiseCheckResult.compromised kiểm tra gì?

Nó báo cáo cùng một giá trị như CompromiseCheckResult.has_compromised_signatures: liệu SignaturesCompromiseDetector.check() có phát hiện bất kỳ chỉ báo giả mạo nào trên các chữ ký của tài liệu hay không.

Một signatures_coverage của 0 có nghĩa là tài liệu an toàn không?

Không — điều đó có nghĩa là không có chữ ký nào được tìm thấy để kiểm tra. SignaturesCompromiseDetector không thể báo cáo về các dấu ký mà nó không nhìn thấy, vì vậy độ bao phủ 0 là kết quả “không có gì để kiểm tra”, không phải là xác nhận tính toàn vẹn.

Liệu SignaturesCompromiseDetector có thể tạo hoặc xác thực một chữ ký mật mã không?

Không. Nó chỉ kiểm tra lịch sử sửa đổi hiện có của tài liệu để tìm các chỉ báo rằng nội dung đã được thêm vào sau chữ ký cuối cùng. Việc tạo, áp dụng hoặc xác thực chữ ký bằng mật mã nằm ngoài phạm vi của lớp này.

Việc thêm dấu thời gian hợp lệ sau khi ký có luôn gây ra kết quả phát hiện vi phạm không?

Không nhất thiết. Bộ phát hiện được thiết kế để chấp nhận việc thêm sau này nếu nó được bao phủ bởi một chữ ký tiếp theo, hoặc chỉ bổ sung tài liệu xác thực thay vì nội dung mới. Kiểm tra CompromiseCheckResult.reasons nếu bạn thấy một phát hiện bất ngờ.


API Reference Tóm tắt

Lớp/Phương thứcMô tả
SignaturesCompromiseDetectorKiểm tra tài liệu đã ký để phát hiện các chỉ báo giả mạo sau ký cuối cùng
SignaturesCompromiseDetector.check()Thực hiện kiểm tra và trả về một CompromiseCheckResult
CompromiseCheckResultKết quả của kiểm tra xâm phạm
CompromiseCheckResult.compromisedBí danh chỉ đọc cho CompromiseCheckResult.has_compromised_signatures
CompromiseCheckResult.has_compromised_signaturesLiệu có tìm thấy chỉ báo giả mạo
CompromiseCheckResult.signatures_coverageSố lượng chữ ký đã kiểm tra
CompromiseCheckResult.reasonsChuỗi ngắn giải thích bất kỳ phát hiện nào

Xem thêm

 Tiếng Việt