2017-09-28 10 views
1

RFC 3161 타임 스탬프 서버를 테스트 중이며 Foxit Reader, Xolido Sign Desktop 및 Adobe Acrobat Pro DC를 사용하여 PDF의 타임 스탬프를 만듭니다. Foxit Reader와 Xolido에서 타임 스탬프를 확인해 볼 수는 있지만 Adobe Acrobat은 "오류 durante la firma, El nombre TSA no coincide"를 반환합니다. "Signature error, TSA name does not match"와 같은 것입니다. 내가 검색하고 어도비 구성에서 TSA 서버 이름을 당신이 원하는대로, 나는 인증서의 제목, 그냥 일반적인 이름 등 정확하게 테스트 한 서버가 타임 스탬프 응답에서 TSA 이름으로 인증서 제목을 반환하지만 그것은 것 같습니다 승인. 나는 어도비가 그것을 말한 이유를 전혀 모른다. Foxit과 Xolido는 괜찮다.Adobe Acrobat 타임 스탬프 오류

I added a FoxitReader Screen after validate the timestamp.

폭스 잇 리더의 대화는 "서명 된 이후. 서명 보안 시간에서 문서 타임 스탬프 등이다 서명 유효합니다. TimestampTest. 문서의 서명이 수정되지 않았습니다"라는

PDF timestamp example with Foxit Reader

+0

나는 TSA 서명자 인증서 또는 연결 보안 인증서에 문제가 있다고 가정합니다. 분석 할 샘플을 공유하십시오. – mkl

+0

글쎄, 어떤 종류의 샘플을 원하는지 모르겠다. KeyStoreExplorer 및 PFX Certificate Generator로 많은 인증서를 생성하고 있습니다. 일부 TSA 인증서를 다운로드하고 광산과 비교하고 일부 필드를 업데이트했지만 모든 것이 동일합니다. 나는 ExtendedKeyUsage = "Timestamping"(Critical), KeyUsage = "디지털 서명, 부인 방지"(Critical), 기본 제약 = "Subject는 CA, Path Length Constraint : 없음", Authority Key Id 및 Subject Key Id가 있음 – RobertGG

+0

있음 다른 TSA 인증서 (예 : http://timestamp.wosign.com)처럼 {CN, O, C}라는 제목이 있습니다. 어쩌면 내 서버에 문제가있어 인증서가 아니지만 왜 여우 독자가 제대로 작동하는지 이해할 수 없습니다. – RobertGG

답변

1

글쎄, 나는 마침내 문제를 해결했다. OpenSSL을 사용하여 동일한 "tsa name mismatch"오류를 발견하고 OpenSSL 소스 코드를 읽은 것은 타임 스탬프 토큰의 TSA 이름과 인증서 제목 간의 로컬 비교입니다. 내 서버가 BouncyCastle을 사용하고 있으며 TSA 이름이 GeneralName 객체이기 때문에 "표준 것"으로 인해 X500 제목에서 TSAName을 만들면 주제 RDN을 바꿉니다 (예 : C = Foo, O = SomeOrg 등을 바꿉니다). X500Name 객체가 아닙니다.

주제를 뒤집은 다음 토큰 TSA 이름을 만들면 이제 Openssl과 Adobe가 모두 확인을 완료합니다.

tsTokenGen.setTSA(new GeneralName(reverseX500Name(new X500Name(tsuName)))); 

public static X500Name reverseX500Name(final X500Name name) { 
    RDN[] orig = name.getRDNs(); 
    int n = orig.length; 
    RDN[] _new = new RDN[n]; 
    for (int i = 0; i < n; i++) { 
     _new[i] = orig[n - 1 - i]; 
    } 
    return new X500Name(_new); 
} 

OpenSSL에 해당 오류가 INT_TS_RESP_VERIFY_TOKEN이며, ts_rsp_verify.c 라인 459 (OpenSSL이 버전에 선 상대)에 드 오류가 발생 할 수 있습니다 : 서버에서

는 지금 있습니다.