2013-06-09 3 views
1

서버에 저장된 웹 브라우저 문서를 통해 디지털 서명을 위해 ERP에 프로세스를 구현하고 싶습니다. 과정은 다음과 같아야합니다서버에 저장된 문서의 디지털 서명

  1. 사용자의 사용자 로그는
  2. 사용자는 디지털 서명으로 PDF 파일을 선택 서명 된 디지털 있어야 서버에 저장된 PDF 파일을 볼
  3. 문서는 디지털 서명 될 것입니다.

디지털 서명은 스마트 카드 또는 서버 쪽 시스템을 사용하여 수행 할 수 있습니다. 구현 방법에 대해 알고 싶습니다.

+0

가능한 복제본 [사용자의 서명을 사용하여 서버 문서에 PDF 서명] (http://stackoverflow.com/questions/10656100/signing-pdfs-on-a-server-document-using-a-signature) -from-the-user) –

+0

http://stackoverflow.com/questions/13228106/x-509-digital-signatures-encryption-workflow-library-recommendations를보고 거기에서 내 대답을 확인하십시오. –

+0

통합 PDF 서명에 대해 이야기하고 있습니까? 또는 CMS 또는 XML dsig 시그니처를 분리합니까? 아니면 아직도 다른 것들? – mkl

답변

4

이 책의 제 4 장을 읽어 보시기 바랍니다 : http://itextpdf.com/book/digitalsignatures

귀하의 주요 문제는 서명은 개인 키를 필요로한다는 것이다. 이 비공개 키는 스마트 카드에 저장되며 분명한 이유 때문에 해당 카드에서 추출 할 수 없습니다 (혼자 인터넷에서 보내지는 않음).

아시다시피 실제 서명은 스마트 카드의 칩에서 수행되며 클라이언트의 컴퓨터에서는 수행되지 않고 서버에서 처리됩니다. 즉, PKCS # 11을 사용하여 서명을 만드는 클라이언트 측 소프트웨어가 필요합니다. (대안은 MS-CAPI를 사용하는 것이지만 Windows에서만 작동합니다.)

다른 옵션이 있습니다. 서버에 서명해야하는 PDF의 해시를 만들고 해시를 보낼 수 있습니다 클라이언트 응용 프로그램에 서명하여 서명하십시오. 또는 PDF를 클라이언트로 보내고 클라이언트에서 완전한 서명을 할 수 있습니다.

디지털 서명에 대한 저서는 이미 구식입니다. 우리는 이른바 "지연된 서명"을 구현하는 더 좋은 방법을 개발했습니다.

그럼에도 불구하고 실제로 클라이언트 측에있는 스마트 카드와 관련된 서버 측 서명을하려는 것이 반대입니다. 이러한 요구를 충족시키는 솔루션은 모든 보안 문제를 위반합니다.

+0

어디서나 전자 서명이 이미 안전하지 않은 이유는 사용자가 보는 것과 실제로 서명 된 것이 다른 것 (일부 해시, 사용자에게 알려지지 않은 것, 서명되지 않은 것, 문서가 아닌 것)입니다. 그런 다음 인증서가 * 신뢰할 수 있음 *으로 표시 될 수 있습니다. 이는 보안 위반 가능성을 의미합니다. 그래서 당신의 의견은 거의 이해가되지 않습니다. –

+1

서버 측에서 해시를 생성하고 클라이언트 측에서 서명 한 경우 매우 안전하지 않다고 말하면 최종 사용자는 자신이 실제로 서명하고 있는지 잘 모릅니다. 이 "솔루션"을 승인하지는 않지만, 많은 개발자들이이 방법으로 구현한다는 것을 알고 있습니다. 그럼에도 불구하고 OP가 자신과 모순된다는 나의 발언은 옳다. 클라이언트 측에서 스마트 카드로 서명하기 위해 서버 측 서명 솔루션을 요청하는 것은 의미가 없습니다. 왜 내 대답을 하향 투표하는 데 평판 포인트를 쓰는지 모르겠다. –

+0

당신은 전체적인 성명서에 틀린 말입니다 - 서명을 배포하는 것은 현지에서와 마찬가지로 안전합니다. –

5

[공시 : 내가 코사인에서 일]

당신이 (개방형, 표준, PKI, 디지털 서명을 사용하여) 우리의 고객에 의해 안전하게, 모든 시간을 완료 설명하고 있습니다.

디지털 서명 서명은 일반적으로 "SSCD (Secure Signature Creation Device)"에서 수행됩니다. 이것은 종종 스마트 카드이지만 필수적인 것은 아닙니다. 한 가지 중요한 대안은 안전한 중앙 집중식 시스템입니다. 이것이 CoSign 및 다른 일부 회사가 판매하는 것입니다.

작동 원리 : CoSign 또는 다른 사람이 작성하는 소프트웨어는 ERP 시스템의 문서를 가져 와서 문서의 디지털 서명 해시를 계산합니다. 해시는 서명자에 대한 인증 정보와 함께 중앙 집중식 SSCD로 전송됩니다. 그런 다음 SSCD가 디지털 서명을 계산하고 결과가 요청한 시스템으로 다시 전송됩니다. 서명은 표준 (예 : pdf) 당 문서에 추가됩니다. 결과 : 서명 된 pdf 파일. (또는 서명 된 Word 문서 또는 서명 된 XML 등)

서명자의 개인 키는 절대로 SSCD를 벗어나지 않습니다. CoSign에는 FIPS 인증 변조 방지 케이스가 포함 된 SSCD 모델이 있습니다. 누구든지 사례를 열면 모든 개인 키가 즉시 삭제됩니다.See description.

귀하의 ERP 시스템과 통합하기 위해 사전에 connectorsmultiple APIs을 작성했습니다.

자세한 내용은 arx.com에 문의하십시오. 래리가 보냈다고 해.

+0

"다음에 서명이 추가된다. 표준 당 문서 (예 : pdf) "나는이 부분에 붙어 있습니다. 이 작업을위한 오픈 소스 도구가 있습니까? 예 : 인증서, 서명 및 타임 스탬프를 https://www.adobe.com/devnet-docs/acrobatetk/tools/DigSig/Acrobat_DigitalSignatures_in_PDF.pdf에 따라 PDF 파일에 삽입하십시오. –

0

스마트 카드가 물리적으로 클라이언트쪽에있는 경우 서버 구성 요소의 존재 여부와 관계없이 클라이언트 컴퓨터에서 스마트 카드가 실행되어야합니다. 이것은 서명이 스마트 카드 자체에서 계산되고 스마트 카드가 연결된 컴퓨터 만이 서명 할 수 있기 때문에 클라이언트에서 어떤 것이 실행되어야하기 때문입니다.

두 가지 옵션은 다음과 같습니다

  • 클라이언트 소프트웨어는 스마트 카드에 필요한 콘텐츠를 공급, PDF를 읽는 스마트 카드에서 응답 서명을 수신하고, 삽입에서, 전체 서명 프로세스를 처리 되세요 서명을 PDF로 보내거나

  • 클라이언트 소프트웨어를 서버와 조정하여 서버에서 PDF 해시를 수신하고이를 스마트 카드로 보내고 응답 서명을 수신 한 다음 서버로 보낸 다음 서버 PDF에 서명을 삽입 할 수 있습니다 (이 스키마의 변형을 사용할 수 있음). ible).

두 경우 모두 서명 생성은 스마트 카드 장치의 클라이언트 측에서 이루어져야합니다.