4.9. signature
The signature directive in an initialization
response is used to verify the integrity of all the initialization directives and thus allows the requester to
authenticate the responder prior to making any continuation requests.
The signature directive is computed by the responder as follows:
signature = base64enc( SIGN( private-key, init-transcript ) )
where the following apply:
base64enc() is base64 encoding, bytes to string.
SIGN(k,m) is the signature over string m using private key k according
to the Signature Scheme.
private-key is the responder's authentication key private key.
init-transcript is a concatenation of all the initialization directives, computed according to the
Initialization Transcript section.
The signature directive is validated by the requester as follows:
VALIDATE( public-key, init-transcript, base64dec( signature ) )
where the following apply:
base64dec() is base64 decoding, string to bytes.
VALIDATE(k,m,s) is the validation of a signature s over a string m using
public key k, according to the Signature Scheme.
signature is the value of the received directive.
public-key is the public key associated (subjectively, by the requester) with the responder. Note
that this may or may not be equivalent the public key implied by the certificate directive, depending on the trust mechanism employed by the requester.
init-transcript is a concatenation of all the initialization directives, computed according to the
Initialization Transcript section.
|