Aspose PDF에서 IronPDF로 마이그레이션
'서명'은 IronPDF에서 세 가지 다른 의미를 가집니다; 인증서로 지원되는 변조 방지 디지털 서명, 손으로 쓴 이미지의 시각적 스탬프 및 나중에 사용자 서명을 위한 상호작용 필드 - 서로 교환 가능하지 않습니다. 그들의 보안 특성은 다르므로 사용 사례는 그에 따라 나뉩니다. 암호화 코어는 PdfSignature 클래스이며, X509Certificate2을 .pfx 또는 .p12 파일로부터 로드하여 pdf.Sign(...)로 적용됩니다. 이는 콘텐트에 신원을 묶으므로, 나중에 수정하면 서명이 깨집니다.
변조 방지 계약 및 협약
대부분의 팀이 처음으로 사용하는 것입니다. 인증서 서명은 문서가 진짜임을 증명하고 수정되지 않았음을 증명하며, 감사 추적(이유, 위치, 연락처, 날짜) 및 신뢰할 수 있는 타임스탬프를 임베드할 수 있습니다.
using IronPdf;
using IronPdf.Signing;
using System;
var pdf = PdfDocument.FromFile("contract.pdf");
var signature = new PdfSignature("certificate.pfx", "password")
{
SigningReason = "Contractual Agreement",
SigningLocation = "Chicago, USA",
SignatureDate = DateTime.Now,
TimeStampUrl = new Uri("http://timestamp.digicert.com"),
TimestampHashAlgorithm = TimestampHashAlgorithms.SHA256
};
pdf.Sign(signature);
pdf.SaveAs("contract-signed.pdf");Imports IronPdf
Imports IronPdf.Signing
Imports System
Dim pdf = PdfDocument.FromFile("contract.pdf")
Dim signature = New PdfSignature("certificate.pfx", "password") With {
.SigningReason = "Contractual Agreement",
.SigningLocation = "Chicago, USA",
.SignatureDate = DateTime.Now,
.TimeStampUrl = New Uri("http://timestamp.digicert.com"),
.TimestampHashAlgorithm = TimestampHashAlgorithms.SHA256
}
pdf.Sign(signature)
pdf.SaveAs("contract-signed.pdf")신뢰할 수 있는 기관의 타임스탬프는 문서가 언제 서명되었는지에 대한 암호학적 증거를 제공하며, 로컬 시계와는 독립적입니다 - 이는 파일링 및 규제 제출에 중요합니다.
서명 후 문서 잠금
SignaturePermissions 설정은 이후에 허용되는 것을 제어합니다: NoChangesAllowed는 문서를 잠그고, FormFillingAllowed는 필드 입력만 허용하며, AnnotationsAndFormFillingAllowed는 메모도 허용합니다. 허용되지 않은 모든 작업은 서명을 무효화하며, 이는 발행된 인증서, 승인된 정책 및 완료된 명세에 적합합니다.
다자간 승인 워크플로우
PDF는 증분 저장을 지원하므로, 서명은 특정 개정판에 적용됩니다. 각 승인자는 자신의 것을 서명하며, 히스토리는 누가 무엇을 서명했는지, 언제 서명했으며, 무엇이 변했는지 기록합니다. 이는 공동 서명 및 순차 서명을 포함합니다.
검증 및 감사 관문
파이프라인은 검증에 실패한 모든 문서를 거부한 후, 롤백하거나 서명을 제거할 수 있습니다:
var pdf = PdfDocument.FromFile("signed-report.pdf");
bool valid = pdf.VerifySignatures();
if (!valid)
{
pdf.RemoveSignatures();
pdf.SaveAs("report-unsigned.pdf");
}Dim pdf = PdfDocument.FromFile("signed-report.pdf")
Dim valid As Boolean = pdf.VerifySignatures()
If Not valid Then
pdf.RemoveSignatures()
pdf.SaveAs("report-unsigned.pdf")
End If암호학 없는 시각적 승인
서명의 모양만 필요하고 법적 비부인성이 필요하지 않을 때, 스탬프 또는 워터마크 기능으로 스캔된 손으로 쓴 이미지를 찍습니다. 내부 승인에는 좋지만, 그것이 무엇인지 명확히 하면 됩니다.
스탬프 또는 인증서, 그리고 두 가지 주의점
스탬프된 이미지가 인증서 서명을 대신하지 않게하십시오. 스탬프는 페이지의 픽셀입니다: 복사 가능하고, 검증할 수 없으며, 문서가 변조되지 않았다는 보장이 없습니다. 인증서 서명은 변조 감지가 가능하며 신원을 암호학적으로 콘텐츠에 묶습니다. 모양은 스탬프를 사용하고, 증명은 인증서를 사용하세요.
두 가지는 사람들을 놀라고 있습니다. 인증서를 X509KeyStorageFlags.Exportable로 로드하지 않으면 개인 키를 사용할 수 없고 서명이 실패합니다. 그리고 뷰어가 녹색 체크 대신 경고를 표시하면, 인증서는 해당 뷰어의 신뢰 저장소에 없습니다; 서명이 여전히 유효하지만, 신뢰는 별도로 설정해야 합니다.

커티스 차우는 칼턴 대학교에서 컴퓨터 과학 학사 학위를 취득했으며, Node.js, TypeScript, JavaScript, React를 전문으로 하는 프론트엔드 개발자입니다. 직관적이고 미적으로 뛰어난 사용자 인터페이스를 만드는 데 열정을 가진 그는 최신 프레임워크를 활용하고, 잘 구성되고 시각적으로 매력적인 매뉴얼을 제작하는 것을 즐깁니다.