TimeStampReq ::= SEQUENCE { version INTEGER { v1(1) }, messageImprint MessageImprint, --a hash algorithm OID and the hash value of the data to be Adams, et al. Standards Track [Page 4] RFC 3161 Time-Stamp Protocol (TSP) August 2001 --time-stamped reqPolicy TSAPolicyId OPTIONAL, nonce INTEGER OPTIONAL, certReq BOOLEAN DEFAULT FALSE, extensions [0] IMPLICIT Extensions OPTIONAL }
——version 表示时间戳申请消息格式的版本
——messageImprint 包含需要加盖时间戳的摘要值,该摘要值得类型是OctetString,长度是具体密码杂凑算法得结果长度,具体格式如下:
MessageImprint ::= SEQUENCE { hashAlgorithm AlgorithmIdentifier, hashedMessage OCTET STRING }
——hashAlgorithm 表示得算法是国家密码管理部门批准得密码杂凑算法。如果TSA不识别给出得密码杂凑算法或这个密码杂 凑算法不符合国家密码管理部门得相关规定,那么TSA应该拒接提供时间戳服务,并在返回消息中设置badAlg和pkiStatusInfo 结构
——ashedMessage 表示摘要值
——reqPolicy 表示安全策略。安全策略由TSA提供,用户可选择可选择需要的安全策略设置该域
reqPolicy 的类型是TSAPolicyId
——nonce 是一个随机数,用在没有可靠的本地时钟的情况下检查响应消息的合法性并防止重放攻击
——certReq 用于请求TSA公钥证书。如果为true,则TSA应在响应消息中给出其公钥证书,该证书由响应消息中SigningCertificate属性ESSCertID指出,证书存放在响应消息SignedData结构的certificates域中
——entension 为扩展域,用于给申请消息添加额外信息。对于一个扩展,无论其是否为关键扩展,只要它在请求消息中出现,且又无法被TSA识别,则TSA应该不生成时间戳且返回失败消息(unacceptedExtension)
时间戳的请求消息不需要给出请求方的身份标识。如果TSA需要鉴别请求方的身份,应另外进行双向身份鉴别