Note sur les modules logiciels de CADDISC Les diffs et le module SCVP pour OpenSSL ainsi qu'un client/serveur pour les tests sont disponibles sur le site Web de CADDISC: http://www-lor.int-evry.fr/~maknavic/CADDISC/ . J'ai modifié la dernière distribution d'OpenSSL, openssl-0.9.7c. Les fichiers modifiés sont : - Makefile.org (pour ajouter le module scvp) - crypto/objects/objects.txt (pour les définitions des OID de SCVP) - crypto/scvp (nouveau module avec les définitions (scvp.h) et les macros ASN.1 (scvp_asn.c)) Comme j'ai eu beaucoup de soucis pour compiler la bête, voici les trucs pour construire OpenSSL : - sur Linux il faut faire ./config shared (PAS de debug sinon on n'a pas les librairies partagées) - sur FreeBSD le plus simple est d'aller chercher le dernier "port" qui trafique la config pour créer les librairies partagées. - il faut refaire les objects et les stacks entre la configuration et la compilation, le "make update" dans la racine d'OpenSSL semble être le plus efficace. - sur FreeBSD seul le "make build" dans le "port" compile tout ce qu'il faut. Donc il faut dans l'ordre (les makes sont pour les ports FreeBSD) - récupérer la distrib d'OpenSSL 0.9.7c (make fetch) et mes patches. - extraire et appliquer les patches standard du système (make patch) - appliquer mes patches - configurer (make configure) - faire "make update" dans la racine d'openssl - compiler (make build). Si vous ne voulez pas installer cet OpenSSL dans le système par défaut (ce que je comprends très bien), le test marche avec un LD_LIBRAIRY_PATH. Le test est constitué de : - ENV-, un script pour mettre le bon environment, probablement à adapter sur chaque machine. - Makefile-, le Makefile, même remarque. - dumpasn1.c/dumpasn1.cfg, un utilitaire que j'ai récupéré pour décoder le BER/DER qui traîne. - scvp_clt.c, le client (appel: ./clt http://machine:8000/) Il utilise la librairie CURL (à installer si vous ne l'avez pas) pour envoyer une requête SCVP à l'URL indiqué en HTTP. - scvp_srv.c, le serveur (appel: ./srv ). Il prend la requête sur l'entrée standard et répond sur la sortie standard. Je l'ai (ré)écrit pour qu'on puisse facilement extraire la partie vérification de la partie HTTP afin de pouvoir le mettre comme module ou cgi-bin dans un serveur HTTP. - simplesrv.c est un petit utilitaire qui écoute sur le port 8000 et qui exécute l'application donnée en argument une seule fois quand on se connecte. Normalement le serveur devrait être lancé par inetd mais pour les tests je recommande cette utilitaire avec comme arguments "./srv ". - scvp_ldap.c est le module "lookup" utilisant LDAP - getrrcertbyname.h/c est la fonction DNSsec qui va chercher les CERT RR en fonction du nom (FQDN). Les autres modules sont : - CURL (normalement déjà disponible sur le système, j'utilise la 7.10.7) - OpenLDAP (idem, j'utilise la 2.1.12 aka openldap21 sur FreeBSD mais si vous avez OpenCA vous avez forcément OpenLDAP) - le DNSSEC toolkit dispo sur les sites www.dnssec.net et www.idsa.prd.fr et ftp://ftp.irisa.fr/local/idsa/code/dnssectoolkit/