Le SSL en Python
1. Introduction
Deux modules séparés en Python offrent aux développeurs la possibilité d’incorporer SSL dans leurs applications.
Nous ne reviendrons pas ici dans l’explication du SSL ni de son fonctionnement, beaucoup d’ouvrages sur le sujet ont été publiés.
Dans la bibliothèque socket déjà vue précédemment, il existe une méthode permettant d’utiliser le SSL. L’implémentation dans socket est vraiment basique et n’est pas capable d’authentifier le client distant sur le serveur.
La seconde possibilité est d’utiliser pyOpenSSL, un autre module. C’est une interface du populaire OpenSSL, beaucoup plus puissante et complexe.
Nous utiliserons pour la suite ce dernier module.
2. Utilisation d’OpenSSL
Commençons par un exemple de script basique.
chap2_exo40.py
#!/usr/bin/env python
#coding:utf-8
import socket, sys
from OpenSSL import SSL
ctx=SSL.Context(SSL.SSLv23_METHOD)
print "Creation du socket ...",
s=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
print "socket cree\n"
ssl=SSL.Connection(ctx,s)
print "Etablissement du SSL...",
ssl.connect(('www.openssl.org',443))
print "connexion effectuee"
print "Requete demandee...",
ssl.sendall("GET / HTTP/1.0\r\n\r\n")
print "Requete effectuee"...