보안 및 서명

보안 및 서명

보안 및 서명

Aspose.PDF FOSS for .NET은 PDF 디지털 서명, 인증서 기반 암호화 및 맞춤 보안 핸들러를 지원합니다. 서명 워크플로에는 PdfSigner을, 인증서 관리는 PdfCertificate을 사용하십시오.


문서 서명

PdfSigner는 PFX 인증서를 사용하여 PDF에 디지털 서명을 적용합니다.

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

서명 확인

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

시각적 외관을 사용한 서명

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

인증서 관리

PdfCertificate는 PFX 파일 또는 DER 인코딩 파일에서 인증서를 로드합니다.

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

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

인증서 기반 암호화

CertificateEncryptionOptions 은 지정된 인증서 보유자만 열 수 있도록 PDF를 암호화합니다.

var options = new CertificateEncryptionOptions(cert);

맞춤형 보안 핸들러

맞춤형 암호화 및 복호화 로직을 위해 ICustomSecurityHandler를 구현하십시오.

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; }
}

서명 알고리즘 정보

SignatureAlgorithmInfo는 기존 서명에 사용된 알고리즘을 설명합니다.

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

팁 및 모범 사례

  • 문서를 최종 단계에서 항상 서명하십시오 — 서명 후에 수정하면 서명이 무효화됩니다.
  • 인증서 저장을 위해 강력한 비밀번호가 설정된 PFX 파일을 사용하십시오.
  • 문서를 로드한 후 서명을 확인하여 변조를 감지하십시오.
  • 인증서 기반 암호화는 수신자의 공개 키 인증서가 필요합니다.
  • 표준 암호화가 충분하지 않을 때만 ICustomSecurityHandler을 구현하십시오.

일반적인 문제

IssueCauseFix
서명이 유효하지 않음서명 후 문서가 수정됨모든 수정이 완료된 후 다시 서명
PFX 로드 실패잘못된 비밀번호 또는 파일 손상비밀번호와 파일 무결성을 확인
암호화로 인해 열 수 없음소유자 비밀번호가 제공되지 않음올바른 소유자 또는 사용자 비밀번호를 사용

자주 묻는 질문

지원되는 서명 알고리즘은 무엇입니까?

RSA와 SHA-256, SHA-384, SHA-512는 일반적으로 지원됩니다. 사용 가능한 알고리즘은 인증서의 키 유형에 따라 달라집니다.

여러 서명을 추가할 수 있나요?

예. 각 서명은 문서의 별도 서명 필드에 적용됩니다.

서명에 상업용 인증서가 필요합니까?

아니요. 셀프 서명된 인증서는 테스트에 사용할 수 있습니다. 프로덕션에서는 사용하십시오 신뢰할 수 있는 CA에서 발급된 인증서를.


API 참조 요약

Class / MethodDescription
PdfSignerPDF 문서에 서명하고 검증
PdfSigner.Sign디지털 서명 적용
PdfSigner.Verify서명 유효성 확인
PdfSigner.SignWithAppearance시각적 서명 필드로 서명
PdfCertificatePFX 및 DER 형식용 인증서 로더
PdfCertificate.FromPfx비밀번호가 있는 PFX 파일에서 로드
PdfCertificate.FromDerFilesDER 인코딩 파일에서 로드
CertificateEncryptionOptions인증서 기반 PDF 암호화
ICustomSecurityHandler맞춤형 암호화/복호화를 위한 인터페이스
EncryptionParameters맞춤 보안 핸들러에 전달되는 매개변수
SignatureAlgorithmInfo서명 알고리즘에 대한 메타데이터

또 보기

 한국어