セキュリティと署名

セキュリティと署名

セキュリティと署名

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 を実装してください。

一般的な問題

問題原因対策
署名が無効として表示される署名後にドキュメントが変更されたすべての変更が完了した後に再署名してください
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署名アルゴリズムに関するメタデータ

参照

 日本語