Mendeteksi Kompromi Tanda Tangan
Mendeteksi Kompromi Tanda Tangan
SignaturesCompromiseDetector adalah titik masuk untuk panduan ini: ia memeriksa riwayat revisi dokumen yang ditandatangani untuk indikator bahwa konten ditambahkan setelah tanda tangan terakhir diterapkan, dan melaporkan apa yang ditemukannya sebagai CompromiseCheckResult. Ini adalah area keamanan yang dicakup oleh kumpulan basis pengetahuan ini — tidak mencakup pembuatan atau penerapan tanda tangan, atau enkripsi dokumen; hanya memeriksa tanda tangan yang sudah ada pada dokumen.
Menjalankan Pemeriksaan Kompromi
Bangun SignaturesCompromiseDetector dengan dokumen yang ingin Anda periksa, lalu panggil SignaturesCompromiseDetector.check(). Pemeriksaan ini menelusuri setiap tanda tangan yang sudah ada pada dokumen dan mencari byte yang tidak ditandatangani yang ditambahkan setelah revisi yang terakhir ditandatangani — sebuah tanda bahwa konten mungkin telah ditumpuk setelahnya — sambil mentolerir materi validasi jangka panjang yang sah (seperti penyimpanan keamanan dokumen atau cap waktu arsip) yang ditambahkan oleh tanda tangan penutup yang lebih baru.
Menafsirkan Hasil
SignaturesCompromiseDetector.check() mengembalikan CompromiseCheckResult dengan empat properti:
CompromiseCheckResult.has_compromised_signatures—Truejika ada tanda tangan yang menunjukkan indikator gangguan.CompromiseCheckResult.compromised— mencerminkanCompromiseCheckResult.has_compromised_signatures, disediakan sebagai alias kenyamanan hanya-baca.CompromiseCheckResult.signatures_coverage— jumlah tanda tangan yang diperiksa detektor pada dokumen.CompromiseCheckResult.reasons— daftar string pendek yang menjelaskan mengapa dokumen ditandai, ketika itu terjadi.
Dokumen tanpa tanda tangan, atau tidak ada dokumen sama sekali, dilaporkan tidak terkompromi, dengan CompromiseCheckResult.signatures_coverage sama dengan 0.
Tips dan Praktik Terbaik
- Anggap
CompromiseCheckResult.compromiseddanCompromiseCheckResult.has_compromised_signaturessebagai dapat dipertukarkan — keduanya selalu melaporkan nilai yang sama. - Periksa
CompromiseCheckResult.signatures_coveragesebelum mempercayai hasilFalse: cakupan0berarti detektor tidak menemukan tanda tangan untuk diperiksa, bukan bahwa tanda tangan yang ada diverifikasi tetap utuh. - Baca
CompromiseCheckResult.reasonsketikaCompromiseCheckResult.has_compromised_signaturesadalahTrue— daftar tersebut menjelaskan heuristik mana yang dipicu, yang berguna saat mencatat atau menampilkan hasil kepada peninjau. SignaturesCompromiseDetectormemeriksa riwayat revisi untuk indikator manipulasi; ia tidak memvalidasi integritas tanda tangan kriptografis secara langsung, jadi padukan dengan hasil validasi tanda tangan dokumen sendiri di mana hal itu penting bagi alur kerja Anda.
Masalah Umum
| Masalah | Penyebab | Perbaikan |
|---|---|---|
CompromiseCheckResult.signatures_coverage adalah 0 untuk dokumen yang Anda ketahui telah ditandatangani | SignaturesCompromiseDetector dibangun tanpa dokumen, atau objek dokumen tidak memiliki tanda tangan yang dapat diakses | Pastikan dokumen yang diberikan ke SignaturesCompromiseDetector menampilkan tanda tangannya sebelum memanggil SignaturesCompromiseDetector.check() |
CompromiseCheckResult.reasons kosong meskipun Anda mengharapkan penjelasan | CompromiseCheckResult.has_compromised_signatures adalah False untuk dokumen ini | Alasan hanya diisi ketika indikator kompromi benar-benar ditemukan; daftar kosong pada hasil bersih diharapkan |
| PDF yang sah diperbarui (misalnya yang memiliki cap waktu validasi jangka panjang yang ditambahkan) ditandai sebagai terkompromi | Penambahan selanjutnya tidak sepenuhnya ditutupi oleh tanda tangan berikutnya atau tidak dikenali sebagai materi hanya validasi | Jalankan kembali pemeriksaan setelah memastikan pembaruan dilakukan oleh tanda tangan atau cap waktu penutup yang tepat, dan periksa CompromiseCheckResult.reasons untuk pemicu spesifik |
FAQ
Apa yang sebenarnya diperiksa oleh CompromiseCheckResult.compromised?
Ini melaporkan nilai yang sama dengan CompromiseCheckResult.has_compromised_signatures: apakah SignaturesCompromiseDetector.check() menemukan indikator manipulasi pada tanda tangan dokumen.
Apakah signatures_coverage dengan 0 berarti dokumen aman?
Tidak — artinya tidak ada tanda tangan yang ditemukan untuk diperiksa. SignaturesCompromiseDetector tidak dapat melaporkan tanda tangan yang tidak dapat dilihatnya, sehingga cakupan 0 merupakan hasil “tidak ada yang diperiksa”, bukan konfirmasi integritas.
Apakah SignaturesCompromiseDetector dapat membuat atau memverifikasi tanda tangan kriptografis?
Tidak. Ini hanya memeriksa riwayat revisi dokumen yang ada untuk indikator bahwa konten ditambahkan setelah tanda tangan terakhir. Membuat, menerapkan, atau memvalidasi tanda tangan secara kriptografis berada di luar apa yang dilakukan kelas ini.
Apakah menambahkan cap waktu yang sah setelah penandatanganan selalu memicu temuan kompromi?
Tidak selalu. Detektor dirancang untuk menoleransi penambahan kemudian yang sendiri tercakup oleh tanda tangan berikutnya, atau yang hanya menambahkan materi validasi bukan konten baru. Periksa CompromiseCheckResult.reasons jika Anda melihat temuan yang tidak terduga.
API Reference Ringkasan
| Kelas/Metode | Deskripsi |
|---|---|
SignaturesCompromiseDetector | Memeriksa dokumen yang ditandatangani untuk indikator manipulasi setelah tanda tangan terakhir |
SignaturesCompromiseDetector.check() | Menjalankan pemeriksaan dan mengembalikan sebuah CompromiseCheckResult |
CompromiseCheckResult | Hasil dari pemeriksaan kompromi |
CompromiseCheckResult.compromised | Alias hanya-baca untuk CompromiseCheckResult.has_compromised_signatures |
CompromiseCheckResult.has_compromised_signatures | Apakah indikator gangguan ditemukan |
CompromiseCheckResult.signatures_coverage | Jumlah tanda tangan yang diperiksa |
CompromiseCheckResult.reasons | String pendek yang menjelaskan setiap temuan |