Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
LASFAR Salim
Transport Layer Security (TLS), et son
prdcesseur Secure Sockets Layer (SSL), sont
des protocoles de scurisation des changes sur Internet,
dvelopp l'origine par Netscape (SSL version 2 et SSL
version 3).
LP-R2SI:
Administration des
rseaux et scurit
sous Linux.
Introduction:
Transport Layer Security (TLS), et son prdcesseur Secure Sockets Layer (SSL),
sont des protocoles de scurisation des changes sur Internet, dvelopp
l'origine par Netscape (SSL version 2 et SSL version 3). Il a t renomm en
Transport Layer Security (TLS) par l'IETF suite au rachat du brevet de Netscape
par l'IETF en 2001. Le groupe de travail correspondant l'IETF a permis la
cration des RFC 2246 pour le TLS et RFC 4347 pour son quivalent en mode
datagramme, le DTLS. Depuis son rapatriement par l'IETF, le protocole TLS a
vcu deux rvisions subsquentes : TLSv1.1 dcrite dans la RFC 4346 et publie
en 2006 et TLSv1.2, dcrite par la RFC 5246 et publie en 2008.
Il y a trs peu de diffrences entre SSL version 3 et TLS version 1 (qui
correspond la version 3.1 du mcanisme SSL) rendant les deux protocoles non
interoprables. TLS a tout de mme mis en place un mcanisme de compatibilit
ascendante avec SSL. En outre, TLS diffre de SSL pour la gnration des cls
symtriques. Cette gnration est plus scurise dans TLS que dans SSLv3 dans
la mesure o aucune tape de l'algorithme ne repose uniquement sur MD5 pour
lequel sont apparues des faiblesses en cryptanalyse.
Par abus de langage, on parle de SSL pour dsigner indiffremment SSL ou TLS.
TLS fonctionne suivant un mode client-serveur. Il fournit les objectifs de
scurit suivants :
l'authentification du serveur ;
la confidentialit des donnes changes (ou session chiffre) ;
l'intgrit des donnes changes ;
de manire optionnelle, l'authentification ou l'authentification forte du client
avec l'utilisation d'un certificat numrique ;
la spontanit, c'est--dire qu'un client peut se connecter de faon
transparente un serveur auquel il se connecte pour la premire fois ;
la transparence, qui a contribu certainement sa popularit : les protocoles
de la couche d'application n'ont pas tre modifis pour utiliser une
connexion scurise par TLS. Par exemple, le protocole HTTP est identique,
que l'on se connecte un schme http ou https.
Atelier :
Cet atelier est un extrait du document technique : Installation, configuration et
test de OpenSSL, ralis par Marchiani Jean-Baptise de lIUP STRI
N.B-1: Les commandes taper la console sont en gras et prcdes du caractre
# . Les messages renvoys par la console sont en gras et italiques.
N.B-2: Ils est IMPORTANT de noter que les commandes prsentes dans ce
dossier tiennent compte d'un choix d'arborescence / architecture.
Si une modification par rapport ce prsent document est apporte, il faudra
que tous les fichiers de configuration ainsi que les commandes soient modifis
afin de supporter ces modifications.
I CONFIGURATION DE OPENSSL :
Pour plus de cohrence (ref livre "PKI Open Source") nous allons crer
Diffrents rpertoires et fichiers et modifier le fichier de configuration de
OpenSSL dans l'optique des futures manipulations.
Cration des fichiers ncessaires OpenSSL
#cd /etc/ssl
#mkdir crl
#mkdir certs //(si inexistant)
#mkdir ca
#mkdir csr
#mkdir newcerts
#mkdir cnf
#mkdir private //(si inexistant)
#chmod 700 private
#echo "01" > serial
#cp /dev/null index.txt
de faon obtenir:
On entend ici par serveurs les serveurs de type web par exemple c'est dire
proposant des services qui requirent l'utilisation de certificat ou encore des
serveurs d'authentification tel que le serveur Radius utilisant le protocole
EAPTLS reposant lui aussi sur l'utilisation de certificats.
De la mme faon que prcdemment:
#cd /etc/ssl/cnf
#touch req-server-cert.cnf
Tout d'abord, il faut gnrer la paire de cls prive / publique RSA avec la
commande genrsa. Le paramtre -des3 indique que la paire de cls sera chiffre
avec l'algorithme
DES3. Le paramtre -out prcise le nom du fichier de la paire de cls. Le
paramtre - rand pointe sur un fichier alatoire. Le dernier paramtre doit tre la
longueur de la paire de cls en nombre de bits.
Se placer dans /etc/ssl/bin afin de pouvoir lancer l'excutable ./openssl :
#cd /etc/ssl/bin
Il est conseill de mettre les droits de ca.key 400 n'autorisant ainsi que la
lecture de cette paire de cls, et uniquement par l'administrateur root.
Se situant dans /etc/ssl/bin et devant modifier les droits de ca.key se trouvant
dans /etc/ssl/private nous utilisons ici ./ pour revenir en arrire soit /etc/ssl/ .
#chmod 400 ./ca/ca.key
b) Gnration et signature du certificat Root CA
2. Certificat Serveur
a) Gnration d'une paire de cls
De la mme faon que pour le certificat Root CA, on gnre une paire de cls
prive/publique. Le mot de passe qui a t choisi est: Serveur SSL. De plus, afin
d'organiser de faon concise l'arborescence, il semble tre judicieux de crer un
dossier qui portera le nom du serveur pour lequel on veut crer le certificat
serveur (ici serveurssl) :
#cd /etc/ssl
#mkdir serverssl
#cd /etc/ssl/bin
#./openssl genrsa -des3 -out ./serverssl/serverssl.key -rand ./private/.rand 1024
Lorsque la paire de cls et le certificat sont gnrs par la PKI, il est trs
pratique de retourner toutes ces donnes l'utilisateur au moyen du format
PKCS#12, car ce dernier est reconnu par de trs nombreux clients web et de
messagerie.
La commande ci-dessous fait la conversion du certificat au format p12 :
#./openssl pkcs12 -export -descert -inkey private.march.key -in
./certs/march.crt -name "march_friendlyname" -certfile ./
ca/ca.crt -caname "rootca_friendly_name" -out ./certs/march.p12
Cot Client :
On passe le rsultat qui sera afficher travers le pipe la commande tee qui va
lenregistrer dans un fichier qui sera cre aussi par la commande tee | tee
nom_fichier
Rsultat :
Aprs on affiche le rsultat affich dans terminal avec une faon vite sur
Client on va le trouv dans le fichier MonTestCoteClient
Cot Serveur :
Aprs on affiche le rsultat affich dans terminal avec une faon vite sur
Serveur on va le trouv dans le fichier MonTestCoteServeur