PKI

Définitions & Concepts

Définitions et Concepts

Cet article est le premier d’une série sur la PKI. Nous aborderons ici, les principes généraux.

Il existe nombre de documents traitant de nombreux aspects du sujet, l’idée ici est de dresser une vue rapide d’ensemble des concepts et de ne pas perdre de vue l’objectif principal : La confiance.

L’infrastructure de Gestion de Clés (IGC)

La PKI (Public Key Infrastructure) ou IGC (Infrastructure de Gestion de clé) est l’ensemble de moyens (techniques et Organisationnels) permettant d’établir une forte garantie de confiance dans la validité d’une identité numérique. Ceci est rendu possible par l’utilisation de clés et de certificats d’une part, et surtout d’une organisation garantissant la délivrance et la gestion de ces éléments d’autre part.

Cette confiance se traduit dans la capacité à garantir quatre qualités :

  • la confidentialité : seul le destinataire (ou le possesseur) légitime d’un bloc de données ou d’un message pourra en avoir une vision intelligible ;
  • l’authentification : lors de l’envoi d’un bloc de données ou d’un message ou lors de la connexion à un système, on connaît sûrement l’identité de l’émetteur ou l’identité de l’utilisateur qui s’est connecté ;
  • l’intégrité : nous avons la garantie qu’un bloc de données ou un message expédié n’a pas été altéré, accidentellement ou intentionnellement ;
  • non-répudiation : l’auteur d’un bloc de données ou d’un message ne peut pas renier son œuvre.

La confiance dans les différents composants utilisés est la base de la sécurité. Si la confiance dans un élément est compromise, toute l’infrastructure l’est.

Cela est vrai tant pour les composants matériels et logiciels que pour les processus organisationnels ou les ressources humaines.

Cette confiance est établie par l’utilisation :

  • de techniques cryptographiques robustes;
  • de procédures claires de délivrance et de gestion des identités numériques.

Son implémentation est nécessaire dans les cas suivants :

  • Accès VPN;
  • Authentification forte aux applications;
  • Smart Card Logon;
  • Chiffrement de disque dur;
  • Signature et chiffrement de données.

Les clés

Les clés vont être le moyen utilisé pour protéger le contenu de messages échangés entre les personnes ou les systèmes.

L’IGC s’appuie sur un mécanisme utilisant des clés asymétriques pour permettre aux utilisateurs de s’authentifier, signer ou chiffrer des documents.

Ce mécanisme utilise une paire de clé (appelé aussi bi-clés) basée sur les principes suivants :

  • Les deux clés sont liées l’une à l’autre ;
  • Une clé est privée, l’autre est rendue publique ;
  • La clé privée ne peut être trouvée à partir de la clé publique ;
  • Ce qui est fait par l’une ne peut être défait que par l’autre.

Les clés privées s’utilisent pour :

  • Signer des documents ;
  • S’authentifier ;
  • Déchiffrer un message chiffré avec la clé publique correspondante.

Les clés publiques s’utilisent pour :

  • Protéger ses données ;
  • Vérifier l’identité d’un tiers ;
  • Chiffrer des documents à l’intention d’un tiers.

L’utilisation de ces clés nécessite clairement la confiance dans la correspondance d’une clé et d’une identité ainsi que dans la sécurité du stockage des clés publiques. Le garant de l’identité est l’organisation de confiance.

Le chiffrement

Le chiffrement est une opération qui consiste à transformer un contenu intelligible en un contenu qui ne l’est pas sauf pour celui qui possède la clé.

Les algorithmes de chiffrement ont évolué au fil du temps, les plus utilisés aujourd’hui sont AES et 3DES. La complexité des clés quand  à elle, ne cesse d’augmenter proportionnellement aux puissances de calculs utilisées pour les forcer.

Les certificats

Une organisation de confiance certifie les identités (c’est à dire qu’elle garantit la correspondance entre les clés et les identités).

L’information certifiée est transportée dans un certificat électronique qui est lui-même délivré et signé par cette organisation.

C’est bien la combinaison de clé et de l’organisation qui est la source d’un certificat électronique de confiance.

Un certificat est un lien de confiance entre :

  • Une identité;
  • Une clé publique;
  • Une période de validité;
  • Un usage.

Le certificat numérique est généralement basé sur un standard (beaucoup de solutions utilisent X.509).

La solution open-trust PKI 4.7, par exemple, utilise aujourd’hui les certificats X.509 v3.

Il comporte un certain nombre de champs (non-exhaustif) :

  • Certificate signature Value : Valeur de signature du certificat;
  • Certificate signature algorithm : algorithme et niveau de chiffrement utilisé;
  • Version : Version du certificat;
  • Serial Number : Numéro de série dans l’AC;
  • Issuer : AC validante;
  • Validity : durée de validité;
  • Subject : Distinguished Name (DN), champ servant généralement à nommer le certificat. Il est donc important de bien choisir son DN:
    • Il doit être lisible par l’homme avec quelques restrictions des bonnes pratiques (pas d’email, pas de rôle);
    • L’identifiant unique interne d’un certificat et (Issuer + Serial Number + version), mais est peu lisible. Dans l’organisation c’est le DN qui remplit ce rôle.
  • Subject Public Key : clé public;
  • Subject Public Key algorithm : algorithme et niveau de chiffrement utilisé;
  • Extensions : information critique et non critique sur le nombre d’AC, sur les points de distribution et :
    • Certificates Key Usage : Authentification, chiffrement, signature, CRL, etc;
    • Certificate Extended Key Usage : Horodatage, OCSP, EFS, etc.

La RFC conseille d’utiliser des key-usage critiques et des Extended key-usages non critiques.

Attention, beaucoup applications n’exploitent pas les informations des certificats comme la criticité ou la limitation des usages pour se contenter de la présence ou de la simple validité du certificat.

Les composants

L’infrastructure de gestion de clé se découpe généralement en quatre parties :

  • Autorité de certification (AC) : en charge de la signature des demandes de certificats (CSR) et des listes de révocations (CRL);
  • Autorité d’enregistrement (AE) : en charge de la vérification et de la délivrance des identités;
  • Autorité de dépôt : stockage des certificats et des listes de révocation;
  • Sujet : utilisateur ou système, sujet de l’identité appelé aussi entité terminale (EE).

Auxquelles peuvent s’ajouter d’autres éléments :

  • Autorité de séquestre : stockage centralisé des clés de chiffrement à des fins de recouvrement;
  • Certaines solutions offrent des éléments supplémentaires :

Une entité d’enrôlement : Comptoir pour faire les demandes (spécificité Open-Trust).

L’infrastructure de gestion de clé est une structure hiérarchique pyramidale :

  • Au sommet une AC “Racine” : qui est la base de la confiance;
  • des AC intermédiaires:
    • Elles sont certifiées par l’AC racine;
    • Elle peuvent délivrer des certifications a d’autres AC intermédiaires ou opérationnelles.
  • Des AC opérationnelles:
    • Elles sont certifiées par l’AC racine ou par une AC intermédiaire;
    • Elles peuvent délivrer des certification aux entités terminales.

Les protocoles

Les PKCS (Public Key Cryptographic Standards) sont les protocoles standards de sécurité permettant l’échange des informations au sein d’une iGC:

  • #1Cryptographie Standard;
  • #3Hellman clef Agreement Standard;
  • #6Certificate Syntax Standard
  • #7Message Syntax Standard;
  • #8ée-clef Information Syntax Standard;
  • #10Request Syntax Standard;
  • #11Token Interface Standard;
  • #12Information Exchange Syntax Standard;
  • #15Token Information Format Standard.

Les plus couramment utilisés sont PKCS10, PKCS11, PKCS12 aussi appelés enveloppes P10 ou P12.

Délivrance Centralisée VS Décentralisée

Les certificats d’authentification et de signature sont normalement générés de façon décentralisée.

Contrairement aux certificats de chiffrement qui sont générés de manière centralisée afin de pouvoir être sequestrés pour des raisons juridiques et de recouvrement.

Un P12 permet la transmission et le stockage des certificats et des clés de chiffrement.

Les demandes de certificats (CSR) utilisent une enveloppe P10.

PKCS11 est utilisé dans les échanges avec les cartes à puces, Microsoft CAPI le remplace dans certains cas.

Les procédures

Les procédures doivent définir le contrat de confiance au sein de l’organisation.

Il faut définir les prérequis nécessaires à la gestion, protection et la distribution des données sensibles qui serviront de base à la mise en place de l’infrastructure.

Les procédures doivent être extrêmement claires au niveau de l’autorité d’enregistrement et pour les opérateurs.

Cette autorité à un rôle clé, car elle assure la validité des identités. Les règles de vérification et de délivrance doivent être parfaitement suivies.

L’organisation pourrait être tenue pour responsable si l’AE approuvait une demande frauduleuse.

Les procédures IGC et les obligations sont documentées dans :

  • La politique de certification (PC) : Règles publiques (Pourquoi ?);
  • La déclaration des politiques de certification (DPC) : Protocole privé (Comment ?).

Standards:

  • RFC 3647 : Certificate Policy and Certification Practices Framework;
  • en France, Règlement Général de Sécurité (RGS) /PRIS V2.

Chaque version de PC doit-être identifiée par un OID (Object Identifier unique).

Cet OID peut être référencé dans les certificats.

Conclusion

L’organisation et les procédures sont les éléments les plus importants, l’infrastructure et les éléments techniques en sont l’extension. Les lacunes au niveau des procédures ont bien souvent des conséquences beaucoup plus lourdes que celles engendrées par les contraintes techniques.

Philippe LEGRIS

Consultant Senior Sécurité

PKI

Définitions & Concepts

Définitions et Concepts

Cet article est le premier d’une série sur la PKI. Nous aborderons ici, les principes généraux.

Il existe nombre de documents traitant de nombreux aspects du sujet, l’idée ici est de dresser une vue rapide d’ensemble des concepts et de ne pas perdre de vue l’objectif principal : La confiance.

L’infrastructure de Gestion de Clés (IGC)

La PKI (Public Key Infrastructure) ou IGC (Infrastructure de Gestion de clé) est l’ensemble de moyens (techniques et Organisationnels) permettant d’établir une forte garantie de confiance dans la validité d’une identité numérique. Ceci est rendu possible par l’utilisation de clés et de certificats d’une part, et surtout d’une organisation garantissant la délivrance et la gestion de ces éléments d’autre part.

Cette confiance se traduit dans la capacité à garantir quatre qualités :

  • la confidentialité : seul le destinataire (ou le possesseur) légitime d’un bloc de données ou d’un message pourra en avoir une vision intelligible ;
  • l’authentification : lors de l’envoi d’un bloc de données ou d’un message ou lors de la connexion à un système, on connaît sûrement l’identité de l’émetteur ou l’identité de l’utilisateur qui s’est connecté ;
  • l’intégrité : nous avons la garantie qu’un bloc de données ou un message expédié n’a pas été altéré, accidentellement ou intentionnellement ;
  • non-répudiation : l’auteur d’un bloc de données ou d’un message ne peut pas renier son œuvre.

La confiance dans les différents composants utilisés est la base de la sécurité. Si la confiance dans un élément est compromise, toute l’infrastructure l’est.

Cela est vrai tant pour les composants matériels et logiciel que pour les processus organisationnels ou les ressources humaines.

Cette confiance est établie par l’utilisation :

  • de techniques cryptographiques robustes;
  • de procédures claires de délivrance et de gestion des identités numériques.

Son implémentation est nécessaire dans les cas suivants :

  • Accès VPN;
  • Authentification forte aux applications;
  • Smart Card Logon;
  • Chiffrement de disque dur;
  • Signature et chiffrement de données.

Les clés

Les clés vont être le moyen utilisé pour protéger le contenu de messages échangés entre les personnes ou les systèmes.

L’IGC s’appuie sur un mécanisme utilisant des clés asymétriques pour permettre aux utilisateurs de s’authentifier, signer ou chiffrer des documents.

Ce mécanisme utilise une paire de clé (appelé aussi bi-clé) basée sur les principes suivants :

  • Les deux clés sont liées l’une à l’autre ;
  • Une clé est privée, l’autre est rendue publique ;
  • La clé privée ne peut être trouvée à partir de la clé publique ;
  • Ce qui est fait par l’une ne peut être défait que par l’autre.

Les clés privées s’utilisent pour :

  • Signer des documents ;
  • S’authentifier ;
  • Déchiffrer un message chiffré avec la clé publique correspondante.

Les clés publiques s’utilisent pour :

  • Protéger ses données ;
  • Vérifier l’identité d’un tiers ;
  • Chiffrer des documents à l’intention d’un tiers.

L’utilisation de ces clés, nécessite clairement la confiance dans la correspondance d’une clé et d’une identité ainsi que dans la sécurité du stockage des clés publiques. Le garant de l’identité est l’organisation de confiance.

Le chiffrement

Le chiffrement est une opération qui consiste à transformé un contenu intelligible en un contenu qui ne l’est pas sauf pour celui qui possède la clé.

Les algorithmes de chiffrement ont évolués au fil du temps, les plus utilisés aujourd’hui sont AES et 3DES. La complexité des clés quand a, ne cesse d’augmenter proportionnellement aux puissances de calculs utilisées pour les forcer.

Les certificats

Une organisation de confiance certifie les identités (c’est à dire qu’elle garantit la correspondance entre les clés et les identités).

L’information certifiée est transportée dans un certificat électronique qui est lui-même délivré et signé par cette organisation.

C’est bien la combinaison de clé et de l’organisation qui est la source d’un certificat électronique de confiance.

Un certificat est un lien de confiance entre :

  • Une identité;
  • Une clé publique;
  • Une période de validité;
  • Un usage.

Le certificat numérique est généralement basé sur un standard (beaucoup de solutions utilisent X.509).

La solution open-trust PKI 4.7, par exemple, utilise aujourd’hui les certificats X.509 v3.

Il comporte un certain nombre de champs (non-exhaustif) :

  • Certificate signature Value : Valeur de signature du certificat;
  • Certificate signature algorithm : algorithme et niveau de chiffrement utilisé;
  • Version : Version du certificat;
  • Serial Number : Numéro de série dans l’AC;
  • Issuer : AC validante;
  • Validity : durée de validité;
  • Subject : Distinguished Name (DN), champ servant généralement à nommer le certificat. Il est donc important de bien choisir son DN:
    • Il doit être lisible par l’homme avec quelques restrictions des bonnes pratiques (pas d’email, pas de rôle);
    • L’identifiant unique interne d’un certificat et (Issuer + Serial Number + version), mais est peu lisible. Dans l’organisation c’est le DN qui remplit ce rôle.
  • Subject Public Key : clé public;
  • Subject Public Key algorithm : algorithme et niveau de chiffrement utilisé;
  • Extensions : informations critique et non critique sur le nombre d’AC, sur les points de distribution et :
    • Certificates Key Usage : Authentification, chiffrement, signature, CRL, etc;
    • Certificate Extended Key Usage : Horodatage, OCSP, EFS, etc.

La RFC conseille d’utilisé des key-usage critiques et des Extended key-usages non critiques.

Attention, beaucoup applications n’exploitent pas les informations des certificats comme la criticité ou la limitation des usages pour se contenter de la présence ou de la simple validité du certificat.

Les composants

L’infrastructure de gestion de clé se découpe généralement en quatre parties :

  • Autorité de certification (AC) : en charge de la signature des demandes de certificats (CSR) et des listes de révocations (CRL);
  • Autorité d’enregistrement (AE) : en charge de la vérification et de la délivrance des identités;
  • Autorité de dépôt : stockage des certificats et des listes de révocations;
  • Sujet : utilisateur ou système, sujet de l’identité appelé aussi entité terminale (EE).

Auquel peuvent s’ajouter d’autres éléments :

  • Autorité de séquestre : stockage centralisé des clés de chiffrement à des fins de recouvrement;
  • Certaines solutions offres des éléments supplémentaires :

Une entité d’enrôlement (EE): Comptoir pour faire les demandes (spécificité Open-Trust).

L’infrastructure de gestion de clé est une structure hiérarchique pyramidale :

  • Au sommet une AC “Racine” : qui est la base de la confiance;
  • des AC intermédiaires:
    • Elles sont certifiées par l’AC racine;
    • Elle peuvent délivrer des certification a d’autres AC intermédiares ou opérationnelle.
  • Des AC opérationnelles:
    • Elles sont certifiées par l’AC racine ou par une AC intermédiaire;
    • Elles peuvent délivrer des certification aux entités terminales.

Les protocoles

Les PKCS (Public Key Cryptographic Standards) sont les protocoles standards de sécurité permettant l’échange des informations au sein d’une iGC:

  • #1Cryptographie Standard;
  • #3Hellman clef Agreement Standard;
  • #6Certificate Syntax Standard#7Message Syntax Standard;
  • #8ée-clef Information Syntax Standard;
  • #10Request Syntax Standard;
  • #11Token Interface Standard;
  • #12Information Exchange Syntax Standard;
  • #15Token Information Format Standard.

Les plus couramment utilisés sont PKCS10, PKCS11, PKCS12 aussi appelés enveloppes P10 ou P12.

Délivrance Centralisé VS Décentralisé

Les certificats d’authentification et de signature sont normalement générés de façon décentralisée.

Contrairement aux certificats de chiffrement qui sont générés de manière centralisé afin de pouvoir être sequestrés pour des raisons juridiques et de recouvrement.

Un P12 permettent la transmission et le stockage des certificats et des clés de chiffrements.

Les demandes de certificats (CSR) utilisent une enveloppe P10.

PKCS11 est utilisé dans les échanges avec les cartes à puces, Microsoft CAPI le remplace dans certains cas.

Les procédures

Les procédures doivent définir le contrat de confiance au sein de l’organisation.

Il faut définir les prérequis nécessaires à la gestion, protection et la distribution des données sensibles qui serviront de base à la mise en place de l’infrastructure.

Les procédures doivent être extrêmement claires au niveau de l’autorité d’enregistrement et pour les opérateurs.

Cette autorité à un rôle clé, car elle assure la validité des identités. Les règles de vérification et de délivrance doivent être parfaitement suivies.

L’organisation pourrait être tenue pour responsable si l’AE approuvait une demande frauduleuse.

Les procédures IGC et les obligations sont documentés dans :

  • La politique de certification (PC) : Règles publiques (Pourquoi ?);
  • La déclaration des politiques de certification (DPC) : Protocole privé (Comment ?).

Standards:

  • RFC 3647 : Certificate Policy and Certification Practices Framework;
  • en France, Règlement Général de Sécurité (RGS) /PRIS V2.

Chaque version de PC doit-être identifiée par un OID (Object Identifier unique).

Cet OID peut être référencé dans les certificats.

Conclusion

L’organisation et les procédures sont les éléments les plus importants, l’infrastructure et les éléments techniques en sont l’extension. Les lacunes au niveau des procédures ont bien souvent des conséquences beaucoup plus lourdes que celles engendrés par les contraintes techniques.

Philippe LEGRIS

Consultant Senior Sécurité