Introduction de AD CS certificat transparence

S’applique à : Windows Server 2016

Vue d’ensemble


Certificat de transparence (CT) est une nouvelle norme Internet qui résout le problème sur répudiation de certificat et les certificats délivrés mal en rendant l’écosystème de sécurité TLS (Transport Layer) publiquement contrôlable. Sans CT, il n’existe aucun moyen en tant que propriétaire d’un domaine à être conscient des certificats qui sont émis à votre domaine, sauf si vous vous a demandé. À l’aide de CTs, il est facile à réaliser la qualité des certificats que l’autorité de certification (CA) émis et déterminer si elles répondent aux normes qui sont appliquées par l’autorité de certification et le navigateur Forum (Forum de CAB).

CT requiert que tous les certificats TLS qui sont émis par une autorité de certification publique sont connectés à un serveur de journaux accessibles au public. Pour vous assurer que tous les certificats sont enregistrés, les navigateurs web qui prennent en charge les CT * vérifie que chaque certificat a une correspondante signé certificat Timestamp (SCT) qui lui est associé. Ces SCTs sont utilisés comme preuve qu’un certificat est contenu dans un journal. Échec de présenter la SCT pendant la négociation TLS renvoie un message d’avertissement à l’utilisateur.

* Google a annoncé le 6 février 2018, que transparence de certificat sera appliquée par son début de navigateur Chrome sur le 30 avril 2018.

Flux d’appels de validation de certificat de transparence


Le processus de création et de validation des certificats est mis à jour comme suit.

  1. L’opérateur de serveur achète un certificat de l’autorité de certification.
  2. L’autorité de certification valide de l’opérateur de serveur à l’aide de la Validation de domaine (DV), Validation d’organisation (OV) ou EV (Extended Validation).
  3. L’autorité de certification crée un precertificate. [Nouveau]
  4. L’autorité de certification (ou Client) se connecte à la precertificate à un serveur de journal CT. Le serveur de journal renvoie un certificat signé d’horodatage (SCT). [Nouveau]
  5. L’autorité de certification émet un certificat Secure Sockets Layer (SSL).

SSL un certificat inclut généralement SCT. Toutefois, le certificat n’est pas requis pour inclure la SCT.  Lorsque vous utilisez un navigateur pour accéder à un serveur via une connexion TLS, les événements suivants se produisent :

  1. Le navigateur valide le certificat SSL pendant la négociation TLS.
  2. Le navigateur valide la SCT fourni lors de la négociation TLS, soit par le biais d’agrafage OCSP (actuellement uniquement prises en charge par IIS), via une extension TLS, ou (plus probablement) à partir des informations qui sont incorporées dans le certificat.
  3. Le navigateur valide la SCT a été émise par un serveur de journal qui est répertorié dans sa liste de serveurs approuvés de journal en mémoire. [Nouveau]
  4. Le navigateur établit une connexion au serveur.
  5. Le certificat SSL crypte toutes les données entre le navigateur et le serveur.

    Organigramme du processus

L’activation de transparence de certificat dans les services AD CS


Pour activer la transparence du certificat sur une autorité de certification dans le domaine des Services de certificats Active Directory (AD CS), mettez-le sous tension à l’aide de clés de Registre suivantes :

  1. Créer une valeur de Registre qui est nommée CertificateTransparencyFlagset tapez REG_DWORD sousHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\CertSvc\Configuration\<CA Name>.
  2. Activer le 0 x 1 bit sur la CertificateTransparencyFlags (valeur 0 x 1). Par défaut, cette fonctionnalité est désactivée.

Effacement du 0 x 1 bit sur la CertificateTransparencyFlags (valeur 0 x 0) désactive la fonctionnalité. Les nouvelles demandes de CT seront rejetées et les demandes de sauts intermédiaire ne seront pas délivrés.

Ajoutées à des services AD CS pour prendre en charge la transparence du certificat


Les applications qui appellent des services AD CS pour créer des certificats doivent être modifiées pour prendre en charge les éléments suivants pour les mises à jour de « Precertificate » appel :

  1. Pour opter pour la transparence de certificat par demande, appelez ICertRequest::soumettre et définir l’indicateur CR_IN_CERTIFICATETRANSPARENCY .
  2. Après réception de la precertificate , le service d’appel doit ajouter le precertificate retourné à un Référentiel de journaux CT public.
  3. Lorsqu’un precertificate est ajouté à un journal CT, un SCTList est retourné.
  4. Pour terminer la demande et émettre le certificat, appelez ICertRequest::soumettre et définir l’indicateur CR_IN_SIGNEDCERTIFICATETIMESTAMPLIST .

    Suivez ces instructions :
     
    • Cet provenant d’appels antérieurs doit être combiné en une liste agrégée (selon la RFC).
    • Par défaut, une autorité de certification applique une taille maximale de SCTList de 1 k Un SCTList standard doit être d’environ 100 octets. Définissez le Registre REG_DWORD MaxSCTListSize à personnaliser.
    • SCTList sera validée pour la syntaxe et la sémantique de base (les valeurs attendues sont définis).
    • Avant d’être émis, le certificat X.509 est à nouveau comparé à la precertificate d’origine (dans la colonne RawPrecertificate ) pour l’empêcher de devenir non valide. Pour plus d’informations, consultez RFC 6962 Section 3.2.
    graphique de 4093260_client-CA

Les personnalisations suivantes sont prises en charge par l’implémentation des services AD CS de transparence de certificat sousHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\CertSvc\Configuration\<CA Name>.

  1. Définissez la MaxSCTListSize (REG_DWORD) pour personnaliser le maximum accepté de SCTList, en octets. La valeur par défaut est 1024 octets.
  2. Définissez la CTInformationExtensionOid (REG_SZ) pour personnaliser l’OID dans le certificat délivré qui contient des données binaires qui sont renvoyées à l’autorité de certification dans le deuxième tronçon. (Cela peut être le SCTList CT v1 ou le TransItemList si CT v2, ou tout autre élément.)
  3. Définir le 0 x 2 bits sur le CertificateTransparencyFlags REG_DWORD pour désactiver la validation des données binaires qui a renvoyé à l’autorité de certification dans le deuxième tronçon. (Utilisez cela si vous souhaitez utiliser un TransItemList ou autres données binaires personnalisées.) Dans le cas contraire, l’autorité de certification effectue la validation de la syntaxe base CT v1 SCTList.