Sécurité du Système d Information. Mini PKI



Documents pareils
SÉCURITÉ DU SI. Mini PKI. Denoun Jérémy De Daniloff Cyril Bettan Michael SUJET (3): Version : 1.0

Les certfcats. Installation de openssl

Installation GLPI-OCSNG-SSL Linux Debian Sarge

Une introduction à SSL

NOTE: Pour une meilleure sécurisation, nous vous recommandons de faire l installation des outils web à l intérieur d un serveur virtuel.

Méthode 1 : Mise en place IPSEC

Serveur de partage de documents. Étude et proposition d'une solution afin de mettre en place un serveur de partage de documents.

Déploiement d OCS 1.02 RC2 sous Debian Etch 64

Installation d OwnCloud 8.0 sous Debian Avec connexion des utilisateurs active directory et mise en place de HTTPS

Les certificats numériques

TP HTTP. Université Pierre Mendès France U.F.R. Sciences de l Homme et de la Société Master IC²A

Architectures PKI. Sébastien VARRETTE

PUBLIC KEY INFRASTRUCTURE. Rappels PKI PKI des Impôts PKI de la Carte de Professionnel de Santé

Procédure d'installation

titre : CENTOS_CUPS_install&config Système : CentOs 5.7 Technologie : Cups Auteur : Charles-Alban BENEZECH

Utilisation des certificats X.509v3

Fonctionnement des PKI Architecture PKI

La sécurité des Réseaux Partie 7 PKI

Les serveurs WEBUne introduction

Concepts de sécurité informatique

SSL - TLS. Histoire, fonctionnement Sécurité et failles

Module 7 : Configuration du serveur WEB Apache

Sommaire Introduction Les bases de la cryptographie Introduction aux concepts d infrastructure à clés publiques Conclusions Références

Public Key Infrastructure (PKI)

Réaliser un inventaire Documentation utilisateur

2013 Installation de GLPI-OCS. Florian MICHEL BTS SIO LYCEE SAINTE URSULE

Étape 1 : gérer les certificats

Installation du serveur WEB Apache ( MySQL, PHP) sous Debian 7.

Certificats X509 & Infrastructure de Gestion de Clés. Claude Gross CNRS/UREC

M2-RADIS Rezo TP13 : VPN

Perso. SmartCard. Mail distribution. Annuaire LDAP. SmartCard Distribution OCSP. Codes mobiles ActivX Applet. CRLs

Installation d un hébergement Web à domicile

FORMATION SUR «CRYPTOGRAPHIE APPLIQUEE

Cadre de Référence de la Sécurité des Systèmes d Information

Aristote Groupe PIN. Utilisations pratiques de la cryptographie. Frédéric Pailler (CNES) 13 janvier 2009

Modèle de sécurité de la Grille. Farida Fassi Master de Physique Informatique Rabat, Maroc May 2011

Du 03 au 07 Février 2014 Tunis (Tunisie)

LP ASUR - Sécurité. Introduction à la Sécurité des Systèmes d'information. Florent Autréau - florent@mataru.com 28 Mai 2013

Certificats (électroniques) : Pourquoi? Comment? CA CNRS-Test et CNRS

Côté Labo : le service Web

Cryptographie. Master de cryptographie Architectures PKI. 23 mars Université Rennes 1

Annexes. OpenVPN. Installation

Windows Server 2008 Sécurité ADMINISTRATION ET CONFIGURATION DE LA SECURITE OLIVIER D.

Préparation d un serveur Apache pour Zend Framework

Introduction à la sécurité Cours 8 Infrastructure de clés publiques. Catalin Dima

Installation UpdatEngine serveur (CentOs apache2 / MySQL)

TP Service HTTP Serveur Apache Linux Debian

Chapitre 7. Sécurité des réseaux. Services, attaques et mécanismes cryptographiques. Hdhili M.H. Cours Administration et sécurité des réseaux

Acronymes et abréviations. Acronymes / Abbréviations. Signification

Cryptologie. Algorithmes à clé publique. Jean-Marc Robert. Génie logiciel et des TI

La sécurité dans les grilles

Architecture PKI en Java

WEB-II, Compléments sous la forme de rapport de travaux pratiques. Stève Galeuchet & Florian Seuret. Massimiliano Babino

IGC-CPS2bis. Gabarits des certificats X.509. des Classes 4, 5 et mars Version mars 2012 Document ASIP-Santé Page 1 / 34

Les infrastructures de clés publiques (PKI, IGC, ICP)

LEGALBOX SA. - Politique de Certification -

Serveur Linux : FTP. Mise en place d un service FTP sous Linux. Bouron Dimitri 20/04/2014

Administration Linux - Apache

Politique de Certification Autorité de Certification Signature Gamme «Signature simple»

Serveur Web Apache - SSL - PHP Debian GNU/Linux

Certificats et infrastructures de gestion de clés

Politique de Certication. Certigna ID PRIS Pro

Autorité de certification

Exemple : vous voulez tester votre site en local avant de l uploader via FTP chez votre hébergeur externe.

Gestion des Clés Publiques (PKI)

CA SIC Directives de certification Certificate Practice Statement (CPS) du SIC Customer ID CA 1024 Level 2

NORMES TECHNIQUES POUR UNE INTEROPERABILITE DES CARTES D IDENTITE ELECTRONIQUES

Projet de mise en œuvre d un serveur ftp sur serveur dédié

Cours 14. Crypto. 2004, Marc-André Léger

Processus 2D-Doc. Version : 1.1 Date : 16/11/2012 Pôle Convergence AGENCE NATIONALE DES TITRES SECURISÉS. Processus 2D-Doc.

WEBMESTRE : CONCEPTION DE SITES ET ADMINISTRATION DE SERVEURS WEB

Politique de Certification

POLITIQUE DE CERTIFICATION DE L'AC KEYNECTIS SSL RGS * (authentification serveur) Date : 12/08/2011

Faire fonctionner symfony sous wamp et windows avec des vhost. Installation de wamp

Autorité de Certification OTU

ROYAUME DU MAROC Politique de certification - Autorité de Certification Externe -

EJBCA PKI. Yannick Quenec'hdu Reponsable BU sécurité

27/11/12 Nature. SDK Python et Java pour le développement de services ACCORD Module(s)

Signature électronique. Romain Kolb 31/10/2008

Gestion des Clés. Pr Belkhir Abdelkader. 10/04/2013 Pr BELKHIR Abdelkader

EJBCA PKI Open Source

CONFIGURATION DE OPENVPN AVEC CLIENT FEDORA ET CLIENT WINDOWS. Distribution : Fedora 14 Noyau GNU/Linux : Version document : 1

Matthieu Herrb Octobre Accès distants sécurisés - 18 octobre

II- Préparation du serveur et installation d OpenVpn :

Devoir Surveillé de Sécurité des Réseaux

Les risques liés à la signature numérique. Pascal Seeger Expert en cybercriminalité

REPARTITION DE CHARGE LINUX

L installation du module Webmail nécessite également quelques prérequis, à savoir :

LAMP : une nouvelle infrastructure LAMP. Une architecture modulaire. Installation

SSL. Secure Socket Layer. R. Kobylanski janvier version 1.1 FC INPG. Protocole SSL Application avec stunnel

VXPERT SYSTEMES. CITRIX NETSCALER 10.1 et SMS PASSCODE 6.2. Guide d installation et de configuration pour Xenapp 6.5 avec SMS PASSCODE 6.

CDS Invenio Installation et configuration de base

SERVEUR HTTP Administration d apache

Mieux comprendre les certificats SSL THAWTE EST L UN DES PRINCIPAUX FOURNISSEURS DE CERTIFICATS SSL DANS LE MONDE

Service de certificat

Gestion d identités PSL Installation IdP Authentic

PUPPET. Romain Bélorgey IR3 Ingénieurs 2000

Transcription:

Sécurité du Système d Information Mini PKI Nombres de pages : 9 Version : 1.0 Auteurs : HAMROUNI Makram POISSENOT Thomas ROUX Nicolas Destinataires : BOMBAL Sébastien Remarques : Aucune.

Tables des matières 1 Introduction... 1 1.1 Public Key Infrastructure (PKI)... 1 1.1.1 Pourquoi une PKI?... 1 1.2 Comment?... 1 1.2.1 A quoi servent les certicats?... 1 1.2.2 Notre Mini PKI... 1 2 OpenSSL... 2 2.1 Explication des commandes utilisé dans le script... 2 2.1.1 Création d un bi-clé... 2 2.1.2 Création d un certicat auto signé... 2 2.1.3 Pour signer un certicat... 2 2.1.4 Pour révoquer un certicat... 2 2.1.5 Pour (ré)générer la CRL (Certicate Revocation List)... 2 2.1.6 Pour générer un certicat pour l OCSP... 2 2.2 Explication du chier de conguration «openssl.cnf»... 2 2.2.1 Politique des certicats... 3 2.2.2 Pour le certicat racine... 3 2.2.3 Pour le certicat de l OCSP... 3 2.2.4 Pour paramétrer l adresse de l OCSP... 3 3 Utilisation des Certicats avec HTTPs... 4 3.1 Ajout du module SSL à apache... 4 3.2 Afchage des informations sur la page d accueil de l intranet... 4 4 Annexes... 5 4.1 vhost.conf... 5 4.2 index.php... 5 4.3 minipki.sh... 5 4.4 openssl.cnf... 7 Version 1.0 Mini PKI i

1 Introduction 1.1 Public Key Infrastructure (PKI) 1.1.1 Pourquoi une PKI? En utilisant la cryptographie asymétrique, une personne/entité a la possibilité de posséder une clé publique et une clé privée. Avec sa clé privée, la personne/entité peut s autier et signer des documents. Le problème est que pour vérier la signature d un document il faut la clé publique et être certain que c est bien la clé publique de la personne qui a signé le document (Autication). Pour résoudre ce problème, les PKI mettent à disposition sur un serveur les clefs publiques des utilisateurs sous la forme d'un certicat numérique. Une PKI (Public Key Infrastructure) est donc un système de gestion de clefs publiques qui assure la abilité de celles-ci à des tiers/entités grâces à des certicats et à la cryptographie asymétrique permettant de vérier ces certicats. On peut notamment, grâce à la PKI, générer des certicats, les renouveler une fois expirés ou les révoquer. An que le système soit utilisable et sûr, on publie les certicats, la liste des certicats révoqué et on propose l autication des entités grâce à leur certicats ainsi que le recouvrement d un certicat perdu. 1.2 Comment? Pour cela, la PKI contient une Autorité de certication (AC). L'autorité de certication est une autorité de conance qui délivre et gère des certicats de clef publique et des CRL (Certicate Revocation List) conformes à la recommandation X.509. Elle génère les certicats à clef publique et garantit l intégrité et la véracité des informations qu ils contiennent, en les signant avec sa propre clef privée. Pour cela elle se génère un bi-clé qu elle transforme en certicat et l auto-signe an de se créer son certicat racine. 1.2.1 A quoi servent les certicats? Les certicats, grâce à des opérations cryptographiques et à partir des informations contenus dans le certicat (signature et clé publique) offrent les garanties suivantes pour une transmission de données : Condentialité : Les informations échangées deviennent illisibles / Seul le destinataire légitime des données pourra déchiffrer le message. (Opération de chiffrement) Autication : On peut identier avec certitude l émetteur des données. Non-répudiation : L'émetteur des données ne pourra pas nier être à l'origine du message. Intégrité : Les données transmises n ont pas pu être modié/altérés. 1.2.2 Notre Mini PKI Notre Mini-PKI fournit donc les services suivants : o Fabrication de bi-clés pour utiliser la cryptographie asymétrique : o o Fabrication/publication d un certicat pour certier la clé publique Révocation d un certicat (en local ou par serveur OCSP (Online Certicate Status Protocol)) Version 1.0 Mini PKI Page 1

2 OpenSSL Pour réaliser notre Mini AC, nous avons utilisé OpenSSL. Nous l avons paramétré selon le chier de conguration fournit en annexe et pour utiliser openssl de manière transparente nous avons réalisé le script mini-pki.sh fournit lui aussi en annexe. 2.1 Explication des commandes utilisé dans le script 2.1.1 Création d un bi-clé genrsa : demande la création d un bi-clé (RSA) -aes256 : le bi-clé nouvellement créé sera chiffré par de l AES 256 bit -out x.key 4096 : chemin où mettre le bi-clé créé + longueur de la clé RSA a créer 2.1.2 Création d un certicat auto signé req : pour demander un travail sur un certicat -new : pour demander un nouveau certicat -x509 : Pour demander à ce que le nouveau certicat soit auto signé pas l AC -days X : Pour mettre la durée de validité du certicat égale à X jours -key x.key : Pour donner le chemin vers le bi-clé précédemment créé a utilisé pour la création du certicat -out ca.crt : Pour donner le chemin où mettre le nouveau certicat -extensions Y : Paramètre dans le chier openssl.cnf à utiliser pour la création du certicat 2.1.3 Pour signer un certicat ca : pour faire appel à l autorité de certication -in x.csr : chemin où trouver le certicat à signer -out x.crt : chemin où mettre le certicat signé 2.1.4 Pour révoquer un certicat ca : pour faire appel à l autorité de certication -revoke x.crt : certicat à révoquer 2.1.5 Pour (ré)générer la CRL (Certicate Revocation List) ca : pour faire appel à l autorité de certication -gencrl : option pour appeler la (ré)génération -out x.crl : chemin ou mettre la liste de révocation 2.1.6 Pour générer un certicat pour l OCSP Une clé non chiffré par AES ou DES : openssl req -new -newkey rsa:4096 -nodes -keyout./minica/private/ocsp.key -out./minica/csr/ocsp.csr Puis un certicate : openssl ca -extensions OCSP -in./minica/csr/ocsp.csr -out./minica/cert/ocsp.pem 2.2 Explication du chier de conguration «openssl.cnf» Ci-dessus, la plupart des parties du chier openssl.cnf est expliqué. Le reste est disponible en annexe Version 1.0 Mini PKI Page 2

2.2.1 Politique des certicats Mise en place de la politique demandée pour les certicats : [ policy_match ] countryname organizationname organizationalunitname emailaddress localityname commonname 2.2.2 Pour le certicat racine [ minica_root ] = match = match Pour dire qu il faut créer un certicat de type racine : basicconstraints subjectkeyidentier = critical, CA:true = hash authoritykeyidentier = keyid,issuer:always Pour limiter l utilisation du certicat a la génération de signature pour des certicat et des listes de révocation : keyusage nscomment nscarevocationurl = critical, keycertsign, crlsign = "Certicat Racine MiniCA (Dossier PKI)" = http://www.srs.epita.fr/ 2.2.3 Pour le certicat de l OCSP [ OCSP ] extendedkeyusage = OCSPSigning 2.2.4 Pour paramétrer l adresse de l OCSP (Ici, c est le localhost) authorityinfoaccess = OCSP;URI:http://127.0.0.1 Version 1.0 Mini PKI Page 3

3 Utilisation des Certicats avec HTTPs 3.1 Ajout du module SSL à apache Dans un premier temps, il faut activer le module SSL livré avec la distribution apache de debian. Pour ceci, un lien symbolique vers des chier ssl.conf et ssl.load de mods-available dans mods-enable, et enlever le port 80 des ports écoutés an de n écouter que les connexions sécurisé. On congure ensuite, les certicats de notre site an de faire marcher le mode sécurisé du protocole http (https) : SSLCerticateFile /home/npsr/pki/minica/cert/localhost.crt SSLCerticateKeyFile /home/npsr/pki/ssl.pem On autorise uniquement les connexions SSLv3 : SSL_PROTOCOL SSLv3 On passé ensuite à l intégration de notre CA an que les clients qui puisse se connecter à notre site web soit uniquement les personnes en possession du certicat : SSLCACerticateFile /home/npsr/pki/minica/public/minica.crt SSLVerifyClient require SSLCACerticatePath /home/npsr/pki/minica/ SSLCARevocationFile /home/npsr/pki/minica/public/minica.crl SSLVerifyDepth 4 Pour le reste de la conguration de l host voir le vhost.conf fourni en annexe 3.2 Afchage des informations sur la page d accueil de l intranet Il faut rajouter dans un premier temps dans la conguration d apache l export des variables SSL dans les variables php avant de coder la page en elle-même (voir annexe : index.php) : SSL_Options +StdEnvVars Version 1.0 Mini PKI Page 4

4 Annexes 4.1 vhost.conf NameVirtualHost *:443 <VirtualHost *:443> ServerName localhost DocumentRoot /var/www/ SSLEngine on SSL_PROTOCOL SSLv3 SSLCerticateFile /home/npsr/pki/minica/cert/localhost.crt SSLCerticateKeyFile /home/npsr/pki/ssl.pem SSLCACerticateFile /home/npsr/pki/minica/public/minica.crt SSLVerifyClient require SSLCACerticatePath /home/npsr/pki/minica/ SSLCARevocationFile /home/npsr/pki/minica/public/minica.crl SSLVerifyDepth 4 CustomLog /var/log/apache2/monsite-ssl-access.log combined ErrorLog /var/log/apache2/monsite-ssl-error.log <Directory "/var/www"> DirectoryIndex index.html index.htm index.php index.php3 Options -Indexes </Directory> </VirtualHost> 4.2 index.php <? echo "Bonjour M. ".$_SERVER['SSL_CLIENT_S_DN_CN']."<br/><br/>"; echo "Votre numéro de certicat est : ". $_SERVER['SSL_CLIENT_M_SERIAL']."<br/><br/>"; echo "Votre adresse email est : ".$_SERVER['SSL_CLIENT_S_DN_Email'];?> 4.3 mini-pki.sh #!/bin/sh # Récupération de l'emplacement du chier de conf openssl.cnf Version 1.0 Mini PKI Page 5

# pour créér au bon endroit la minica (cad pour que les # chemins relatifs du chier openssl.cnf soient corrects rep=`echo $OPENSSL_CONF sed -e "s/openssl\.cnf$//"` echo $rep if [ $# -ge 1 ] ; # Création des dossiers nécéssaires à la MiniCA pour OpenSSL if [ $1 = 'create-ca' ] ; mkdir -p $rep/minica/public $rep/minica/private $rep/minica/cert $rep/minica/csr touch $rep/minica/index.txt touch $rep/minica/serial echo "01" >> $rep/minica/serial openssl genrsa -aes256 -out $rep/minica/private/minica.key 4096 openssl req -new -x509 -days 3650 -key $rep/minica/private/minica.key -out $rep/minica/public/minica.crt - extensions minica_root # Test pour le bon usage du certicat openssl x509 -in $rep/minica/public/minica.crt -text -noout openssl x509 -purpose -in $rep/minica/public/minica.crt -noout if [ $1 = 'user-sign' ] ; str=`echo $2 cut -d '.' -f 1` openssl ca -in $2 -out $rep/minica/cert/$str.crt mv $2 $rep/minica/csr/ if [ $1 = 'revoke' ] ; openssl ca -revoke $2 if [ $1 = 'gencrl' ] ; openssl ca -gencrl -out $rep/minica/public/minica.crl Version 1.0 Mini PKI Page 6

if [ $1 = 'genocsp' ] ; openssl req -new -newkey rsa:4096 -nodes -keyout $rep/minica/private/ocsp.key -out $rep/minica/csr/ocsp.csr 4.4 openssl.cnf [ ca ] openssl ca -extensions OCSP -in $rep/minica/csr/ocsp.csr \ -out $rep/minica/cert/ocsp.pem default_ca = minica # La CA par défaut #################################################################### [ minica ] dir =./minica # Le dossier de base de la CA certs = $dir/cert # Où sont stockés les certicats signés crl_dir = $dir/public # Où est stocké la crl database = $dir/index.txt new_certs_dir = $dir/cert # database # Emplacement pour les nouveaux certifs. certicate = $dir/public/minica.crt # Certicat racine de minica serial = $dir/serial # Compteur pour les numéros de certifs private_key = $dir/private/minica.key # The private key # Comment out the following two lines for the "traditional" # (and highly broken) format. name_opt = ca_default # Subject Name options cert_opt = ca_default # Certicate eld options default_days = 365 # how long to certify for default_crl_days= 30 # how long before next CRL default_md = sha1 # which md to use. preserve = no # keep passed DN ordering # A few difference way of specifying how similar the request should look # For type CA, the listed attributes must be the same, and the optional # and supplied elds are just that :-) policy = policy_match Version 1.0 Mini PKI Page 7

authorityinfoaccess = OCSP;URI:http://127.0.0.1 # For the CA policy [ policy_match ] countryname organizationname organizationalunitname emailaddress localityname commonname = match = match #################################################################### [ req ] distinguished_name = req_distinguished_name x509_extensions = v3_ca # The extentions to add to the self signed cert [ req_distinguished_name ] countryname = Pays (Code de 2 lettres) countryname_default = FR countryname_min = 2 countryname_max = 2 stateorprovincename = Departement stateorprovincename_default = IDF localityname localityname_default = Ville = Paris 0.organizationName = Organisation 0.organizationName_default = Lab SRS organizationalunitname = Unité organizationalunitname_default = Promo2009 emailaddress = Courriel emailaddress_default = srs@srs.epita.fr emailaddress_max = 64 commonname = Commen Name commonname_default = localhost commenname_max = 64 Version 1.0 Mini PKI Page 8

[ req_attributes ] challengepassword = Un mot de passe challengepassword_min = 4 challengepassword_max = 20 [ v3_ca ] subjectkeyidentier=hash authoritykeyidentier=keyid:always,issuer:always #################################################################### [ minica_root ] basicconstraints = critical, CA:true subjectkeyidentier = hash authoritykeyidentier = keyid,issuer:always keyusage = critical, keycertsign, crlsign nscomment = "Certicat Racine MiniCA (Dossier PKI)" nscarevocationurl = http://www.srs.epita.fr/ #################################################################### [ OCSP ] extendedkeyusage = OCSPSigning Version 1.0 Mini PKI Page 9