การตรวจจับการละเมิดลายเซ็น

การตรวจจับการละเมิดลายเซ็น

การตรวจจับการละเมิดลายเซ็น

SignaturesCompromiseDetector เป็นจุดเริ่มต้นของคู่มือนี้: มันตรวจสอบประวัติการแก้ไขของเอกสารที่มีลายเซ็นเพื่อหาตัวบ่งชี้ว่ามีการเพิ่มเนื้อหาหลังจากที่ลายเซ็นล่าสุดถูกนำไปใช้ และรายงานสิ่งที่พบเป็น CompromiseCheckResult. นี่คือพื้นผิวด้านความปลอดภัยที่คลัสเตอร์ของฐานความรู้นี้ครอบคลุม — ไม่รวมการสร้างหรือการใช้ลายเซ็น, หรือการเข้ารหัสเอกสาร; มันเพียงตรวจสอบลายเซ็นที่มีอยู่แล้วในเอกสาร.


การดำเนินการตรวจสอบการละเมิด

สร้าง SignaturesCompromiseDetector ด้วยเอกสารที่คุณต้องการตรวจสอบ, จากนั้นเรียก SignaturesCompromiseDetector.check(). การตรวจสอบจะเดินผ่านลายเซ็นทุกอันที่มีอยู่ในเอกสารและมองหาบิตที่ไม่ได้เซ็นที่ถูกต่อเพิ่มหลังจากการแก้ไขที่มีลายเซ็นล่าสุด — สัญญาณว่ามีเนื้อหาอาจถูกใส่เพิ่มภายหลัง — ในขณะที่ยอมรับวัสดุการตรวจสอบระยะยาวที่ถูกต้องตามกฎหมาย (เช่น ที่เก็บความปลอดภัยของเอกสารหรือการประทับเวลาของอาร์ไคฟ์) ที่ถูกเพิ่มโดยลายเซ็นที่ตามมาครอบคลุม.


การตีความผลลัพธ์

SignaturesCompromiseDetector.check() คืนค่า CompromiseCheckResult ที่มีสี่คุณสมบัติ:

  • CompromiseCheckResult.has_compromised_signatures — True หากลายเซ็นใดแสดงตัวบ่งชี้การปลอมแปลง.
  • CompromiseCheckResult.compromised — เป็นสำเนา CompromiseCheckResult.has_compromised_signatures, ให้เป็นนามแฝงเพื่อความสะดวกแบบอ่านอย่างเดียว.
  • CompromiseCheckResult.signatures_coverage — จำนวนลายเซ็นที่เครื่องตรวจจับตรวจสอบในเอกสาร.
  • CompromiseCheckResult.reasons — รายการสตริงสั้น ๆ ที่อธิบายว่าทำไมเอกสารถูกทำเครื่องหมายและเมื่อใด.

เอกสารที่ไม่มีลายเซ็นหรือไม่มีเอกสารเลย จะถูกรายงานว่าไม่ได้ถูกละเมิด, โดยที่ CompromiseCheckResult.signatures_coverage มีค่าเท่ากับ 0.


เคล็ดลับและแนวปฏิบัติที่ดีที่สุด

  • ถือว่า CompromiseCheckResult.compromised และ CompromiseCheckResult.has_compromised_signatures สามารถแทนกันได้ — พวกมันจะรายงานค่าเดียวกันเสมอ.
  • ตรวจสอบ CompromiseCheckResult.signatures_coverage ก่อนเชื่อถือผลลัพธ์ของ False: การครอบคลุมที่ 0 หมายความว่าเครื่องตรวจจับไม่พบลายเซ็นใด ๆ ที่จะตรวจสอบ, ไม่ได้หมายความว่าลายเซ็นที่มีอยู่ได้รับการตรวจสอบว่าเป็นสมบูรณ์.
  • อ่าน CompromiseCheckResult.reasons เมื่อ CompromiseCheckResult.has_compromised_signatures มีค่าเป็น True — รายการนี้อธิบายว่าเฮอร์ริสติกใดที่ทำงาน, ซึ่งเป็นประโยชน์เมื่อบันทึกหรือแสดงผลลัพธ์ให้ผู้ตรวจสอบ.
  • SignaturesCompromiseDetector ตรวจสอบประวัติการแก้ไขเพื่อหาตัวบ่งชี้การดัดแปลง; มันไม่ได้ตรวจสอบความสมบูรณ์ของลายเซ็นแบบ cryptographic ด้วยตนเอง ดังนั้นให้ใช้ร่วมกับผลการตรวจสอบลายเซ็นของเอกสารเองในกรณีที่สิ่งนั้นสำคัญต่อกระบวนการทำงานของคุณ.

ปัญหาทั่วไป

ปัญหาสาเหตุแก้ไข
CompromiseCheckResult.signatures_coverage เป็น 0 สำหรับเอกสารที่คุณทราบว่าได้รับการลงนามSignaturesCompromiseDetector ถูกสร้างขึ้นโดยไม่มีเอกสาร หรือออบเจกต์เอกสารไม่มีลายเซ็นที่เข้าถึงได้ยืนยันว่าเอกสารที่ส่งให้ SignaturesCompromiseDetector เปิดเผยลายเซ็นของมันก่อนเรียก SignaturesCompromiseDetector.check()
CompromiseCheckResult.reasons เป็นค่าว่างแม้ว่าคุณคาดหวังคำอธิบายCompromiseCheckResult.has_compromised_signatures เป็น False สำหรับเอกสารนี้เหตุผลจะถูกเติมเฉพาะเมื่อพบตัวบ่งชี้การละเมิดจริง; รายการว่างในผลลัพธ์ที่สะอาดเป็นสิ่งที่คาดหวัง
PDF ที่อัปเดตอย่างถูกต้อง (เช่น PDF ที่มีการเพิ่มเครื่องหมายเวลา long-term-validation) ถูกทำเครื่องหมายว่าเป็นการละเมิดการเพิ่มภายหลังไม่ได้รับการคลุมโดยลายเซ็นต่อมาครบถ้วน หรือไม่ได้รับการรับรู้ว่าเป็นวัสดุที่ใช้สำหรับการตรวจสอบเท่านั้นทำการตรวจสอบใหม่อีกครั้งหลังจากยืนยันว่าการอัปเดตทำโดยลายเซ็นหรือเครื่องหมายเวลาที่คลุมอย่างเหมาะสม และตรวจสอบ CompromiseCheckResult.reasons เพื่อหาทริกเกอร์เฉพาะ

FAQ

จริง ๆ แล้ว CompromiseCheckResult.compromised ตรวจสอบอะไร?

มันรายงานค่าที่เหมือนกับ CompromiseCheckResult.has_compromised_signatures: ว่า SignaturesCompromiseDetector.check() พบตัวบ่งชี้การดัดแปลงใด ๆ บนลายเซ็นของเอกสารหรือไม่.

ผลลัพธ์ signatures_coverage เป็น 0 หมายความว่าเอกสารปลอดภัยหรือไม่?

ไม่ — หมายความว่าไม่พบลายเซ็นใดให้ตรวจสอบ SignaturesCompromiseDetector ไม่สามารถรายงานเกี่ยวกับลายเซ็นที่มันไม่เห็นได้ ดังนั้นการครอบคลุม 0 เป็นผลลัพธ์ “nothing to check” ไม่ใช่การยืนยันความสมบูรณ์.

สามารถ SignaturesCompromiseDetector สร้างหรือยืนยันลายเซ็นแบบ cryptographic ได้หรือไม่?

ไม่. มันเพียงตรวจสอบประวัติการแก้ไขที่มีอยู่ของเอกสารเพื่อหาสัญญาณว่ามีการเพิ่มเนื้อหาหลังจากลายเซ็นล่าสุด การสร้าง, การใช้, หรือการตรวจสอบลายเซ็นด้วยเทคนิคการเข้ารหัส ไม่อยู่ในขอบเขตของคลาสนี้.

การเพิ่มตราเวลาอย่างถูกต้องหลังจากการลงลายเซ็นจะทำให้ตรวจพบการละเมิดเสมอหรือไม่?

ไม่จำเป็นเสมอไป ตัวตรวจจับถูกออกแบบให้ยอมรับการเพิ่มภายหลังที่ได้รับการคุ้มครองโดยลายเซ็นต่อมาหรือที่เพิ่มเฉพาะวัสดุการตรวจสอบแทนเนื้อหาใหม่ ตรวจสอบ CompromiseCheckResult.reasons หากคุณพบผลลัพธ์ที่ไม่คาดคิด.


API Reference สรุป

คลาส/เมธอดคำอธิบาย
SignaturesCompromiseDetectorตรวจสอบเอกสารที่ลงลายเซ็นเพื่อหาตัวบ่งชี้การปลอมแปลงหลังลายเซ็นสุดท้าย
SignaturesCompromiseDetector.check()ทำการตรวจสอบและคืนค่า CompromiseCheckResult
CompromiseCheckResultผลลัพธ์ของการตรวจสอบการละเมิด
CompromiseCheckResult.compromisedนามแฝงแบบอ่านอย่างเดียวสำหรับ CompromiseCheckResult.has_compromised_signatures
CompromiseCheckResult.has_compromised_signaturesว่าพบตัวบ่งชี้การทำลายหรือไม่
CompromiseCheckResult.signatures_coverageจำนวนลายเซ็นที่ตรวจสอบ
CompromiseCheckResult.reasonsสตริงสั้นที่อธิบายผลการค้นหาใด ๆ

ดูเพิ่มเติม

 ภาษาไทย