Victorian Electronic Records Strategy - Forever Digital logo
 


Search
    

5.3 Structure of Signature Block and Lock Signature Block

A Signature Block contains one digital signature and all the information necessary to verify the signature. The structure of the Signature Block is shown in the following figure.

Figure 16. The contents of a Signature Block. A Lock Signature Block is identical.

The contents of the signature block are:

  • Signature Format Description (M135). This element is a textual description of the process of generating the digital signature. It is intended to be read by developers in the future who are implementing software to verify the digital signature. Recommended values for this element are given in PROS 99/007: Specification 2: VERS Metadata Scheme.
  • Signature Algorithm (M149). This element identifies the algorithms used to generate the digital signature. It is explained in more detail in section 5.3.1.
  • Signature (M138). This element contains the actual digital signature. It is encoded in Base 64.
  • Certificate Block (M139). This element contains the certificates necessary to verify the digital signature. This element is explained in more detail in section 5.3.2.
  • Signer (M137) and Signature Date (M136). These elements are purely descriptive. They contain the name of the organisation or person who applied the digital signature, and the date the signature was applied. Note that this information is not protected by the digital signature and so cannot be trusted to be accurate.

The structure of a Lock Signature Block is identical to that of a Signature Block.

An example of a Signature Block follows:

<vers:SignatureBlock vers:id="Revision:1-Signature:1">
  <vers:SignatureFormatDescription>
	The contents of this VEO are signed using the SHA-1 hash algorithm and the DSA
	digital signature algorithm. SHA-1 is defined in Secure Hash Standard,
	FIPS PUB 180-1, National Institute of Standards and Technology, US Department
	of Commerce, 17 April 1995
	(http://csrc.nist.gov/publications/fips/fips180-1/fip180-1.pdf).
	The DSA algorithm is defined in Digital Signature Standard (DSS), FIPS PUB
	186-2, National Institute of Standards and Technology US Department of
	Commerce, 27 January 2000
	(http://csrc.nist.gov/publications/fips/fips186-2/fip186-2-change1.pdf).
	Details of the public keys are encoded as X.509 certificates in the
	vers:CertificateBlock elements. X.509 certificates are defined in "Information
	technology - Open Systems Interconnection - The Directory: Public-key and
	attribute certificate frameworks", ITU-T Recommendation X.509 (2000).
	The signature and certificates are encoded using Base64. Base64 is defined in
	Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet
	Message Bodies, Section 6.8, Base64 Content-Transfer-Encoding, IETF RFC 2045,
	N. Freed & N. Borenstein, November 1996,
	(http://www.ietf.org/rfc/rfc2045.txt?number=2045).
	The signature covers the contents of the vers:SignedObject element starting
	with the 'less than' symbol of the vers:SignedObject start tag, up to and
	including the 'greater than' symbol of the vers:SignedObject end tag. Before
	verifying the signature all whitespace (Unicode characters U+0009, U+000A,
	U+000D, and U+0020) must be removed from the text.
  </vers:SignatureFormatDescription>
  <vers:SignatureAlgorithm>
   <vers:SignatureAlgorithmIdentifier>
	1.2.840.10040.4.3
   </vers:SignatureAlgorithmIdentifier>
  </vers:SignatureAlgorithm>
  <vers:SignatureDate>2003-03-20T11:27:48-10:00</vers:SignatureDate>
  <vers:Signer>PROV Notary (Notary for PROV generated VEOs)</vers:Signer>
  <vers:Signature>
	MCwCFChPTcPBV+KkuBb9YZcQEbMbfos7AhQG8yrd91Hz0D5pefIXZutJFwdHbg==
  </vers:Signature>
  <vers:CertificateBlock>
   <vers:Certificate>
	MIICoTCCAmGgAwIBAgIBETAJBgcqhkjOOAQDMEAxCzAJBgNVBAYTAkFVMSAwHgYDVQQKExdEb2Rn
	eSBCcm9zIENlcnRpZmljYXRlczEPMA0GA1UEAxMGUm9vdENBMB4XDTAzMDEyMjEwNTQxNloXDTAz
	MDEyMzAxNDA1NlowMjELMAkGA1UEBhMCQVUxDTALBgNVBAoTBFBST1YxFDASBgNVBAMTC1BST1Yg
	Tm90YXJ5MIIBtDCCASkGByqGSM44BAEwggEcAoGA/X9TgR11EilS30qcLuzk5/YRt1I870QAwx4/
	gLZRJmlFXUAiUftZPY1Y+r/F9bow9subVWzXgTuAHTRv8mZgt2uZUKWkn5/oBHsQIsJPu6nX/rfG
	G/g7V+fGqKYVDwT7g/bTxR7DAjVUE1oWkTL2dfOuK2HXKu/yIgMZndFIAccCFJdgUI8VIwvMspK5
	gqLrhAvwWBz1AoGA9+GghdabPd7LvKtcNrhXuXmUr7v6OuqC+VdMCz0HgmdRWVeOutRZT+ZxBxCB
	gLRJFnEj6EwoFhO3zwkyjMim4TwWeotUfI0o4KOuHiuzpnWRbqN/C/ohNWLx+2J6ASQ7zKTxvqhR
	kImog9/hWuWfBpKLZl6Ae1UlZAFMO/7PSSoDgYQAAoGAy6h2g/EwZaGzotoIX726y32CzI1rwaNF
	reYce1JvOfq94KpVqu79fQl+4tjSyxi0TS/H2RVfcdrKP+8uLTx4CQjzON2uqlvv84Lhg+Dhxc2E
	JpH9RlbQa3B0RvILTjeGylcwmVUj+brdT5+foBhQHTIaeHdQsMddzJeB7QVG1cgwCQYHKoZIzjgE
	AwMvADAsAhR+T7l7OSF0w9uG65gBeXGzwkMQ9AIUAvB9N2i62E9od7uDZHF1opxP0l4=
   </vers:Certificate>
   <vers:Certificate>
	MIICrzCCAm+gAwIBAgIBETAJBgcqhkjOOAQDMEAxCzAJBgNVBAYTAkFVMSAwHgYDVQQKExdEb2Rn
	eSBCcm9zIENlcnRpZmljYXRlczEPMA0GA1UEAxMGUm9vdENBMB4XDTAzMDEyMjEwNTIyMVoXDTAz
	MDEyMzAxMzkwMVowQDELMAkGA1UEBhMCQVUxIDAeBgNVBAoTF0RvZGd5IEJyb3MgQ2VydGlmaWNh
	dGVzMQ8wDQYDVQQDEwZSb290Q0EwggG0MIIBKQYHKoZIzjgEATCCARwCgYD9f1OBHXUSKVLfSpwu
	7OTn9hG3UjzvRADDHj+AtlEmaUVdQCJR+1k9jVj6v8X1ujD2y5tVbNeBO4AdNG/yZmC3a5lQpaSf
	n+gEexAiwk+7qdf+t8Yb+DtX58aophUPBPuD9tPFHsMCNVQTWhaRMvZ1864rYdcq7/IiAxmd0UgB
	xwIUl2BQjxUjC8yykrmCouuEC/BYHPUCgYD34aCF1ps93su8q1w2uFe5eZSvu/o66oL5V0wLPQeC
	Z1FZV4661FlP5nEHEIGAtEkWcSPoTCgWE7fPCTKMyKbhPBZ6i1R8jSjgo64eK7OmdZFuo38L+iE1
	YvH7YnoBJDvMpPG+qFGQiaiD3+Fa5Z8GkotmXoB7VSVkAUw7/s9JKgOBhAACgYCmx50D/58WrFwa
	vjkxGr+Qq9uSQQAzte7gTOlmC1O3P6iYY5zmhZ/uWrXfieZPUK3DGyZfZ3HtG7//U+TgezgYTmyh
	uiUIDzWOZlMJCU9CZrKcB5CWfqLY6ijxucMS3NedcbwgOlzVHhfcR+yqLIKh7plogBZYfQttrfSs
	wuxJ0TAJBgcqhkjOOAQDAy8AMCwCFD9uWkymtSsiUriiKFEtjfXptP0rAhQ/m2+vVX+W3CpUBiH4
	F8cZ5Blhyg==
   </vers:Certificate>
  </vers:CertificateBlock>
 </vers:SignatureBlock>
 

5.3.1 Indication of hash and signature algorithms

The hash and digital signature algorithms used to sign the VEO are identified by the vers:SignatureAlgorithm element. By using this element a program can automatically select the correct program to verify the signature.

The contents of this element are derived from the signature algorithm identification used in X.509 certificates.

The only element used is the Signature Algorithm Identifier (M150), as no current algorithm appears to use the Signature Algorithm Parameters (M151) element, but the element may be used if required.

The signature algorithm identifiers used are the ones used in X.509 certificates. These identify a pair of algorithms: a hash algorithm and a digital signature algorithm. The identifiers are ASN.1 Object Identifiers (OIDs) and take the form of a sequence of numbers (the identifier space forms a tree, and each number in the sequence identifies a branch in a path through the tree). OIDs have several representations. The most convenient form for mixed human and computer use is the 'dot form'. In this form the numbers are represented textually separated, by dots: for example the string '1.2.840.113549.1.1.5'. There is a binary form of OIDs, but the text form is easy for computers to process and is easier for humans to read.

5.3.2 Representation of certificates

VERS uses X.509 certificates encoded using the Distinguished Encoding Rules (DER). References to the standards defining these formats are given in the Specification. A good summary of certificates and the DER encoding can be found in [RFC2459].

Certificates should not be included in the encoded form used to contain a certificate and associated private key (the private key used to sign a VEO must never be included in the VEO). Examples of such formats are

  • PKCS #7 (also known as a '.p78' form)
  • PKCS #12 (also known as a '.pfx' or '.p12' form)
  • Microsoft Serialized Certificate Store (also known as a '.sst' form).

As binary objects, certificates are encoded in Base64 for inclusion in the VEO. Digital signature implementations will normally directly accept DER-encoded certificates, and will often accept Base64-encoded certificates.

A Signature Block (M134) contains one or more Certificate Blocks (M139) elements. Each Certificate Block holds a certificate chain that can be used to verify the digital signature.

Each Certificate Block contains a sequence of one or more Certificate (M139) elements. Each Certificate (M139) holds a certificate. The Certificate Blocks are ordered so that:

  • the first Certificate Block contains the certificate containing the signer's public key
  • the second Certificate Block contains the certificate containing the public key of the certificate authority that generated the signer's certificate
  • the last Certificate Block contains the root certificate in the certificate chain.

Only certificates necessary to verify the signature are to be included in the Signature Block.

back to top

Victorian Government logo - Link to VicGov home Public Record Office Victoria logo - Link to PROV home