• 検索結果がありません。

リクエストとレスポンス

4 タイムスタンプに関連した仕様と標準化動向

4.4 RFC 3029 Data Validation and Certification Server Protocols (IETF)

4.4.4 リクエストとレスポンス

DVCSリクエストのフォーマットはCMS(RFC3369:旧 RFC2630) [CMS]で定 義されているContentInfoである。ContentInfoのcontentTypeには以下のOID が指定される。

id-ct-DVCSRequestData OBJECT IDENTIFIER ::= {iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs-9(9) smime(16) ct(1) 7}

ContentInfoのcontentは以下で定義されるDVCSRequestである。

DVCSRequest ::= SEQUENCE {

requestInformation DVCSRequestInformation, data Data,

transactionIdentifier GeneralName OPTIONAL }

DVCSRequestはリクエストに関する情報を表すrequestInformation、認証を 行う対象データであるdataから構成され、オプションとしてリクエストのIDを 表すtransactionIdentifierを指定することができる。

DVCSリクエストは、機密性や認証を提供するために、他のcontentTypeによ ってカプセル化することができる。例えば、DVCSリクエストに署名を施す場合 は、CMS SingedDataを使用し、SingedDataにおけるeContentTypeに

id-ct-DVCSRequestDataを、eContentにDVCSRequestData構造を与えること

ができる。署名付きDVCSリクエストの構造を図 4.4-2に示す。

ContentInfo

contentType(OID)=id-signedData content(SignedData)

version

digestAlgorithms

encapContentInfo(EncapsulatedContentInfo) eContentType(OID)=id-ct-DVCSRequestData eContent(DVCSRequest)

requestInformation(DVCSRequestInformation)

data (Data) = {message | messageImprint | certs}

message (OCTET STRING)?

dvcs (GeneralNames)?

dataLocations (GeneralNames)?

genTime(GeneralTime)?

timeStampToken(TimeStampToken)?

requester (GeneralNames)?

requestPolicy (PolicyInformation)?

transactionIdentifier(GeneralName) messageImprint (DigestInfo)?

digestAlgorithm(DigestAlgorithmIdentifier) digest(Digest)

target(CertEtcToken)={certificate|esscertid|pkistatus|assertion|crl|ocspcertstatus |ocspcertid|ocspresponse|capabilities|extesion}

pathProcInput(PathProcInput) chain(CertEtcToken)+

oc spc ertid(C ertId)?

oc spreponse(OC S P R esponse)?

c apabilities(S MIME C apabilities)?

version

service={cpd(1)|vsd(2)|cpkc(3)|ccpd(4)}

nonce?

requestTime={genTime| timeStampToken}

extensions (Extensions)?

essc ertid(E S S C ertId)?

pkistatus(P KIS tatusInfo)?

certs(TargetEtcChain)*

oc spc ertstatus(C ertS taus)?

extension(E xtension)?

c ertific ate (C ertific ate)?

assertion(C ontentInfo)?

c rl(C ertic ateL ist)?

図 4.4-2DVCSリクエスト(署名付)

表 4.4-1図の表記方法を表 4.4-1に示す。

表 4.4-1ASN.1構造図の表記方法

表記 説明

X(Y)=Z 属性名X、型Y、値Z

0個または、1個現れることを示す。

0個以上現れることを示す。

1個以上現れることを示す。

{A | B} AまたはBのいずれかをとる。

requestInformationはリクエストに関する一般的な表している。

requestInformation.versionは1を指定するか、versionの項目自体が存在しない かのいずれかである。requestInformation.serviceはリクエストの種類を表し、

cpd,vsd,vpkc,ccpdのいずれかを表す値である。

vsd,vpkcのサービスではオプションとして、署名文書が有効であると主張する

時刻をrequestTimeフィールドで指定することができる。vsd,vpkc以外のサービ スではこのフィールドは無視される。時刻はGeneralizedTimeあるいはTSAから 発行されたTimeStampToken[TSP]を指定することができる。この指定を諸略し た場合は現時刻とみなされる。

DVCSRequestのDataはサービスに応じて、署名文書(vsd)、証明書チェーン (vpkc)、メッセージダイジェスト(ccpd)、任意のデータ(cpd)が置かれる。

4.4.4.2 DVCSレスポンス

DVCSレスポンスは、DVCSがデータや署名の検証を実施した結果として作成 する応答メッセージである。

DVCSレスポンスはCMS[CMS]のContentInfoであり、contentTypeには以下 のOIDを指定する。

id-ct-DVCSResponseData OBJECT IDENTIFIER ::= { iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs-9(9) smime(16) ct(1) 8 }

contentは次に定義されるDVCSResponseである。

DVCSResponse ::= CHOICE {

dvCertInfo DVCSCertInfo ,

dvErrorNote [0] DVCSErrorNotice }

DVCSはデータ認証や署名検証が正しく実施された場合には、DVCを

DVCSResponseに含め、実施に失敗した場合にはDVCを発行せずエラーのみを

DVCResponseに含める。

DVCSレスポンスは機密性や認証を提供するために、他のcontentTypeによっ てカプセル化することができる。図 4.4-3は署名付きDVCSレスポンス

(SignedDataによるカプセル化)のデータ構造である。

extensions?

dvErrorNote(DVCSErrorNotice)?

transactionStatus(PKIStatusInfo) status( PKIS tatus) =rejec tion(2) statusString(PKIFreeText)?

failInfo(PKIFailureInfo)={badRequest(2)|badTime(3)|badDataFormat(5)|

wrongAuthority(6)|incorrectData(7)} ? transactionIdentifier(GeneralName)?

dvStatus(PKIStatusInfo)?

policy(PolicyInformation)?

reqSignature(SignerInfos)?

certs(TargetEtcChain)*

serialNumber

responseTime(DVCSTime) genT ime( GenenalT ime) ?

timeStampToken(TimeStampToken)?

dataLocations(GeneralNames)?

extensions?

messageImprint(DigestInfo)

digestAlgorithm(DigestAlgorithmIdentifier) digest(Digest)

version

digestAlgorithms

enc apC ontentInfo( Enc apsulatedC ontentInfo) C ontentInfo

c ontentT ype=id- signedData c ontent=S ignedData

eC ontentT ype( C ontentT ype) =id- c t- DVC S ResponseData eContent(DVCSRespose)={dvCertInfo | dvErrorNote}

dvCertInfo(DVCSCertInfo)?

version=1

dvReqInfo(DVCSRequestInformation)

timeStampToken(TimeStampToken)?

requester(GeneralNames)?

requestPolicy(PolicyImformation)?

dvcs(GeneralNames)?

c ertific ates?

c rls?

sinerInfos version=1

servic e={c pd(1) |vsd( 2) |c pkc ( 3) |c c pd(4) } nonc e?

requestT ime( DVC S T ime) ={genT ime  |  timeS tampT oken  }?

genT ime( GenenalT ime) ?

図 4.4-3DVCSレスポンス(署名付)

dvCertInfo.responseTimeは応答に関する時刻であり、GeneralizedTime、 TimeStampToken、外部のサービスによって得られたDVCのいずれかを含めるこ とができる。

dvStatusフィールドは検証結果を表す。例えば、公開鍵証明書の検証 (vpkc) サ

たは一部の証明書の検証が失敗に終わった場合にはFAILEDが示される。各証明 書の検証結果はcertsフィールドの個々の要素によって示される。

4.4.4.3 データ検証証明書(DVC)

DVCはデータ検証の結果や、元となるリクエストなどの情報を含む署名データ である。

DVCはdvCertInfoが選択されたDVCSResponseを含むCMS SignedDataで ある。データ構造は図 4.4-3においてdvErrorNoteのCHOICEを除いたもので ある。