2014-09-11 10 views
1

xades4j를 사용하여 재현해야하는 예제 xades 서명을 받았습니다 ("템플릿과 유사").xades4j : signedproperties 참조에서 변환을 사용하여 서명을 생성하는 방법

예 서명이 (발췌)입니다 :

<ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#" Id="xmldsig-qualifyingproperties-yada-yada"> 
    <ds:SignedInfo> 
     <ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/> 
     <ds:SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256"/> 
     <ds:Reference URI="#xmldsig-signedproperties-yada-yada"> 
      <ds:Transforms> 
       <ds:Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments"/> 
      </ds:Transforms> 
      <ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/> 
      <ds:DigestValue>yada-yada-yada-yada-yada-yada-yada</ds:DigestValue> 
     </ds:Reference> 
(...) 

나는 어떤 속성이 입력되지 있기 때문에이 참조가 된 XAdES을 준수하지 않는 것을 알고있다.

제 문제는 해당 참조의 변형입니다. xades4j를 사용하여이 옵션을 설정하는 방법을 찾을 수 없습니다. 이 작업을 수행 할 수 있습니까?

또한 서명 상단에서 정규화 방법이 서명 된 속성 참조에서 하나의 정규화 방법이라고 말하기 때문에 여기에 의미가 있는지 여부는 알 수 없습니다. 이것을 정확하게 읽는가?

답변

0

서명 된 속성 참조에 대해 변환을 설정할 수 없습니다. 이 모두에 의해 좌우된다

  1. 는 필요성에 대해 확신되는 - 자원은 외부 제어를 할 수 있도록 많은 이해가되지 않도록 (실제 서명 속성 요소) 실제로 xades4j에 의해 생성되는 서명된다.
  2. 보안 - 참조 변환이 SignedProperties 요소를 가리키는 지 확인해야하기 때문에 임의의 변환을 허용 할 수 없습니다. 아마 해당이 사용할 수있는 변환

가 정규화이지만, XML-DSIG 이미 지정하는 간접 참조 된 자원은 다이제스트 xades4j/투아 리오가 사용하는 기본 알고리즘으로 C14N을 사용하기 전에 정규화해야하는 노드 집합 인 경우. 귀하의 예제에서 알고리즘은 다이제스트 생성에 대한 주석 노드를 포함한다는 점에서 차이가 있습니다.

두 정규화 알고리즘을 사용하는 것은 다른 점이 있습니다. 참조 변환의 데이터 변환은 데이터 객체를 참조 해제 한 결과에 적용됩니다. 반면에 맨 위에있는 것은 SignedInfo 요소에 사용 된 정규화 알고리즘을 지정하여 실제 서명 입력 (옥텟 스트림)을 가져옵니다.

+0

두 번째 요점과 완전히 일치합니다. 또한 제작자 관점에서 첫 번째로. 하지만 내가 검증자인 경우 (분명히) signedProperties 참조에서 정규화 변환을 갖는 서명을 검증하려고합니다. 고려해야 할 Transform을 사용해야합니까? Personality, 나는이 참조에서 어떤 변환도하지 않고 간단하고 명료하게하기 위해 지정된 기본값을 사용하는 것을 선호합니다. 그러나 나는 그들이 나에게주는 것을 가지고 놀아야한다 ... – brun0sa

+0

변환이 있다면, xades4j는 참조를 처리 할 때 그것을 사용할 것이다. 당신이 할 수있는 일은 검증 결과에있는 데이터 객체를 분석하고 안전하지 않은 것으로 생각되는 변형이 있는지 확인하는 것입니다. 흰색 목록의 종류. – lgoncalves

+0

이것은 어리석은 질문 일지 모르지만 ... 정규화 알고리즘은 포함 된 주석의 차이와 동일하다고 말했습니다. 이 예제에서는 "xml-exc-c14n"과 "REC-xml-c14n-20010315"(주석 부분은 무시함)입니다. 이것들은 동일합니까? – brun0sa