Gérer une PKI avec sa propre autorité de certification (CA)

Dans cette suite d’article nous allons mettre en place une PKI complète et gérer sa propre autorité de certification.

Au sommaire:

  • Création d’un root CA sous OpenSSL
  • Création d’un certificat CA intermédiaire
  • Création d’un certificat client
  • Révocation de certificat
  • Mise en place d’une page web HTTPS sous Apache
  • Authentification client via certificat sous Apache
  • HTTPS signé gratuitement par un CA publique

Les logiciels, comme les navigateurs Web ou les clients de messagerie détiennent des certificats racines de nombreuses autorités de certification commerciales ou gouvernementales dites CA de confiance. Quand un navigateur ouvre une connexion sécurisée (TLS/SSL) vers un site possédant un certificat émis par une autorité connue, il considère le site comme sûr dans la mesure où le chemin de certification est validé. Le passage en mode sécurisé est alors transparent.

Ce type de certificat est bien sur payant. Vous avez la possibilité d’obtenir un certificat gratuit chez StartSSL pour un seul et unique domaine.

Il n’est pas forcement nécessaire de faire signer par un autorité publique ces certificats. Pour une utilisation personnel, par exemple votre Owncloud sur votre NAS, un VPN ou boite mail, vous pouvez utiliser votre propre certificat reconnue que par lui même que l’on appel auto-signé.

Gérer sa propre autorité de certification implique la manipulation de données cryptographique comme des clé privées et certificats qui doivent absolument être protégé. L’environnement sur lequel ces données vont être générées et stockées doit donc être sécurisé. Je vous conseil l’utilisation d’une VM dédiée par exemple. Ces articles sont écris depuis une machine Ubuntu mais l’ensemble des commandes sont fonctionnelles sur toutes les distributions.

Introduction

De nos jours, il est demandé à un code secret de protéger trois choses : la confidentialité, l’authenticité, la non-répudiation et enfin l’intégrité.

1. Confidentialité

Consiste à mettre à l’abris des regards. Seules les personnes autorisées doivent pouvoir accéder aux informations ainsi protégées.

Le chiffrement de l’information permet de résoudre le problème de la confidentialité: une personne souhaitant transmettre un messages lui applique au préalable une fonction dite de chiffrement, et transmet le résultat au destinataire. Ce dernier retrouve le message original en utilisant une fonction de déchiffrement.

2. Intégrité

L’intégrité est le contrôle du contenu : on veut pouvoir détecter toute modification, accidentelle ou intentionnelle, des données sauvegardées ou transmises.

L’intégrité est la garantie que le message n’a pas été modifié par un tiers.

3. Authenticité

La notion d’authenticité s’applique à la fois aux personnes, on parle dans ce cas d’identification, et aux documents, ce qui correspond à l’authentification.

L’identification consiste  pour un individu à prouver qu’il peut avoir accés à l’information secrète.

L’authentification d’un document permet de prouver son caractère authentique, c’est à dire son lien avec une entité précise. On garantit ainsi l’origine de l’information contenue dans le document.

4. Non répudiation

Garantit à quiconque que l’auteur d’un bloc de données ou d’un message ne peut renier son œuvre, c’est-à-dire prétendre ne pas en être l’auteur.

Le chiffrement à clé publique

Le chiffrement asymétrique, connu aussi sou le nom de cryptographie à clé publique ou Public Key Infrastructure (PKI), est généralement implémenté pour l’authentification. Une clé privée est utilisé par la partie émettrice pour signer les données. La partie qui reçoit a un accès à la clé publique qui correspond à la clé privé de la partie émettrice et utilise cette clé pour déchiffrer la signature et par le même vérifier que les données reçu provienne bien de la partie émettrice.

Le certificat publique contient quand à lui la clé publique permettant de chiffrer les données de façon à les faire transiter jusqu’au serveur qui pourra les lire grâce à sa clé privé.

 

Les librairies cryptographique

La cryptographie asymétrique est généralement implémenté au travers du standard X.509 pour les PKI. Les applications qui ont un besoin de sécurisation par PKI utilisent une librairie cryptographique qui implémente ce standard plutôt que de développer leurs propre librairie et réinventer la roue. Chaque librairie fournit une API permettant d’effectuer les actions cryptographiques et algorithmique nécessaire à la place du programme.

Sur Linux il existe 3 principales librairies:

  • OpenSSL.
  • GnuTLS
  • NSS (Network Security Services)

 

 

2 thoughts on “Gérer une PKI avec sa propre autorité de certification (CA)”

  1. zargos dit :

    bonjour, c’est normal que ce soit incomplet?

    1. N.i.c.O dit :

      Oui il faudrait que je termine..

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *