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

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

Barbara Streisand
Barbara Streisandオリジナル
2024-11-26 12:22:15388ブラウズ

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

プレーン JavaScript と WebCrypto API を使用した PDF への署名

WebCrypto API と純粋な JavaScript を使用して PDF ドキュメントにデジタル署名するには、いくつかの課題があります。 WebCrypto API は進化し、Chrome や Firefox などのブラウザでサポートされるようになりましたが、キー ストアやローカル暗号化デバイスに直接アクセスすることができません。

安全な PDF 署名のために、PDF ファイル全体を次の宛先に送信することはお勧めできません。ブラウザまたは API サーバー。署名用に PDF のハッシュを作成し、そのハッシュのみをブラウザに送信することをお勧めします。

ブラウザベースの署名に関する考慮事項

ローカル キーストアにアクセスする際の WebCrypto API の制限に対処するには、 Signer.Digital のようなブラウザ拡張機能が解決策を提供します。この拡張機能は、ブラウザとユーザーのシステム上で実行されているローカル ホスト アプリケーションの間のギャップを埋めます。これにより、ローカル キー ストア、暗号化 USB、またはスマート カードにアクセスできるようになります。

Signer.Digital 拡張機能を使用すると、JavaScript コードでメソッドを呼び出してドキュメントのハッシュに署名できます。次に、ホスト アプリケーションは、Microsoft 証明書ストア (Windows の場合) または PKCS#11 ライブラリ (Linux の場合) を介してユーザーの証明書を利用して、署名を取得します。拡張機能は、Base64 でエンコードされた pkcs7 署名を返し、PDF に挿入できます。

ブラウザ拡張機能ホスト関数

ブラウザの JavaScript コードは、Signer.Digital Browser から次のメソッドを呼び出すことができます。拡張ホスト:

  • signPdfHash(ハッシュ, certThumbPrint, hashAlgorithm)
  • signHashCAdESBr(hash, certThumbPrint, hashAlgorithm) (ICP-Brazil 署名の場合)
  • signCAdESEg(hash, certThumbPrint, hashAlgorithm) (エジプト ITIDA CAdES-BES の場合)署名)

これらのメソッドにより、JavaScript は秘密鍵のセキュリティを損なうことなくローカル キー ストアや暗号デバイスから署名を取得できます。

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

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