>웹 프론트엔드 >JS 튜토리얼 >JavaScript 및 WebCrypto API를 사용하여 PDF에 안전하게 디지털 서명하려면 어떻게 해야 합니까?

JavaScript 및 WebCrypto API를 사용하여 PDF에 안전하게 디지털 서명하려면 어떻게 해야 합니까?

Barbara Streisand
Barbara Streisand원래의
2024-11-26 12:22:15389검색

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)를 통해 사용자 인증서를 활용하여 서명을 얻습니다. 확장 프로그램은 PDF에 삽입할 수 있는 Base64로 인코딩된 pkcs7 서명을 반환합니다.

브라우저 확장 호스트 기능

브라우저의 JavaScript 코드는 Signer.Digital 브라우저에서 다음 메서드를 호출할 수 있습니다. 확장 호스트:

  • signPdfHash(hash, certThumbPrint, hashAlgorithm)
  • signHashCAdESBr(hash, certThumbPrint, hashAlgorithm)(ICP-브라질 서명용)
  • signCAdESEg(hash, certThumbPrint, hashAlgorithm)(이집트용 ITIDA CAdES-BES 서명)

이러한 메소드를 사용하면 JavaScript가 개인 키의 보안을 손상시키지 않고 로컬 키 저장소 및 암호화 장치에서 서명을 얻을 수 있습니다.

위 내용은 JavaScript 및 WebCrypto API를 사용하여 PDF에 안전하게 디지털 서명하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.