Certificats client d'authentification
Pourquoi faire?
Il est de plus en plus souvent nécessaire d'authentifier des
utilisateurs par autre chose qu'un username + password (trop facilement
duplicable). Un certificat a l'avantage de pouvoir être installé sur un
poste de travail, et être non exportable (notamment dans IE 6) et
utilisable après déverouillage (Mozilla). Il peut aussi être placé sur
support matériel.
Il peut aussi être requis par la loi d'utiliser des certificats
électronique pour authentifier des tiers et signer des documents. En
particulier pour de nombreuses dématérialisations.
Mise en place - coté serveur
Pour mettre en place ce test, nous avons utilisé un serveur SSL sous
Apache-ModSSL configuré avec un certificat SSL classique. Ici nous
avons choisi de faire un site uniquement accessible avec un certificat
client qui exige un certificat client:
<VirtualHost 213.186.35.102:443>
# activation du SSL
SSLEngine On
# configuration du certificat TBS X509 OmniDomaine
SSLCertificateFile /etc/http/conf/ssl.crt/wild.pitux.com.crt
SSLCertificateKeyFile /etc/http/conf/ssl.key/wild.pitux.com.key
SSLCACertificateFile /etc/http/conf/trusted_ca_certs/comodo2006.crt
# configuration de l'exigence de présentation d'un certificat client
SSLVerifyClient require
# emplacement des racines des autorités de certification autorisées
SSLCACertificatePath /usr/share/ssl/valid-ca/
# emplacement des CRL (liste des certificats revoqués)
SSLCARevocationPath /usr/share/ssl/crl-ca/
# longueur du chainage, valeur recommandée
SSLVerifyDepth 4
# autres options
SSLOptions +CompatEnvVars
# le classique apache
DocumentRoot /home/http/testcert
ServerName testcert.pitux.com
# logs standard
ErrorLog /etc/http/logs/SSL/pitux-testcert-ssl-error_log
TransferLog /etc/http/logs/SSL/pitux-testcert-ssl-access_log
# fichier log personnalisé
</VirtualHost>
Dans le répertoire /usr/share/ssl/valid-ca/ nous avons mis les
certificats racine des autorités dont nous voulons accepter les
certificats et leur hash. Voir l'archive valid-ca.tgz
Dans le répertoire /usr/share/ssl/crl-ca. nous avons mis les CRL au
format PEM avec leur hash de quelques autorités. Les CRL sont les
listes des certificats révoqués, donc non-valide. Il faudrait bien évidement
mettre toutes les CRL et s'assurer qu'un cron les mets à jour régulièrement.
Voir l'archive clr-ca.tgz
Mise en place - coté client
Nous nous sommes placés dans la logique de fournir le certificat client
à l'utilisateur. Pour se faire nous avons commandé un certificat
TBS X509 Sign&Login Test
pour la société TBS INTERNET que nous voulons identifier avec
son numéro de SIREN (440443810). Pour se faire, nous imposons que le
numéro de SIREN soit placé dans le champ CN du certificat et nous
renseignons le champ OU avec le format exigé par la PRIS v2 (ICD +
espace + identification de la société).
L'opération effectuée avec Internet Explorer est très simple, on se
contente de remplir les champs!
Nous avons récupéré le certificat fabriqué avec Internet Explorer et
il est apparu dans la liste des certificats personnels de l'utilisateur.
A cet instant, nous disposons d'un certificat client
fortement authentifié. Il reste à le transmettre à l'utilisateur final
pour utilisation dans son Internet Explorer ou Firefox.
On utilise la fonction Exporter de Internet Explorer (Outils / Options Internet / Onglet Contenu / bouton Certificats /
bouton Exporter) pour fabriquer un fichier .pfx. Il faut choisir d'exporter la clef privée,
d'inclure tous les certificats de la chaîne et ne pas activer la protection
renforcée si l'on souhaite l'importer dans Firefox.
Pour l'importer dans Internet Explorer (testé avec une version 6):
Outils / Options Internet / Onglet Contenu / bouton Certificats /
bouton Importer
Sélectionnez simplement le fichier pfx, puis donnez son mot de passe.
Le certificat s'importe!
Pour l'importer dans Mozilla (testé avec une version 1.7.3):
Edition / Preferences / Securité / bouton Gestion Certificats / bouton
importer
Sélectionnez simplement le fichier pfx, puis donnez son mot de passe.
Le certificat s'importe!
Mise en place - le test!
Il ne reste plus qu'à aller se connecter au site web préparé
précedemment. Il faut un certificat client pour accéder à cette page:
https://testcert.pitux.com/php/testcrypto.php
Vous verrez alors la confirmation de votre connexion SSL avec
l'affichage des principaux éléments du certificat client. Un
avertissement s'affichera si le certificat n'est pas authentifié. La présentation du certificat marche
parfaitement avec IE et Mozilla/Firefox!
Débouchés
Pour faire cet affichage, nous utilisons les variables
d'environnement passées par Apache au langage de gestion de page.
Ca peut être Php, Perl, ou même un simple CGI. Vous pouvez donc très
facilement ajouter une authentification forte à votre applicatif en
vérifiant:
- le champ CN (SSL_CLIENT_CN) avec le champ SIREN de votre table
clients de votre base de données
- le champ numéro de série (SSL_CLIENT_CERT_SERIAL) avec ce même
numéro stocké dans votre base de données
- etc
Vous pouvez facilement assurez une tracabilité des opérations en
utilisant les logs étendus d'Apache: il suffit par exemple d'ajouter
sur chaque ligne le CN du certificat client! Voir: http://www.modssl.org/docs/2.8/ssl_reference.html#ToC26
Nous proposons davantage de documentation dans notre FAQ.
Exploitation commerciale
TBS INTERNET vous propose son expertise pour délivrer des certificats
serveur et client fortement authentifiés. Les applications sont
multiples!
Pour la dématérialisation, vous pouvez générer vous même les clefs de
vos clients depuis votre plateforme et leur transmettre un simple
fichier résultant. Grâce à cela, vous pouvez séquestrer les clefs chez
vous pour réaliser les opérations de signature électronique en leur
nom, évitant ainsi de déployer des équipements de signature chez vos
clients!
Nous disposons à notre catalogue d'une gamme de produits avec
différents niveau de garantie pour satisfaire vos besoins à partir de
39 EUR HT pour 1 an. N'hésitez pas à nous contacter:
TBS INTERNET - Services Certificats
22 rue de Bretagne
14000 CAEN
France
Tel: +33-2-7630-5900 (10h-13h & 14h-18h lundi-vendredi)
Fax: +33-1-7372-4584
comparatif
| certificats Thawte
| certificats VeriSign
| certificats TBS X509
© TBS
Internet,
tous droits réservés. Toute reproduction, copie ou mirroring
interdit.
Revision date: 28 Aug 2006
URL: http://testcert.pitux.com/