Keamanan dan Tanda Tangan

Keamanan dan Tanda Tangan

Keamanan dan Tanda Tangan

Aspose.PDF FOSS for .NET mendukung tanda tangan digital PDF, enkripsi berbasis sertifikat, dan penangan keamanan khusus. Gunakan PdfSigner untuk alur kerja penandatanganan dan PdfCertificate untuk manajemen sertifikat.


Menandatangani dokumen

PdfSigner menerapkan tanda tangan digital pada PDF menggunakan sertifikat PFX.

var cert = PdfCertificate.FromPfx("certificate.pfx", "password");
var signer = new PdfSigner();
signer.Sign(doc, cert);
doc.Save("signed.pdf");

Memverifikasi tanda tangan

var signer = new PdfSigner();
bool valid = signer.Verify(doc);
Console.WriteLine($"Signature valid: {valid}");

Penandatanganan dengan tampilan visual

signer.SignWithAppearance(doc, cert, signatureField, appearance);

Manajemen Sertifikat

PdfCertificate memuat sertifikat dari file PFX atau file yang dienkode DER.

// From PFX
var cert = PdfCertificate.FromPfx("cert.pfx", "password");

// From DER files (certificate + key)
var cert2 = PdfCertificate.FromDerFiles("cert.der", "key.der");

Enkripsi berbasis sertifikat

CertificateEncryptionOptions mengenkripsi PDF sehingga hanya pemegang sertifikat yang ditentukan yang dapat membukanya.

var options = new CertificateEncryptionOptions(cert);

Handler keamanan khusus

Implementasikan ICustomSecurityHandler untuk logika enkripsi dan dekripsi khusus.

public class MyHandler : ICustomSecurityHandler
{
    public void Initialize(EncryptionParameters parameters) { }
    public byte[] CalculateEncryptionKey() { /* ... */ return Array.Empty<byte>(); }
    public byte[] GetUserKey() { /* ... */ return Array.Empty<byte>(); }
    public byte[] GetOwnerKey() { /* ... */ return Array.Empty<byte>(); }
    public bool IsOwnerPassword(string password) { /* ... */ return false; }
    public bool IsUserPassword(string password) { /* ... */ return false; }
}

Informasi algoritma tanda tangan

SignatureAlgorithmInfo menjelaskan algoritma yang digunakan dalam tanda tangan yang ada.

var info = new SignatureAlgorithmInfo("SHA256withRSA");
Console.WriteLine(info.ToString());

Tips dan Praktik Terbaik

  • Selalu tanda tangani dokumen sebagai langkah terakhir — setiap modifikasi setelah penandatanganan membatalkan tanda tangan.
  • Gunakan file PFX dengan kata sandi yang kuat untuk penyimpanan sertifikat.
  • Verifikasi tanda tangan setelah memuat dokumen untuk mendeteksi manipulasi.
  • Enkripsi berbasis sertifikat memerlukan sertifikat kunci publik penerima.
  • Implementasikan ICustomSecurityHandler hanya ketika enkripsi standar tidak memadai.

Masalah Umum

MasalahPenyebabPerbaikan
Tanda tangan muncul sebagai tidak validDokumen diubah setelah penandatangananTandatangani kembali setelah semua modifikasi selesai
Pemuatan PFX gagalKata sandi salah atau file rusakVerifikasi kata sandi dan integritas file
Enkripsi mencegah pembukaanKata sandi pemilik tidak diberikanGunakan kata sandi pemilik atau pengguna yang benar

FAQ

Algoritma tanda tangan apa yang didukung?

RSA dengan SHA-256, SHA-384, dan SHA-512 biasanya didukung. Algoritma yang tersedia bergantung pada tipe kunci sertifikat.

Bisakah saya menambahkan beberapa tanda tangan?

Ya. Setiap tanda tangan diterapkan pada bidang tanda tangan terpisah dalam dokumen.

Apakah penandatanganan memerlukan sertifikat komersial?

Tidak. Sertifikat yang ditandatangani sendiri berfungsi untuk pengujian. Untuk produksi, gunakan sebuah sertifikat dari CA tepercaya.


Ringkasan Referensi API

Class / MethodDescription
PdfSignerMenandatangani dan memverifikasi dokumen PDF
PdfSigner.SignMenerapkan tanda tangan digital
PdfSigner.VerifyMemeriksa keabsahan tanda tangan
PdfSigner.SignWithAppearanceMenandatangani dengan bidang tanda tangan visual
PdfCertificatePemuat sertifikat untuk format PFX dan DER
PdfCertificate.FromPfxMuat dari file PFX dengan kata sandi
PdfCertificate.FromDerFilesMuat dari file yang dienkode DER
CertificateEncryptionOptionsEnkripsi PDF berbasis sertifikat
ICustomSecurityHandlerAntarmuka untuk enkripsi/dekripsi khusus
EncryptionParametersParameter yang diteruskan ke penangan keamanan khusus
SignatureAlgorithmInfoMetadata tentang algoritma tanda tangan

Lihat Juga

 Bahasa Indonesia