ホームページ > ウェブフロントエンド > jsチュートリアル > JavaScript と WebCrypto API だけで PDF に署名できますか?

JavaScript と WebCrypto API だけで PDF に署名できますか?

Mary-Kate Olsen
リリース: 2024-12-01 03:31:09
オリジナル
540 人が閲覧しました

Can JavaScript and WebCrypto API Alone Sign a PDF?

JavaScript と WebCrypto API を使用して PDF に署名

WebCrypto API の進化と、Chrome や Firefox などの主要なブラウザでのそのサポートにより、可能性が高まっていますデジタル PDF 署名にそれを活用する方法について説明します。ただし、ドキュメントや詳細な例が不足しているため、課題が生じています。署名プロセスを説明する例は存在しますが、望ましい結果 (署名された Base64 PDF 文字列) は依然としてわかりません。

JavaScript と WebCrypto API だけを使用して PDF に署名できますか?

現在、WebCrypto API にはキー ストアや外部暗号化デバイスへのアクセスがありません。 PDF をサーバー境界内で保護する必要がある一般的な PDF 署名要件に対応するには、ドキュメント全体をブラウザに送信したり、API サーバーに署名したりすることはお勧めできません。

最適なアプローチ

効果的な解決策には、署名用の PDF のハッシュを作成し、そのハッシュをブラウザに送信し、ブラウザ拡張機能を介して JavaScript を利用してローカル キーストア (またはUSB/スマートカード) を使用して署名を生成します。結果の署名 (例: PKCS7 または CMS コンテナ) はサーバーに送り返すことができ、そこでハッシュの作成元となった元の PDF に挿入できます。

Signer.Digital Extension for Browser拡張機能

ブラウザベースの署名シナリオを容易にするために、Signer.Digital と呼ばれるブラウザ拡張機能と付随する.NETライブラリが利用可能です。この拡張機能は主要なブラウザ (Chrome および Firefox) とシームレスに動作し、Signer.Digital Browser Host を利用して Windows 証明書ストアおよび基盤となる CSP と対話してハッシュに署名します。

JavaScript コード サンプル

拡張機能から署名関数を呼び出すには、JavaScript コードを次のように使用できます。

// Calculate Sign for the Hash by Calling function from Extension SignerDigital
SignerDigital.signPdfHash(hash, $("#CertThumbPrint").val(), "SHA-256")  // or "SHA256"
  // SignerDigitial.signHashCAdESBr method may be used for producing ICP-Brazil Signature

  .then(
    function (signDataResp) {
      // Send signDataResp to Server
    },
    function (errmsg) {
      // Send errmsg to server or display the result in browser.
    }
  );
ログイン後にコピー

図: ブラウザからのデジタル署名

[ブラウザからのデジタル署名のイメージ]

  1. サーバーがハッシュを送信ドキュメントをブラウザに送信します。
  2. ブラウザは Signer.Digital を使用します。ブラウザ拡張機能 JavaScript API は、拡張機能ホストからアクションを呼び出します。
  3. ブラウザ拡張機能ホストは、証明書ストアまたは暗号デバイスと対話して、署名付きハッシュを取得します。
  4. 署名はブラウザに返されます。
  5. ブラウザは署名をサーバーに送り返し、サーバーは署名をPDF.

以上がJavaScript と WebCrypto API だけで PDF に署名できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート