Certificats : La chaîne de certification

Ce paragraphe est orienté chaîne de certificats x509 DCI.
Nous n'évoquerons donc pas l'étendue des possibilités des chaînes de certificats x509.

Egalement, quand nous utiliserons le terme certificat, nous n'évoquerons que les certificats publics.

Préface

Comme nous l'avons vu précédemment dans les autres chapitres, sur un appareil DCI (player, encodeur), vous avez un certificat (publique) qui va servir à la gestion cryptographique de certains éléments comme les KDM, les PKL ou les CPL, entre autres.

Malgré son indépendance toute relative, nous avons remarqué que ce certificat était lié à un autre certificat, son "créateur", son direct parent et appelé un Issuer : c'est le signataire de ce certificat enfant, c'est lui qui l'a créé et signé.

Ce certificat parent - qui donc a un droit de création de certificat - fait partie d'une Autorité de Certification (Certificate Authority ou abbrégé en CA).

Cette hiérarchie est appelée une chaîne de certification (ou Certificate Chain).

A qui appartient cette chaîne de certification ?

Une chaîne de certification appartient à un "constructeur" : un constructeur peut être un constructeur d'un player, d'un encodeur ou tout type de matériel physique, ou même un développeur de logiciel lié au cinéma numérique, ou encore tout autre type d'entité ayant besoin de gérer une chaîne de certification qui sera utile dans le workflow DCI.

Pour chaque matériel, chaque constructeur va générer des certificats pour chacune de ses machines. Ainsi, par un exemple pour un player DCI, le constructeur va créer un certificat publique pour permettre à des laboratoires de créer des KDM pour cette machine (échange sécurisé) ou pour un encodeur de créer un certificat afin de valider les parties signer d'un KDM, d'une PKL ou d'une CPL avec le certificat d'un encodeur.

A la fin de tout ceci, à la question "à qui appartient cette chaîne de certification", vous pourrez enfin dire "à moi" :)

La chaîne : de haut en bas

Si nous devions résumer, une chaîne de certification respecte une règle en ayant trois parties majeures distinctes :

3 parties seulement ?

La norme SMPTE et le DCI-CTP recommandent très fortement (dans le sens où vous y êtes obligé :) d'avoir au minimum 3 niveaux de certificats (root, intermediate(s) et leaf(s)) :

Root Certificate

La chaîne de certification débute par un certificat tout en haut de la hiérarchie, certificat appelé Root Certificate. C'est le premier certificat qui a été créé dans la hiérarchie et c'est lui qui va chapoter les certificats en lien direct avec lui-même, juste en dessous.

                      ┌────────────┐
                      │    Root    │
                      └─────┬──────┘
            ┌───────────────┼─────────────────┐
            │               │                 │
    ┌───────▼────┐   ┌──────▼─────┐   ┌───────▼────┐
    │ Certificat │   │ Certificat │   │ Certificat │
    └────────────┘   └────────────┘   └────────────┘ 

Ce certificat n'est pas lié à un matériel.

Intermediate Certificate

Le certificat parent va permettre la création de sous-branches directes appelées Certificats Intermédiaires (ou Intermediates Certificates). Ces certificats ont le droit de gérer et créer des certificats directement en dessous d'eux. Les certificats en dessous peuvent être, soit des certificats intermédaires avec les mêmes pouvoirs, soit des certificats avec des droits plus restreints appelés Leaf Certificate.

                   ┌─────────────┐                                     ╮
                   │    Root     │                                     │
                   └───────┬─────┘                                     │
           ┌───────────────┼─────────────────────┐                     │
           │               │                     │                     │
┌──────────▼───┐     ┌─────▼────────┐    ┌───────▼──────┐              │
│ Intermediate │     │ Intermediate │    │ Intermediate │    Niveau 1  │
└──────────┬───┘     └──────┬───────┘    └───────┬──────┘              │-- Authority
           │                │                    │                     │
┌──────────▼───┐     ┌──────▼───────┐    ┌───────▼──────┐              │
│ Intermediate │     │ Intermediate │    │ Intermediate │    Niveau 2  │
└──────────┬───┘     └──────┬───────┘    └───────┬──────┘              │
           │                │                    │                     │
┌──────────▼───┐     ┌──────▼───────┐    ┌───────▼──────┐              │
│ Intermediate │     │ Intermediate │    │ Intermediate │    Niveau 3  │
└──────────┬───┘     └──────┬───────┘    └───────┬──────┘              ╯
           .                .                    .
           .                .                    .

Il n'y a aucune limite (en dehors du PathLen) aux nombres de niveaux dans les certificats intermédiaires.

Ce type de certificat n'est pas lié à un matériel.

Leaf Certificate

Enfin, en bout de hiérarchie, ces certificats sont appelés Leaf Certificates (feuille en français). Ces certificats ne font pas partie de l'Autorité de Certification car ils n'ont pas le droit de créer des certificats enfants. Ces certificats sont utilisés pour et dans les appareils DCI, tels que des players, des encodeurs, etc.

                      ┌────────────┐    ╮
                      │    Root    │    │
                      └──────┬─────┘    │
                             │          │-- Authority
                     ┌───────▼──────┐   │
                     │ Intermediate │   │
                     └───────┬──────┘   ╯
                             │  
                        ┌────▼────┐
                        │   Leaf  │
                        └─────────┘ 

Ce type de certificat est lié à un matériel.

La hiérarchie : un arbre inversé

Voici un exemple parmi d'autres d'une hiérarchie de certificats avec une multitude de certificats intermédiaires et de certificats leafs :

                             ▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅                                              ╮
                             █             █                                              │
                             █    Root     █                                              │
                             █             █                                              │
                             █▅▅▅▅▅▅▅▅▅▅▅▅▅█                                              │
                       ╔═════════════╬═════════════════════╗                              │
                       ║             ║                     ║                              │
            ▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅   ▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅    ▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅                       │
            █              █   █              █    █              █                       │-- Certificate Authority (CA)
            █ Intermediate █   █ Intermediate █    █ Intermediate █                       │
            █      A       █   █      B       █    █      C       █                       │
            █▅▅▅▅▅▅▅▅▅▅▅▅▅▅█   █▅▅▅▅▅▅▅▅▅▅▅▅▅▅█    █▅▅▅▅▅▅▅▅▅▅▅▅▅▅█                       │
              │         │                                  ║                              │
  ┌───────────▼──┐   ┌──▼───────────┐               ▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅▅                      │
  │     Leaf     │   │     Leaf     │               █              █                      │
  └──────1───────┘   └──────2───────┘               █ Intermediate █                      │
                                                    █      D       █                      │
                                                    █▅▅▅▅▅▅▅▅▅▅▅▅▅▅█                      ╯
                                                ┌──────────┼──────────────┐
                                                │          │              │
                                       ┌────────▼───┐ ┌────▼───────┐ ┌────▼──────┐
                                       │    Leaf    │ │    Leaf    │ │   Leaf    │
                                       └──────3─────┘ └──────4─────┘ └─────5─────┘

Ainsi :

Les certificats Root, Intermediate A, B, C, et D font tous parties de l'Autorité de Certification. Tous les certificats Leafs en sont exclus.

La chaîne sera stockée dans une PKL, une CPL ou un KDM

Pour des raisons de logistique, vous retrouverez assez souvent cette chaîne de certificat dans une PKL (signée) ou une CPL (signée) ou dans un KDM (toujours signée).

Cette chaîne de certificat se trouvera toujours dans la partie Signature -> KeyInfo : le certificat au format PEM dans la partie X509Certificate et l'identité de son parent (Issuer) dans la partie X509IssuerSerial.

Voici un exemple d'une Signature (certaines parties sont tronquées pour apporter plus de lisibilités) :

<ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
  
  <ds:SignedInfo>
    (...)
  </ds:SignedInfo>
  
  <!-- 
    C'est ici que sont stockés les certificats
    utilisés pour la création du document 
    (PKL, CPL ou KDM)
  -->
  <ds:KeyInfo>
      <ds:X509Data>
        <ds:X509IssuerSerial>
          <ds:X509IssuerName>dnQualifier=\+LLvuYNO4YBJSp9Jjmlv8oippzQ=,CN=.DC.DMS.DC2.SMPTE,OU=DC.DOREMILABS.COM,O=DC2.SMPTE.DOREMILABS.COM</ds:X509IssuerName>
          <ds:X509SerialNumber>39</ds:X509SerialNumber>
        </ds:X509IssuerSerial>
        <ds:X509Certificate>MIIEfzCCA2egAwIBAgIBJzANBgkqhkiG9w0BAQsFADCBgjEh(...)
(...)qfoeTGQ2Vin9a+udU9/jrSFAvHU2lT8neer722G+CzP/zjFD</ds:X509Certificate>
      </ds:X509Data>
      <ds:X509Data>
        <ds:X509IssuerSerial>
          <ds:X509IssuerName>dnQualifier=RQ/53RmuLsbzgfPXGlRYmJruwMs=,CN=.DMS.DC2.SMPTE,OU=DC.DOREMILABS.COM,O=DC2.SMPTE.DOREMILABS.COM</ds:X509IssuerName>
          <ds:X509SerialNumber>2</ds:X509SerialNumber>
        </ds:X509IssuerSerial>
        <ds:X509Certificate>MIIEdjCCA16gAwIBAgIBAjANBgkqhkiG9w0BAQsFADB/MSEw(...)
(...)4zsyE0AGuj2nDstRBWLRy+5SlCByTIKp/PL/</ds:X509Certificate>
      </ds:X509Data>
      <ds:X509Data>
        <ds:X509IssuerSerial>
          <ds:X509IssuerName>dnQualifier=pkCB9j5KrAjndhcBkc3fOdfL/BQ=,CN=.PRODUCTS.DC2.SMPTE,OU=DC.DOREMILABS.COM,O=DC2.SMPTE.DOREMILABS.COM</ds:X509IssuerName>
          <ds:X509SerialNumber>4</ds:X509SerialNumber>
        </ds:X509IssuerSerial>
        <ds:X509Certificate>MIIEdDCCA1ygAwIBAgIBBDANBgkqhkiG9w0BAQsFADCBhDEh(...)
(...)AAVM+A/J+q+14LJqcElnzHkvNTv2Qvp5+g==</ds:X509Certificate>
      </ds:X509Data>
      <ds:X509Data>
        <ds:X509IssuerSerial>
          <ds:X509IssuerName>dnQualifier=a/wUIHLuFW7RKXpNQGmQ966xOv8=,CN=.ROOT.DC2.SMPTE,OU=DC.DOREMILABS.COM,O=DC2.SMPTE.DOREMILABS.COM</ds:X509IssuerName>
          <ds:X509SerialNumber>2</ds:X509SerialNumber>
        </ds:X509IssuerSerial>
        <ds:X509Certificate>MIIEdjCCA16gAwIBAgIBAjANBgkqhkiG9w0BAQsFADCBgDEh(...)
(...)tIY/GaHgNIVKoTRvgq7YXTVnvGqgolL1zwDx</ds:X509Certificate>
      </ds:X509Data>
      <ds:X509Data>
        <ds:X509IssuerSerial>
          <ds:X509IssuerName>dnQualifier=a/wUIHLuFW7RKXpNQGmQ966xOv8=,CN=.ROOT.DC2.SMPTE,OU=DC.DOREMILABS.COM,O=DC2.SMPTE.DOREMILABS.COM</ds:X509IssuerName>
          <ds:X509SerialNumber>1</ds:X509SerialNumber>
        </ds:X509IssuerSerial>
        <ds:X509Certificate>MIIEcjCCA1qgAwIBAgIBATANBgkqhkiG9w0BAQsFADCBgDEh(...)
(...)Bw/YZzykpHYmuzBxLriBb5TYsWziILI=</ds:X509Certificate>
      </ds:X509Data>
  </ds:KeyInfo>
</ds:Signature>

Leurs présences à la fin d'une PKL, d'une CPL ou d'un KDM permettent au destinataire de pouvoir valider de bout en bout la signature des documents, mais attention à l'usurpation de chaîne de certification : rien ne garantit que les différents certificats ajoutés appartiennent au dit-constructeur, il faudra donc vérifier avec la base de certificats du constructeur ou au moins son certificat publique racine.

Usurpation ? un problème de sécurité ?

Mais si on place une chaîne de certification qui n'appartient pas à un constructeur ? que se passe-t-il ?

Effectivement, c'est un point de sécurité que j'avais relevé à la sortie des normes : vu qu'il n'existe aucune centralisation de chaîne de certifications, il est possible pour un attaquant de se faire passer pour une chaîne de certification valide.

Cette absence de centralisation est à la fois positive et négative : positive car tout est décentralisé, les players n'ont pas à se connecter à un serveur central pour vérifier si tel ou tels certificats sont valides. Cela permet également de nouveaux entrants dans le marché des constructeurs et ainsi éviter un monopole. Également, cela évite de devoir mettre continuellement des mises à jour sur les players si les chaînes de certificats changeaient. Pour le côté négatif, si les laboratoires ne font pas attention, des KDM peuvent être chiffrés avec des certificats n'appartenant pas à un constructeur, non valides, voire pirates.

Un exemple, créons une chaîne de certification qui ressemble à la chaîne de certification Doremi : nous allons créer notre propre certificat Root et ses intermédiaires en reprenant quasiment toutes les structures de chaque certificat Doremi. A la fin, nous allons créer un certificat leaf d'un faux player. Toute la chaîne ressemblera à une chaîne de certification Doremi, sauf qu'elle ne le sera pas (aucune signature ne correspondra, aucun dnQualifier, etc..). Si un opérateur de laboratoire regarde rapidement, il n'y verra que du feu, si le laboratoire ne vérifie pas convenablement ce certificat et sa chaîne de certification (via la base de certificats du constructeur), il peut lancer une procédure de création de KDM et ainsi permettre à un attaquant de récupérer les clefs AES sans aucun souci, vu que l'attaquant est le détenteur de la clef privée rattachée à ce faux certificat public.

Il est donc important de vérifier sur les bases de certificats des différents constructeurs :

Doremi / Dolby ftp://ftp.cinema.dolby.com Accès public
Sony https://spesecure.spe.sony.com Accès privé
Christie ftp://certificates.christiedigital.com Accès privé
XDC ftp://ftp.xdcinema.com Accès privé
Qube ftp://certificates.qubecinema.com Accès public
GDC ftp://ftp.gdc-tech.com Accès privé
Barco ftp-ssl://certificates.barco.com Accès privé

Seuls les certificats contenus sur ces sites peuvent être considérés comme valides
(sauf si le site a été piraté et qu'un attaquant a ajouté sa propre chaîne de certification... :)

Liens hiérarchiques entre certificats

Les certificats se tiennent par des liens hiérarchiques par le biais de certains champs stockés dans le certificat : via certains champs du bloc Metadonnées et via certains champs du bloc x509v3 Extensions :

Déjà, nous avons vu qu'un certificat va adresser son parent via le champ Issuer. L'Issuer est le Subject du certificat parent :

      Parent (Intermediate certificate)
     +----------------------------------------------------------------------------------------------------------------------------------------------+
     |    Issuer  : dnQualifier = "RQ/53RmuLsbzgfPXGlRYmJruwMs=", CN=.DMS.DC2.SMPTE, OU=DC.DOREMILABS.COM, O=DC2.SMPTE.DOREMILABS.COM               |
 ╭───|─── Subject : dnQualifier = "+LLvuYNO4YBJSp9Jjmlv8oippzQ=", CN=.DC.DMS.DC2.SMPTE, OU=DC.DOREMILABS.COM, O=DC2.SMPTE.DOREMILABS.COM            |
 │   +----------------------------------------------------------------------------------------------------------------------------------------------+
 │
 │    Parent (Intermediate certificate)
 │   +-------------------------------------------------------------------------------------------------------------------------------------
 ╰───|─── Issuer  : dnQualifier = "+LLvuYNO4YBJSp9Jjmlv8oippzQ=", CN=.DC.DMS.DC2.SMPTE, OU=DC.DOREMILABS.COM, O=DC2.SMPTE.DOREMILABS.COM              |
     |    Subject : dnQualifier = "SQFYSSqWwjefppqasMJmfdmS6lI=", CN=CS.DMSJP2K-80119.DC.DC2.SMPTE, OU=DC.DOREMILABS.COM, O=DC2.SMPTE.DOREMILABS.COM  | 
     +------------------------------------------------------------------------------------------------------------------------------------------------+

Nous avons également un lien hiérarchique dans la partie x509v3 Extensions avec l'Authority Key Identifier. Ainsi les différents champs de l'Authority Key Identifier du certificat enfant font références aux champs Issuer, Subject Key Identifier et SerialNumber du certificat parent :

            Parent (Intermediate certificate)
           +-------------------------------------------------------------------------------------------------------------------------------------
╭──────────|──  Serial Number: 2 (0x2)
╭──────────|──  Issuer  : dnQualifier = "RQ/53RmuLsbzgfPXGlRYmJruwMs=", CN=.DMS.DC2.SMPTE, OU=DC.DOREMILABS.COM, O=DC2.SMPTE.DOREMILABS.COM
│          |    X509v3 Subject Key Identifier :
│    ╔═════|══      F8:B2:EF:B9:83:4E:E1:80:49:4A:9F:49:8E:69:6F:F2:88:A9:A7:34
│    ║     +-------------------------------------------------------------------------------------------------------------------------------------
│    ║
│    ║      Enfant (Leaf Certificate)
│    ║     +-------------------------------------------------------------------------------------------------------------------------------------
│    ║     |    X509v3 Authority Key Identifier :
│    ╚═════|══      keyid   : F8:B2:EF:B9:83:4E:E1:80:49:4A:9F:49:8E:69:6F:F2:88:A9:A7:34
╰──────────|──      DirName : /dnQualifier=RQ/53RmuLsbzgfPXGlRYmJruwMs=/CN=.DMS.DC2.SMPTE/OU=DC.DOREMILABS.COM/O=DC2.SMPTE.DOREMILABS.COM
╰──────────|──      serial:02
           +--------------------------------------------------------------------------------------------------------------------------------------

Le champ Subject Key Identifier et l'attribut dnQualifier sont les empreintes du certificat. Pour plus d'informations, reportez-vous au chapitre Subject Key Identifier ou au chapitre Public Key Thumbprint - dnQualifier

Chaînes de certifications complet

Chaque certificat fait lien avec son prédécesseur jusqu'au certificat racine.

Un exemple avec une chaîne de certificats Doremi avec 3 intermédiaires, un certificat racine et un certificat leaf :


                                     # 1er X509Certificate (encoder)  -  leaf certificate
 ╭---------------------------------- Issuer  : dnQualifier = "+LLvuYNO4YBJSp9Jjmlv8oippzQ=", CN=.DC.DMS.DC2.SMPTE, OU=DC.DOREMILABS.COM, O=DC2.SMPTE.DOREMILABS.COM
 |                                   Subject : dnQualifier = "SQFYSSqWwjefppqasMJmfdmS6lI=", CN=CS.DMSJP2K-80119.DC.DC2.SMPTE, OU=DC.DOREMILABS.COM, O=DC2.SMPTE.DOREMILABS.COM
 |                                   Serial Number: 643 (0x283)
 |                                   ---
 |                                   X509v3 Subject Key Identifier :
 |                                       49:01:58:49:2A:96:C2:37:9F:A6:9A:9A:B0:C2:66:7D:D9:92:EA:52
 |                                   X509v3 Authority Key Identifier :
 |                           ╔══════════ keyid   : F8:B2:EF:B9:83:4E:E1:80:49:4A:9F:49:8E:69:6F:F2:88:A9:A7:34
 |          ╭────────────────║────────── DirName : /dnQualifier=RQ/53RmuLsbzgfPXGlRYmJruwMs=/CN=.DMS.DC2.SMPTE/OU=DC.DOREMILABS.COM/O=DC2.SMPTE.DOREMILABS.COM
 |          │                ║   ╭────── serial:02
 |          │                ║   │
 |          │                ║   │   # 2eme X509Certificate (dc)  -  intermediate certificate
 |  ╭-------╰────────────────║───│── Issuer  : dnQualifier = "RQ/53RmuLsbzgfPXGlRYmJruwMs=", CN=.DMS.DC2.SMPTE, OU=DC.DOREMILABS.COM, O=DC2.SMPTE.DOREMILABS.COM
 ╰--|------------------------║---│-- Subject : dnQualifier = "+LLvuYNO4YBJSp9Jjmlv8oippzQ=", CN=.DC.DMS.DC2.SMPTE, OU=DC.DOREMILABS.COM, O=DC2.SMPTE.DOREMILABS.COM
    |                        ║   ╰── Serial Number: 2 (0x2)
    |                        ║       ---
    |                        ║       X509v3 Subject Key Identifier :
    |                        ╚══════════ F8:B2:EF:B9:83:4E:E1:80:49:4A:9F:49:8E:69:6F:F2:88:A9:A7:34
    |                                X509v3 Authority Key Identifier :
    |                        ╔══════════ keyid   : 45:0F:F9:DD:19:AE:2E:C6:F3:81:F3:D7:1A:54:58:98:9A:EE:C0:CB
    |           ╭────────────║────────── DirName : /dnQualifier=pkCB9j5KrAjndhcBkc3fOdfL/BQ=/CN=.PRODUCTS.DC2.SMPTE/OU=DC.DOREMILABS.COM/O=DC2.SMPTE.DOREMILABS.COM
    |           │            ║   ╭────── serial:04
    |           │            ║   │
    |           │            ║   │   # 3eme X509Certificate (dms)  - intermediate certificate
    |  ╭--------╰────────────║───│── Issuer  : dnQualifier = "pkCB9j5KrAjndhcBkc3fOdfL/BQ=", CN=.PRODUCTS.DC2.SMPTE, OU=DC.DOREMILABS.COM, O=DC2.SMPTE.DOREMILABS.COM
    ╰--|---------------------║---│-- Subject : dnQualifier = "RQ/53RmuLsbzgfPXGlRYmJruwMs=", CN=.DMS.DC2.SMPTE, OU=DC.DOREMILABS.COM, O=DC2.SMPTE.DOREMILABS.COM
       |                     ║   ╰── Serial Number: 4 (0x4)
       |                     ║       ---
       |                     ║       X509v3 Subject Key Identifier :
       |                     ╚══════════ 45:0F:F9:DD:19:AE:2E:C6:F3:81:F3:D7:1A:54:58:98:9A:EE:C0:CB
       |                             X509v3 Authority Key Identifier:
       |                     ╔══════════ keyid   : A6:40:81:F6:3E:4A:AC:08:E7:76:17:01:91:CD:DF:39:D7:CB:FC:14
       |            ╭────────║────────── DirName : /dnQualifier=a/wUIHLuFW7RKXpNQGmQ966xOv8=/CN=.ROOT.DC2.SMPTE/OU=DC.DOREMILABS.COM/O=DC2.SMPTE.DOREMILABS.COM
       |            │        ║   ╭────── serial:02
       |            │        ║   │
       |            │        ║   │   # 4eme X509Certificate (product)  -  intermediate certificate
       |  ╭---------╰────────║───│── Issuer  : dnQualifier = "a/wUIHLuFW7RKXpNQGmQ966xOv8=", CN=.ROOT.DC2.SMPTE, OU=DC.DOREMILABS.COM, O=DC2.SMPTE.DOREMILABS.COM
       ╰--|------------------║---│-- Subject : dnQualifier = "pkCB9j5KrAjndhcBkc3fOdfL/BQ=", CN=.PRODUCTS.DC2.SMPTE, OU=DC.DOREMILABS.COM, O=DC2.SMPTE.DOREMILABS.COM
          |                  ║   ╰── Serial Number: 2 (0x2)
          |                  ║       ---
          |                  ║       X509v3 Subject Key Identifier:
          |                  ╚══════════ A6:40:81:F6:3E:4A:AC:08:E7:76:17:01:91:CD:DF:39:D7:CB:FC:14
          |                          X509v3 Authority Key Identifier:
          |                  ╔══════════ keyid   : 6B:FC:14:20:72:EE:15:6E:D1:29:7A:4D:40:69:90:F7:AE:B1:3A:FF
          |         ╭────────║────────── DirName : /dnQualifier=a/wUIHLuFW7RKXpNQGmQ966xOv8=/CN=.ROOT.DC2.SMPTE/OU=DC.DOREMILABS.COM/O=DC2.SMPTE.DOREMILABS.COM
          |         │        ║   ╭────── serial:01
          |         │        ║   │
          |         │        ║   │   # 5eme X509Certificate (root)  -  root certificate
          |         ╰────────║───│── Issuer  : dnQualifier = "a/wUIHLuFW7RKXpNQGmQ966xOv8=", CN=.ROOT.DC2.SMPTE, OU=DC.DOREMILABS.COM, O=DC2.SMPTE.DOREMILABS.COM
          ╰------------------║---│-- Subject : dnQualifier = "a/wUIHLuFW7RKXpNQGmQ966xOv8=", CN=.ROOT.DC2.SMPTE, OU=DC.DOREMILABS.COM, O=DC2.SMPTE.DOREMILABS.COM
                             ║   ╰── Serial Number: 1 (0x1)
                             ║       ---
                             ║       X509v3 Subject Key Identifier:
                             ╚══════════ 6B:FC:14:20:72:EE:15:6E:D1:29:7A:4D:40:69:90:F7:AE:B1:3A:FF
                                     X509v3 Authority Key Identifier:
                                         keyid   : 6B:FC:14:20:72:EE:15:6E:D1:29:7A:4D:40:69:90:F7:AE:B1:3A:FF
                                         DirName : /dnQualifier=a/wUIHLuFW7RKXpNQGmQ966xOv8=/CN=.ROOT.DC2.SMPTE/OU=DC.DOREMILABS.COM/O=DC2.SMPTE.DOREMILABS.COM
                                         serial:01

Qui est le père du certificat racine ?

Si vous avez remarqué, le certificat racine s'auto-adresse. Il est lui-même son propre père, son Subject et son Issuer seront les mêmes :

╭────────────── Issuer  : dnQualifier = "a/wUIHLuFW7RKXpNQGmQ966xOv8=", CN=.ROOT.DC2.SMPTE, OU=DC.DOREMILABS.COM, O=DC2.SMPTE.DOREMILABS.COM
╭────────────── Subject : dnQualifier = "a/wUIHLuFW7RKXpNQGmQ966xOv8=", CN=.ROOT.DC2.SMPTE, OU=DC.DOREMILABS.COM, O=DC2.SMPTE.DOREMILABS.COM
│               (...)
│               X509v3 Subject Key Identifier:
│        ╔═════════ 6B:FC:14:20:72:EE:15:6E:D1:29:7A:4D:40:69:90:F7:AE:B1:3A:FF      X509v3 Authority Key Identifier:
│        ╚═════════ keyid   : 6B:FC:14:20:72:EE:15:6E:D1:29:7A:4D:40:69:90:F7:AE:B1:3A:FF
╰────────────────── DirName : /dnQualifier=a/wUIHLuFW7RKXpNQGmQ966xOv8=/CN=.ROOT.DC2.SMPTE/OU=DC.DOREMILABS.COM/O=DC2.SMPTE.DOREMILABS.COM

On appelle cela un certificat self-signed et la norme oblige à finaliser la chaîne de certificat avec un certificat self-signed : A complete certificate chain (..) ends with a self-signed (CA root) certificate. et A CA Root certificate that is not self-signed shall be cause to fail this test. -- CTP


Chapitres annexes