타임스탬프 토큰을 발급 받았다고 끝이 아니다. 운영에서는 검증 역시 중요하다.

 

 - TSQ <-> TSR 매칭 여부(요청한 응답이 맞는지)

 - 토큰에 대한 서명/인증서 검증(TSA를 신뢰할 수 있는지)

 

1. TSR status 

TSR(TimeStampResp)에는 status(PKIStatusInfo)가 존재한다.

 - granted / grantedWithMods 등 성공 여부 확인

 

2. timeStampToken

status가 성공이면 timeStampToken이 존재

 

3. messageImprint

 - 원문을 다시 해시

 - TSTInfo의 messageImprint(알고리즘+해시값)와 비교

 

4. nonce

TSQ에 nonce를 포함하였다면, TSR에도 같은 nonce가 있어야 한다.

 - TSQ nonce == TSR nonce

 - 리플레이 공격 방지용

 

5. policy

TSTInfo 에는 policy OID가 포함

 - 허용 정책이 정해져 있다면 필터링

 - TSQ에서 reqPolicy를 요청했다면 응답 policy가 동일한지 확인 

 

6. TimeStampToken 서명 검증

 - 토큰(CMS SignedData) 서명 검증 

 - signerInfo가 가리키는 TSA 인증서로 검증

 

7. TSA 인증서 체인 검증

토큰에 인증서가 포함되어 있어도 신뢰 여부는 별도로 판단해야 함

 - 루트/중간CA 체인이 신뢰 저장소에 연결되는지 확인

 

정리

TimeStampToken 검증은 단순한 시간 검증이 아니다.

 

 - status 확인

 - token 존재 확인

 - messageImprint 일치 여부

 - nonce 매칭

 - policy 확인

 - 서명 검증

 

+ Recent posts