Skip to content

Latest commit

 

History

History
66 lines (53 loc) · 4.98 KB

data-model-for-certificates-v.1.0.0.md

File metadata and controls

66 lines (53 loc) · 4.98 KB

Data model for certificates - v1.0.0

Important Note: All the information available in the certificate MUST be included in the CMDB, whether it is mandatory or not.

  • SerialNumber - string(40), maybe string(59) if we want to allow ##:##:...:## format.
  • Name - A name for the certificate. For example: "TLS certificate for blockchain network"
  • Owner (assignedTo) - Reference to a single person in CMDB, that is accountable for the certificate. In the beginning, the person who requested it through ITSM.
  • Group (managedBy) - Reference to group or team in CMDB, that is accountable for the certificate. (Owner or Group) is mandatory (at least one of those).
  • Applications - List of applications in CMDB that use the certificate. Note: For now it's a list of services.
  • Machines - List of devices in CMDB where the certificate is installed
  • SubjectName - Distinguished Name (DN) for the certificate's subject
  • IssuerName - Distinguished Name (DN) for the certificate's issuer
  • notValidBefore - Activation date
  • notValidAfter - Expiry date
  • signaturesAlgorithms - List of algorithms used to sign the certificate. It is a list to have the possibility to define Hybrid Certificates in the case we use them. Each algorithm field should be free text, string(50) for each.
  • certificateFormat - Options: [X.509v3, X.509v2, X.509, CVC]
  • certificateEncoding - Options: [PEM, PKCS#7/P7B, DER, PKCS#12/PFX]
  • fingerprintAlgorithm - Free text, string(50).
  • fingerPrint - Certificate's fingerprint - string with variable length, depending on the algorithm used.
  • state - Certificate's state. Options: [pre-operational, operational, retired, suspended, revoked, destroyed].

    IMPORTANT: The states defined in CBOM 1.7 are: [pre-activation, active, deactivated, suspended, revoked, destroyed]. TO-DO: change our definition to match this naming.

  • revocationReason - Options: [keyCompromise, administrativeReason]. Should be mandatory in the case that the state is revoked.
  • keys - Certificate's private keys array. It can be more than one to have into account the possibility of Mixed Certificates. Ideally: [ {size1, algo1}, {size2, algo2}, …, {sizeN, algoN} ]. In the future it will be an array of CMDB references.
  • keys - Certificate's key algorithms and parameters. Tactical approach until we have an inventory of keys. List of possible values in the keys-list document.

management dates

Mapping of management dates as they are in CMDB now, and the ones defined in CBOM 1.7:

current definition CBOM 1.7 mapping
receivedDate creationDate
updatedDate -
installedDate -
availableDate activationDate
removalDate deactivationDate
revocationDate revokationDate

Dates defined in CBOM 1.7 into certificateProperties object are the following: [creationDate, activationDate, deactivationDate, revokationDate, destructionDate]

There's no mapping of updatedDate and installedDate into CBOM 1.7 and we don't define a destructionDate in our model. So, CBOM will be partially usable with this regard.

extended properties

  • basicConstraintsCA - true/false
  • keyUsage - List of possible values: [ digitalSignature, nonRepudiation, contentCommitment, keyEncipherment, dataEncipherment, keyAgreement, keyCertSign, cRLSign, encipherOnly, decipherOnly ]. More than 1 can be present. A string size of 256 should be enough.
  • extendedKeyUsage - List of possible values: [ TLS WWW server authentication, TLS WWW client authentication, Signing of downloadable executable code, E-mail protection, Binding the hash of an object to a time, Signing OCSP responses ]. More than 1 can be present. A string size of 256 should be enough.
  • subjectAlternativeName - string
  • authorityKeyIdentifier - string(40), maybe string(59) if we want to allow ##:##:...:## format.
  • subjectKeyIdentifier - string(40), maybe string(59) if we want to allow ##:##:...:## format.
  • authorityInformationAccess - URL or list of URLs. String size of 256 should be enough.
  • certificatePolicies - Policies list under which the certificate was issued, and under which can be used. String size of 256 should be enough. - NEXT ITERATION
  • CRLDistributionPoints - URL or list of URLs where you can get a CRL (Certificate Revocation List). String size of 256 should be enough. - NEXT ITERATION

Notes:

  • Properties in bold mean they are mandatory.
  • We have kept the original proposal for keys (crossed out) because the current definition is a compromise for CMDB current capacities. In the future we may evolve to the ideal proposal.
  • The model should be able to continue evolving. For example the "keys" information will be changed for CMDB references when we have a keys inventory.

References: