NOPE LinkedIn

Catégories:
SSL

Introduction à la PKI avec OpenSSL

Fonctionnement d’une PKI (Infrastructure à Clé Publique)

Une Infrastructure à Clé Publique (PKI) est un système qui permet de gérer de manière sécurisée les certificats numériques utilisés dans les communications chiffrées sur un réseau. Les certificats numériques sont des fichiers électroniques qui associent une clé publique à une entité spécifique (par exemple, un serveur ou un client). La PKI garantit l’authenticité, l’intégrité et la confidentialité des échanges en utilisant des clés publiques et privées.

Installation de l’Autorité de Certification (CA) racine et intermédiaires

L’autorité de certification racine (Root CA) est la clé principale de confiance au sommet de la PKI. L’autorité de certification intermédiaire (Intermediate CA) est une étape supplémentaire entre la racine et les certificats émis pour les entités. Voici les étapes pour installer la PKI avec une autorité de certification racine et intermédiaires :

  1. Génération des clés privées et des demandes de certificat pour la Root CA et l’Intermediate CA :

    # Générer une clé privée pour la Root CA
    openssl genpkey -algorithm RSA -out root_ca.key
    
    # Générer la demande de certificat pour la Root CA
    openssl req -new -key root_ca.key -out root_ca.csr
    
    # Générer une clé privée pour l'Intermediate CA
    openssl genpkey -algorithm RSA -out intermediate_ca.key
    
    # Générer la demande de certificat pour l'Intermediate CA
    openssl req -new -key intermediate_ca.key -out intermediate_ca.csr
    
  2. Auto-signer le certificat de la Root CA :

    # Auto-signer la demande de certificat de la Root CA
    openssl x509 -req -days 3650 -in root_ca.csr -signkey root_ca.key -out root_ca.crt
    
  3. Signer le certificat de l’Intermediate CA avec la clé privée de la Root CA :

    # Signer la demande de certificat de l'Intermediate CA avec la clé privée de la Root CA
    openssl x509 -req -days 3650 -in intermediate_ca.csr -CA root_ca.crt -CAkey root_ca.key -CAcreateserial -out intermediate_ca.crt
    

Génération d’une clé pour un serveur

Pour générer une paire de clés pour un serveur et obtenir un certificat signé par l’Intermediate CA :

# Générer une clé privée pour le serveur
openssl genpkey -algorithm RSA -out server.key

# Générer la demande de certificat pour le serveur (remplacez "example.com" par le nom de domaine du serveur)
openssl req -new -key server.key -out server.csr -subj "/CN=example.com"

# Signer la demande de certificat du serveur avec la clé privée de l'Intermediate CA pour obtenir le certificat du serveur
openssl x509 -req -days 1825 -in server.csr -CA intermediate_ca.crt -CAkey intermediate_ca.key -CAcreateserial -out server.crt

Génération d’une clé pour un client

Pour générer une paire de clés pour un client et obtenir un certificat signé par l’Intermediate CA :

# Générer une clé privée pour le client
openssl genpkey -algorithm RSA -out client.key

# Générer la demande de certificat pour le client (remplacez "Client Name" par le nom du client)
openssl req -new -key client.key -out client.csr -subj "/CN=Client Name"

# Signer la demande de certificat du client avec la clé privée de l'Intermediate CA pour obtenir le certificat du client
openssl x509 -req -days 730 -in client.csr -CA intermediate_ca.crt -CAkey intermediate_ca.key -CAcreateserial -out client.crt

Révocation des clés

La révocation des clés est une étape importante pour maintenir la sécurité de la PKI. Si une clé privée est compromise ou si un certificat n’est plus valide, il est essentiel de révoquer le certificat associé. Voici comment révoquer une clé :

Révocation d’un certificat

Pour révoquer un certificat, nous devons créer une liste de révocation de certificats (CRL) :

# Révoquer le certificat du serveur
openssl ca -config openssl.cnf -revoke server.crt -keyfile intermediate_ca.key -cert intermediate_ca.crt

# Créer une CRL à partir de l'Intermediate CA
openssl ca -config openssl.cnf -gencrl -keyfile intermediate_ca.key -cert intermediate_ca.crt -out intermediate_ca.crl

Bonnes pratiques pour l’utilisation d’une PKI

  1. Sécurité des clés privées : Assurez-vous de stocker les clés privées dans un emplacement sécurisé, accessible uniquement aux personnes autorisées.

  2. Renouvellement régulier des certificats : Les certificats ont une durée de validité limitée. Veillez à renouveler régulièrement les certificats expirés.

  3. Séparation des rôles : Limitez l’accès aux clés privées et aux opérations de signature uniquement aux personnes nécessaires.

  4. Surveillance de la CRL : Assurez-vous que les listes de révocation de certificats (CRL) sont régulièrement mises à jour et surveillées.

  5. Sauvegarde de la PKI : Effectuez des sauvegardes régulières de la PKI pour éviter la perte de clés privées et de données essentielles.

  6. Vérification des certificats : Les clients doivent vérifier l’authenticité des certificats reçus en les comparant aux autorités de certification de confiance.

  7. Utilisation de protocoles sécurisés : Utilisez des protocoles sécurisés tels que HTTPS pour protéger les échanges de clés et de certificats.

En suivant ces bonnes pratiques, vous pouvez garantir la sécurité et l’efficacité de votre PKI, permettant ainsi des communications sécurisées et fiables sur votre réseau.