a Secarta project ...

HTTPsec Authentication Protocol


Preamble

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.