FR | EN
Page générée en 0.184 sec
Imprimer

Sécurisation SSL

La mise en place du protocole HTTPS résout un grand nombre de problèmes de sécurité. Cependant, une mauvaise configuration peut avérer son utilisation inutile car non sécurisée.

2.1. Les certificats ssl

Un certificat ssl permet d'établir avec certitude le lien entre la page web et son propriétaire, d'authentifier le serveur et de sécuriser les échanges électroniques entre ce serveur et les clients qui s'y connectent. Il permet d'instaurer une confiance avec les clients en garantissant la confidentialité des échanges.

2.1.1. Principe

L'utilisation de la cryptographie à clef publique à grande échelle nécessite de pouvoir gérer des listes importantes de clefs publiques, pour des entités souvent réparties dans un réseau. Pour cela, on a recourt à des infrastructures à clefs publiques (Public Key Infrastructure, PKI). Celle-ci est composée :

  • L'autorité de certification
  • L'autorité d'enregistrement
  • Un système de publication mettant à disposition les certificats

Pour que le système fonctionne, le certificat doit être délivré par une tierce personne de confiance, l'autorité de certification (CA). Cette autorité va permettre d'établir avec certitude l'identité du serveur.

L'autorité d'enregistrement (RA) est chargée de vérifier l'identité du demandeur. Il existe différentes procédures de vérification permettant de délivrer des certificats de classes différentes. Il existe 3 classes de certificats proposées :

  • Classe 1 : Niveau de protection le plus faible, n'assure aucune vérification d'identité. Seule l'adresse email du demandeur est vérifiée. Il est conseillé de n'utiliser ces certificats uniquement pour des démonstrations.
  • Classe 2 : Niveau de protection raisonnable, les informations contenues dans le certificat sont vérifiées avec une copie de la carte d'identité signée du demandeur.
  • Classe 3 : Niveau de protection le plus élevé, des vérifications plus importantes sur l'identité du demandeur sont faites. Des preuves matérielles sont demandées par courriers, rencontres. Ces certificats sont utilisables pour le commerce électronique.

Pour information, les prix varient globalement entre 70€ et 700€ suivant le type de certificat.

Les certificats sont généralement au format X.509, contenant les informations suivantes :

  • La version de X.509
  • Numéro de série du certificat. Ce numéro est unique, en cas de révocation du certificat, celui-ci sera inséré dans la liste de révocation.
  • Identifiant de l'algorithme de signature du certificat
  • Le nom de l'autorité de certification qui a émit ce certificat
  • Le nom de domaine à certifier
  • Le nom du titulaire du certificat (DN)
  • La clé publique du titulaire permettant de chiffrer les informations
  • La liste des usages autorisés par la politique de certification
  • La date d'émission et d'expiration du certificat
  • Les extensions optionnelles introduites avec la version 3 de X.509 :
    • Identifiant alternatif de l'émetteur, au cas où la CA possède un DN commun à un ou plusieurs utilisateurs
    • Identifiant alternatif de l'utilisateur, au cas où le propriétaire possède un DN commun à un ou plusieurs utilisateurs.
  • La signature du certificat par la clé publique de l'autorité de certification. Ceci permet de vérifier l'authenticité du certificat.

Lorsqu'un client se connecte sur un serveur sécurisé, il prend connaissance du certificat. Il entre alors dans un mécanisme de vérification de validité du certificat dont voici les étapes :

  • Vérification de la signature de l'autorité de certification. Le destinataire faisant confiance au CA, signataire du certificat émis.
  • Il déchiffre la signature du certificat avec l'algorithme de chiffrement mentionné dans le certificat et la clé publique du CA afin d'obtenir l'empreinte du certificat.
  • Il réalise lui-même l'empreinte du certificat à l'aide de l'algorithme de hachage mentionné dans le certificat et vérifie la cohérence des 2 résultats.
  • Il vérifie ensuite la date de validité du certificat.
  • Enfin, il vérifie que le numéro de série du certificat n'est pas dans la liste de révocation des certifications tenue à jour par le CA.
2.1.2. Processus d'obtention d'un certificat

5 principales étapes sont nécessaires afin d'obtenir un certificat :

  • 1. Générer la clé privée du serveur. Pour cela, il faut se placer dans le répertoire où l'on désire générer cette clé et taper la commande suivante :
openssl genrsa 1024 -rand /var/log/messages > www.domain.com.key

Afin d'améliorer la qualité de la clé, le paramètre -rand est utile pour introduire des nombres aléatoires.

  • 2. Générer le fichier de demande de certificat (CSR). Grâce à la clé privée, il est possible de générer le CSR avec la commande suivante :
openssl req -new -key www.domain.com.key > www.domain.com.csr

Le système va demander des informations à saisir tel que le pays, la ville, la société, le nom du site et l'adresse email.

  • 3. Transmission de la CSR à l'autorité de certification. Suivant la classe de certificat choisie, le processus de validation se déroule différemment.
  • 4. Récupération du certificat signé (fichier .crt)
  • 5. Configuration d'apache. Pour cela, il suffit d'initialiser deux variables définissant le certificat reçu et la clé privée. Celles-ci sont à placer dans un virtualhost sur le port 443 :
<VirtualHost www.domain.com:443>
	SSLCertificateFile    /etc/httpd/conf/ssl.crt/www.domain.com.crt
	SSLCertificateKeyFile /etc/httpd/conf/ssl.key/www.domain.com.key
</VirtualHost>
W3C - XHTML 1.0 Powered By Fedora W3C - CSS