문제

다음과 유사한 구조를 가진 XML 문서가 있습니다.

<envelop>
    <header>blaa</header>
    <message>blaa blaa</message>
    <footer></footer>
</envelop>

머리글과 메시지 요소에 디지털 서명을 하고 바닥글 요소에 서명을 추가하고 싶습니다.

요소에 서명한 다음 나중에 서명을 확인하려면 어떻게 해야 합니까(.net C# 사용)?

도움이 되었습니까?

해결책

서명에 XPath 변환을 추가할 수 있어야 합니다.다음과 같아야 합니다.

       <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116">
         <XPath xmlns:dsig="&dsig;">
         ...
         </XPath>
       </Transform>

저는 XPath에 능숙하지 않지만 Footer 요소를 제외하는 XPath 표현식을 공식화하는 것은 쉬울 것입니다.(그러나 XPath는 XML-DSIG의 선택적 부분이므로 모든 구현이 이를 지원하는 것은 아닙니다.)

또는 문서를 다음과 같이 재구성할 수 있는 경우

<envelop>
  <header>blaa</header>
  <message>blaa blaa</message>
  <Signature></Signature>
</envelop>

또는

<envelop>
  <signedEnvelope>
    <header>blaa</header>
    <message>blaa blaa</message>
  </signedEnvelope>
  <Signature></Signature>
</envelop>

Enveloped Signature Transform(첫 번째 경우)을 사용하거나 signedEnvelope 요소(두 번째 경우)에 서명하여 이를 처리할 수 있습니다.

다른 팁

Microsoft 파트너가 있습니다. 그들은 당신이 추가 할 수 있습니다 디지털 서명 XML (다른 모든 플랫폼)의 경우. 제품을 확인하는 것이 좋습니다. COSIGN이라고합니다.

XML 서명에 대한 W3 추천을 따르십시오 http://www.w3.org/2000/09/xmldsig# 기본 구조가 있습니다.

<Signature>
   <SignedInfo>
      <SignatureMethod />
      <CanonicalizationMethod />
      <Reference>
         <Transforms>
         <DigestMethod>
         <DigestValue>
      </Reference>
      <Reference /> etc.
   </SignedInfo>
   <SignatureValue />
   <KeyInfo />
   <Object />
</Signature>

더 고급 기능을 원한다면 Xades에 대해 읽으십시오. C#에서는 avalible이라고 생각합니다.

나는이 게시물이 오래된 것을 본다. 그러나 아마도 누군가가 지금 같은 필요를 가지고있을 것이다. 당신이 필요로하는 것은 어떻게 든 xmldsig의 봉투 서명과 같습니다. 차이점은 xmldsig에서 서명 데이터를 서명 마디.

이 작업을 수행하려면 직접 구현해야합니다.

.NET 프레임 워크에 대한 Xades 지원을 제공하기 위해 라이브러리를 개발하는 프로젝트에 참여했습니다.

방금 Xades-Bes에 대한 조기 지원을 제공하는 버전 1.0을 방금 출시했습니다.

당신은 그것을 찾을 수 있습니다 xades .net 프로젝트

소스 코드가 어떻게 든 도움이되기를 바랍니다.

문안 인사.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top