ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScript と WebCrypto API を使用して PDF に安全に署名するにはどうすればよいですか?

JavaScript と WebCrypto API を使用して PDF に安全に署名するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-26 04:39:13406ブラウズ

How Can I Securely Sign PDFs Using JavaScript and WebCrypto API?

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

JavaScript と WebCrypto API を使用して PDF ドキュメントにデジタル署名することは、需要の高い機能です。特に Chrome と Firefox での WebCrypto のサポートが強化されました。ただし、このトピックに関して利用できる情報は限られています。

現在、WebCrypto API にはキー ストアとローカル暗号化デバイスへのアクセスに制限があります。さらに、PDF ファイル全体をブラウザに送信したり、API サーバーに署名したりすると、セキュリティ上の懸念が生じます。

ベスト プラクティスは、PDF のハッシュを作成し、そのハッシュをブラウザに送信し、JavaScript を使用してアプリケーションを呼び出すことです。ブラウザ拡張機能を介してローカル システム上で。このローカル アプリケーションは、キー ストアにアクセスして署名を生成できます。署名されたハッシュはサーバーに返され、そこで PDF に再度挿入できます。

このプロセスを容易にする 1 つのソリューションは、ローカル キー ストアへのアクセスを提供し、ローカル キー ストアへのアクセスを提供するブラウザ拡張機能である Signer.Digital です。ハッシュに署名するための JavaScript。署名されたハッシュはサーバーに送り返され、そこで PDF に追加できます。

動作メカニズム

  1. PDF ファイルのハッシュを計算します。 .
  2. ハッシュを Signer.Digital ブラウザ拡張機能に渡します。 JavaScript。
  3. 拡張機能はホスト アプリケーションを呼び出し、ローカル キー ストアを使用してハッシュに署名します。
  4. 署名されたハッシュ (PKCS7 署名) は JavaScript に返されます。
  5. JavaScript署名されたハッシュをサーバーに送り返します。
  6. サーバーは署名を PDF に挿入します。 file.

コード サンプル

// Sign the hash using the browser extension
SignerDigital.signPdfHash(hash, $("#CertThumbPrint").val(), "SHA-256")
  .then(
    function (signDataResp) {
      // Success: Send signed data to the server
    },
    function (errmsg) {
      // Failure: Handle error
    }
  );

Signer.Digital を統合することにより、開発者は、 WebCrypto API の制限事項。

以上がJavaScript と WebCrypto API を使用して PDF に安全に署名するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。