Verifikasi Tanda Tangan PDF Apa yang Perlu Diketahui Pengembang
Sebagian besar pengembang menghadapi PDF yang ditandatangani tanpa mengetahui apa yang benar-benar dijamin oleh tanda tangan kriptografi. Berikut yang perlu Anda ketahui untuk memverifikasi tanda tangan PDF secara tepat.
Banyak pengembang telah bekerja dengan PDF yang ditandatangani — kontrak yang ditandatangani, bukti bank yang diakreditasi, formulir pemerintahan. Namun, makna 'ditandatangani' bisa berbeda tergantung pada siapa yang ditanya. Garis tangan visual di kotak tanda tangan dan tanda tangan kriptografi yang terbentuk di dalam file adalah dua hal yang sama sekali berbeda. Hanya satu dari keduanya yang benar-benar menjamin sesuatu.
Panduan ini menjelaskan bagaimana tanda tangan digital PDF bekerja, apa arti berbagai keadaan validitas, dan bagaimana memverifikasinya secara programatis.
Tanda Tangan yang Dilihat vs. Tanda Tangan yang Penting
Ketika seseorang "menandatangani" PDF dengan alat gambar atau stempel gambar, mereka menempatkan gambar tanda tangan di halaman. Ini terlihat resmi namun tidak memiliki jaminan keamanan. Siapa saja bisa menyalin gambar tersebut ke dokumen lain.
Tanda tangan digital berbeda. Ini adalah artefak kriptografi yang terintegrasi dalam struktur PDF itu sendiri — terpisah dari elemen visual apa pun. Ketika dokumen ditandatangani secara digital:
- Dihitung hash dari isi dokumen.
- Hash tersebut dienkripsi dengan kunci pribadi penandatangan.
- Hash yang dienkripsi (tanda tangan) disimpan di dalam PDF bersama rantai sertifikat penandatangan.
Ketika Anda memverifikasi tanda tangan, Anda mendekripsi tanda tangan menggunakan kunci publik dari sertifikat, menghitung ulang hash dari isi dokumen saat ini, dan membandingkannya. Jika keduanya cocok, dokumen tidak diubah sejak ditandatangani. Jika tidak cocok — atau sertifikat tidak dipercaya — tanda tangan tidak valid.
Empat Keadaan Validitas Tanda Tangan
Tidak semua tanda tangan digital sama. Saat Anda memeriksa tanda tangan PDF, Anda akan menemukan salah satu dari empat keadaan berikut:
| Keadaan Tanda Tangan | Artinya | Apa yang Harus Dilakukan |
|---|---|---|
| Valid | Hash cocok, rantai sertifikat dipercaya, sertifikat aktif saat penandatanganan | Anda dapat mempercayai tanda tangan — verifikasi identitas penandatangan terhadap sertifikat yang diharapkan |
| Tidak valid | Isi dokumen berubah setelah ditandatangani, atau data tanda tangan rusak | Tolak dokumen; dokumen telah diubah atau tidak berbentuk benar |
| Tidak diketahui | Struktur tanda tangan utuh, tetapi sertifikat tidak dapat diverifikasi (akar tidak dipercaya, OCSP hilang, dll.) | Tidak dapat mempercayai tanda tangan — minta dokumen yang ditandatangani ulang atau dapatkan sertifikat akar yang dipercaya |
| Dibatalkan | Sertifikat valid saat dikeluarkan, tetapi kemudian dibatalkan oleh CA (misalnya, kebocoran kunci) | Tolak kecuali data LTV membuktikan sertifikat valid sebelum dibatalkan |
Keadaan 'Tidak Diketahui' sering mengecoh para pengembang. Tanda tangan yang struktur benar namun sertifikat yang dirancang sendiri atau internal perusahaan akan ditampilkan sebagai 'Tidak Diketahui' di sebagian besar alat karena alat tersebut tidak dapat mencapai penerbit. Untuk alur dokumen internal, Anda mungkin secara eksplisit mempercayai akar tersebut; untuk dokumen dari pihak eksternal, 'Tidak Diketahui' tidak diterima.
Validasi Jangka Panjang (LTV): Mengapa Waktu Penyimpanan Penting
Sertifikat akan kedaluwarsa. Jika seseorang menandatangani dokumen lima tahun lalu dan sertifikat mereka telah kedaluwarsa, apakah tanda tangan tetap berlaku?
Terjadi tergantung pada Validasi Jangka Panjang (LTV). Ketika LTV terintegrasi, PDF berisi:
- Waktu penandatanganan yang dipercaya dari otoritas waktu (TSA)
- Respons OCSP atau data CRL yang membuktikan status sertifikat saat penandatanganan
Dengan LTV, Anda dapat membuktikan bahwa sertifikat valid saat tanda tangan diterapkan — bahkan setelah kedaluwarsa. Tanpa LTV, Anda hanya dapat memverifikasi tanda tangan terhadap status sertifikat saat ini, yang menjadi tidak mungkin setelah sertifikat kedaluwarsa atau penyedia OCSP dihentikan.
Untuk kontrak atau dokumen yang teratur dengan kebutuhan penyimpanan jangka panjang (7+ tahun di banyak wilayah hukum), LTV bukan pilihan. Selalu periksa keberadaannya saat membangun alur verifikasi tanda tangan.
Verifikasi Tanda Tangan PDF Secara Programatis
Menggunakan Python dengan pypdf
Itu pypdf pustaka memberikan akses ke field tanda tangan PDF dan metadata yang mendasarinya. Berikut adalah contoh minimal untuk memeriksa apakah PDF memiliki tanda tangan digital dan membaca keadaannya:
import sys
from pypdf import PdfReader
def check_pdf_signatures(path: str) -> None:
reader = PdfReader(path)
sig_fields = [
name for name, field in (reader.get_fields() or {}).items()
if field.get("/FT") == "/Sig"
]
if not sig_fields:
print("No digital signature fields found.")
return
print(f"Found {len(sig_fields)} signature field(s):")
for name in sig_fields:
sig_obj = reader.get_fields()[name]
sig_dict = sig_obj.get("/V")
if not sig_dict:
print(f" {name}: field present but unsigned")
continue
signer_name = sig_dict.get("/Name", "Unknown")
signing_time = sig_dict.get("/M", "No timestamp")
reason = sig_dict.get("/Reason", "")
location = sig_dict.get("/Location", "")
print(f" {name}:")
print(f" Signer: {signer_name}")
print(f" Time: {signing_time}")
if reason:
print(f" Reason: {reason}")
if location:
print(f" Location: {location}")
if __name__ == "__main__":
check_pdf_signatures(sys.argv[1])
Ini membaca metadata tanda tangan secara langsung dari struktur PDF. Untuk verifikasi kriptografi penuh — memverifikasi hash dan memvalidasi rantai sertifikat — gunakan pyhanko atau endesive, keduanya yang mengelapkan lapisan verifikasi PKCS#7.
Menggunakan qpdf di Baris Perintah
Untuk inspeksi cepat dari baris perintah tanpa lingkungan Python:
# Show encryption and signature info
qpdf --show-encryption input.pdf
# Full JSON output with signature details
qpdf --json input.pdf | python3 -m json.tool | grep -A 20 '"sig"'
qpdf berguna dalam pipeline CI atau skrip shell di mana pengaturan lingkungan Python menambahkan beban yang tidak perlu.
Skenario Verifikasi Umum
Kontrak yang ditandatangani dari klien — Periksa keadaan validitas dan penerbit sertifikat. Tanda tangan yang valid dari akar yang tidak dipercaya (sertifikat yang ditandatangani sendiri) tidak memberikan asuransi eksternal. Anda hanya mempercayai pihak yang menghasilkan kunci.
Dokumen pemerintahan dan regulasi — Umumnya menggunakan otoritas sertifikat nasional yang dipercaya. Verifikasi bahwa rantai sertifikat mengarah ke akar CA yang diharapkan, bukan hanya bahwa tanda tangan ditampilkan sebagai "valid".
Bukti bank dan faktur — Banyak di-batch-sign dengan sertifikat tanda tangan dokumen yang diberikan kepada organisasi. Nama penandatangan akan mencerminkan institusi, bukan karyawan individu.
Verifikasi Tanpa Menulis Kode
Jika Anda perlu secara cepat memverifikasi file tanpa mengatur lingkungan pengembangan, gunakan IO Tools Checker Tanda Tangan PDF untuk mengunggah file dan melihat detail tanda tangan secara langsung — berguna untuk verifikasi satu kali atau untuk menguji file sampel sebelum membangun pipeline produksi.
Anda mungkin juga menyukai
Instal Ekstensi Kami
Tambahkan alat IO ke browser favorit Anda untuk akses instan dan pencarian lebih cepat
恵 Papan Skor Telah Tiba!
Papan Skor adalah cara yang menyenangkan untuk melacak permainan Anda, semua data disimpan di browser Anda. Lebih banyak fitur akan segera hadir!
Alat Wajib Coba
Lihat semua Pendatang baru
Lihat semuaMemperbarui: Kita alat terbaru was added on Mei 29, 2026
