Cette traduction est issue d'une contribution externe.

Projet Ägypten : Développement

Accueil | Technologie | Qui | Calendrier | Développement | Relations Publiques | Glossaire

Infrastructure

Comment tester KMail ou Mutt avec Ägypten?

Seuls ceux qui ont une âme d'aventurier devraient suivre les instructions ci-dessous.

Faisez attention d'utiliser des préfixes conformes à votre système. Utilisez "make; su - c 'make install'" au lieu de "make install" si les préfixes pointent vers un dossier où vous n'avez pas les droits nécessaires.

Veuillez noter également que le développement est en pleine effervescence, et que suivre les instructions suivantes ne pourraient pas être entièrement adaptées. Si vous essayez la dernière version, n'hésitez pas à nous faire part de vos problèmes sur notre liste de diffusion.

Vous devriez créer un utilisateur test, afin de garder votre courrier et votre configuration intacts. N'utilisez pas cette version avec des mots de passe importants ou lors pour chiffrer de messages sensibles.

Compilation à partir de tar-balls

Il est nécessaire de disposer de KDE 3.0.0, ainsi que des paquets devel correspondant (recommandé). Autrement, vous pouvez toujours utiliser les tar-balls pour qt, arts, kdelibs et kdebase listées ci-dessous.

Les tar-balls suivantes sont nécessaires (Bien que ce choix d'archives fonctionne, il est conseillé de surveiller la sortie de nouvelles versions) :

Pour KMail :
qt-x11-free-3.0.4.tar.bz2 (13MB)
arts-1.0.0.tar.bz2 (1.1MB)
kdelibs-aegypten-20020425.tar.bz2 (7.9MB)
kdebase-aegypten-20020425-small.tar.bz2 (8MB)
kdenetwork-aegypten-20020514-small.tar.bz2 (1.8MB)
gnupg-1.0.7.tar.gz (2.4MB)
 
Pour Mutt:
mutt-1.5.0-wk20020503.tar.gz (2.6MB)
 
Pour tout client mails avec Ägypten :
libgcrypt-1.1.6.tar.gz (700KB)
libksba-0.4.1.tar.gz (500KB)
opensc-0.6.1-wk-20020415.tar.gz (600KB, optional for smartcard support)
newpg-0.3.6.tar.gz (400KB)
gpgme-0.3.6.tar.gz (700KB)
dirmngr-0.3.0.tar.gz (200KB)
pinentry-0.6.2.tar.gz (300KB)

Le procédé de compilation ressemble à :

  1. [KMail]
    cd /spare/aegypten/compile
    tar xvjf ../source/qt-x11-free-3.0.4.tar.bz2
    cd qt-x11-free-3.0.4
    export QTDIR=$PWD
    ./configure -prefix /spare/aegypten/install -thread
    make install

  2. [KMail]
    export QTDIR=/spare/aegypten/install/
    export KDEDIR=/spare/aegypten/install/
    export LD_LIBRARY_PATH=$KDEDIR/lib:$QTDIR/lib
    export PATH=$KDEDIR/bin:$PATH
    (Vérifiez de bien éxecuter cette partie lorsque vous installez une partie d'Aegypten)

  3. [KMail]
    détarez, configure avec l'option --prefix=/spare/aegypten/install (par exemple), make et install:
    arts-1.0.0
    kdelibs-aegypten-20020425
    kdebase-aegypten-20020425-small
    kdenetwork-aegypten-20020514-small

  4. [Tout MUA]
    détarez, configure avec l'option --prefix=/spare/aegypten/install (par exemple), make et install:
    gnupg-1.0.7
    libgcrypt-1.1.6
    libksba-0.4.1
    opensc-0.6.1-wk-20020415 (optionnel, pour le support de smartcard)
    newpg-0.3.6
    gpgme-0.3.6 (utilisez --enable-gpgmeplug pour configurer)
    dirmngr-0.3.0
    pinentry-0.6.2

  5. [Mutt]
    export PATH=/spare/aegypten/install/bin:$PATH
    (Vérifiez de bien exécuter cette partie lorsque vous installez une partie d'Aegypten)
    détarez, configure avec l'option --prefix=/spare/aegypten/install (par exemple), make install :
    mutt-1.5.0-wk20020503 (il se peut qu'il soit nécessaire de changer des droits sur des fichiers manuellement pour installer mutt)

Compilation à partir du CVS

Notez que pour Mutt, l'extension Aegypten n'est pas encore dans le CVS officiel de Mutt, mais uniquement disponible en tant que tar-ball séparée (voir ci-dessus).

Si KDE 3.0.0 et les paquets devel correspondant sont installés, il suffit de récupérer admin, certmanager, mimelib, libkdenetwork et kmail du module CVS de kdenetwork:

(ajustez CVSROOT sur votre miroir CVS préféré de kde)
cvs co -l kdenetwork
cd kdenetwork
cvs up admin certmanager mimelib libkdenetwork kmail
make -f Makefile.cvs
./configure --enable-debug=full --prefix=/quelque/part
make install
La procédure complète est (vous pouvez utiliser des raccourcis pour certains modules, notamment par le biais de tar-balls) :
  1. Compilez gnupg (Si vous souhaitez le support OpenPGP avec gpg-agent et quelques nouveaux trucs)

    cvs -z3 -d :pserver:anoncvs@cvs.gnupg.org:/cvs/gnupg co -r STABLE-BRANCH-1-0 gnupg
    cd gnupg
    # A cause de problèmes avec automake, vous pourriez avoir besoin de copier depcomp:
    cp /usr/share/automake/depcomp scripts
    ./autogen.sh
    ./configure --prefix=/quelque/part --enable-maintainer-mode
    make install

  2. Compilez libksba

    cvs -z3 -d :pserver:anoncvs@cvs.gnupg.org:/cvs/aegypten checkout libksba
    cd libksba
    ./configure --prefix=/quelque/part
    make install

  3. Compilez libgcrypt

    cvs -z3 -d :pserver:anoncvs@cvs.gnupg.org:/cvs/gnupg checkout libgcrypt
    cd libgcrypt
    ./scripts/autogen.sh
    ./configure --prefix=/quelque/part
    make install

  4. Compilez DirMngr

    cvs -z3 -d :pserver:anoncvs@cvs.gnupg.org:/cvs/aegypten checkout dirmngr
    cd dirmngr
    ./autogen.sh
    ./configure --prefix=/quelque/part
    make install

  5. Compilez OpenSC (Si vous souhaitez avoir le support smartcard. Actuellement, il est nécessaire d'avoir des tar-balls spéciales pour Ägypten. Vous pouvez obtenir les dernières versions sur notre site ftp).

    cvs -z3 -d :pserver:cvs@cvs.opensc.org:/pub/cvsroot checkout opensc
    cd opensc
    ./bootstrap
    ./configure --prefix=/quelque/part
    make install

  6. Compilez newpg

    cvs -z3 -d :pserver:anoncvs@cvs.gnupg.org:/cvs/aegypten checkout newpg
    cd newpg
    ./autogen.sh
    CPPFLAGS=-I/quelque/part/include/ ./configure --prefix=/quelque/part
    make install

    Notez : CPPFLAGS est paramètré pour trouver ksba.h

  7. Compilez GpgME

    cvs -z3 -d :pserver:anoncvs@cvs.gnupg.org:/cvs/gnupg checkout gpgme
    cd gpgme
    ./autogen.sh
    mkdir build
    cd build
    ../configure --prefix=/quelque/part --with-gpgsm=/quelque/part/bin/gpgsm --enable-gpgmeplug --enable-maintainer-mode
    make install

    Notez : l'option --with-gpgsm=/quelque/part/bin/gpgsm est optionnelle si le binaire gpgsm se trouve dans l'un des répertoires spécifiés dans la variable d'environnement PATH.

  8. Compilez qt 3.0

    Téléchargez qt-x11-free-3.0.4, ou une version plus récente.

    tar xvfz qt-x11-free-3.0.4.tar.bz2
    cd qt-x11-free-3.0.4
    export QTDIR=$PWD
    ./configure -prefix=/quelque/part -system-zlib -qt-gif -system-libpng -system-libjpeg -plugin-imgfmt-mng -thread -no-stl -no-xinerama -no-g++-exceptions
    make install

  9. Compilez un HEAD kdelibs

    Il est recommandé de ne pas l'installer dans le répertoire par défaut, si vous souhaitez ne pas toucher à la stabilité de votre environnement.

    cvs -d :pserver:anonymous@anoncvs.kde.org:/home/kde login [nécessaire une seule fois]
    appuyez sur Entrée lorsque le mot de passe vous est demandé

    cvs -d :pserver:anonymous@anoncvs.kde.org:/home/kde checkout kdelibs
    cd kdelibs
    make -f Makefile.cvs
    ./configure --prefix=/quelque/part
    make install

  10. Compilez un HEAD kdebase si vous souhaitez envoyer votre courrier par SMTP

    La procédure est analogue à celle décrite ci-dessus. Vous devriez compilez kdebase si vous voulez envoyer des emails par SMTP (nécessite kioslave, contenu dans kdebase).

    cvs -d :pserver:anonymous@anoncvs.kde.org:/home/kde -z3 co kdebase

  11. Compilez kmail avec Ägypten

    cvs -d :pserver:anonymous@anoncvs.kde.org:/home/kde checkout kdenetwork
    make -f admin/Makefile.cvs
    ./configure --prefix=/quelque/part
    make install

    Après cette première compilation, il suffirat de mettre à jour par cvs et de compiler le répertoire kdenetwork/kmail, à moins que l'on vous précise le contraire.

  12. Compilez le module pinentry

    cvs -z3 -d :pserver:anoncvs@cvs.gnupg.org:/cvs/aegypten checkout pinentry
    cd pinentry
    ./autogen.sh
    ./configure --prefix=/quelque/part
    make install

Utilisation de S/MIME

Suivez ces étapes (vous pouvez sauter la génération de clefs, si vous voulez uniquement vérifier des messages signés ou en chiffrer un) afin de pouvoir utiliser les premières possibilités S/MIME (notez de nouveau que le développement est rapide et que les instructions peuvent changer. Cette liste est aussi incomplète : communiquez-nous les points où vous aimeriez plus de détails) :

  1. Créez quelques répertoires :

    mkdir ~/.gnupg-test
    mkdir ~/.gnupg-test/private-keys-v1.d

  2. Spécifiez l'agent utilisé

    Ajoutez dans le fichier ~/.gnupg-test/gpgsm.conf :
    agent-program /quelque/part/bin/gpg-agent
    dirmngr-program /quelque/part/bin/dirmngr

  3. Spécifiez le programme pinentry utilisé (pinentry-gtk, pinentry-qt ou pinentry-kde)

    Ajoutez dans le fichier ~/.gnupg-test/gpg-agent.conf add:
    no-grab
    pinentry-program /quelque/part/bin/pinentry-gtk
    debug 1024

  4. Créez un certificat pour les requêtes smime (ne pas l'utiliser lors d'un échange nécessitant de la sécurité)

    cat <<\EOF > ~/tmp/script.assuan
    INPUT FD=4
    OUTPUT FD=5 --armor
    GENKEY
    BYE
    EOF

    cat <<\EOF > ~/tmp/parms.txt
    key-type: rsa
    key-length: 512
    key-usage: sign, encrypt
    name-dn: C=de,O=MyOrg,OU=Testlab,CN=Joe Tester
    name-email: toto@nullepart.org
    EOF

    gpgsm --server <~/tmp/script.assuan 4<~/tmp/parms.txt 5>~/tmp/out.pem

  5. Vous pouvez aussi signer cette clef par une authorité de certification (CA)

    Soit vous envoyez une requête de certificat à un CA officiel, soit vous faîtes votre propre CA avec OpenSSL pour ce cas (la suite est un extrait du HOWTO: Creating your own CA with OpenSSL by Pheng Siong Ng ) :

    #[Installez OpenSSL]
    mkdir ~/CA
    cd ~/CA
    localisez CA.pl # copiez le fichier dans ~/CA.
    ./CA.pl -newca # répondez aux questions

    cp ~/tmp/out.pem newreq.pem
    ./CA.pl -sign # entrez le mot de passe du CA et confirmez la certification

  6. Importez le certificat signé :

    gpgsm --import ~/CA/demoCA/cacert.pem # pour avoir le certificat du CA gpgsm --import ~/CA/newcert.pem

  7. Configurez KMail

    Dans la section Sécurité, ajoutez le Plug-In /quelque/part/lib/gpgme/gpgme-smime.so pour S/MIME et/ou /quelque/part/lib/gpgme/gpgme-openpgp.so pour OpenPGP. Activez celui que vous préférez (dans notre cas, S/MIME).

  8. Actuellement, vous devez encore configurer la connection à gnupg dans KMail

Maintenant, envoyez-vous un mail signé avec s/mime. Si cela ne fonctionne pas, contactez-nous sur gpa-dev.

Utilisation d'OpenPGP

  1. Créez votre paire de clefs OpenPGP

    Tout d'abord, familiarisez vous avec GnuPG si vous ne savez pas comment cela fonctionne. gpg est probablement déjà installé sur votre système.

  2. Spécifiez votre identité OpenPGP

    Actuellement, cela nécessite encore un petit travail :
    Dans la section [Identity] de ~/.kde/share/config/kmailrc entrez vos données :
    Default PGP Key=12345678
    Email Address=aegyptentest@where.ever.de
    Identity=Default
    Name=Aegyptentest

  3. Configurez KMail

    Dans la section Cryptography, ajoutez le Plug-In /quelque/part/lib/gpgme/gpgme-smime.so pour S/MIME et/ou /quelque/part/lib/gpgme/gpgme-openpgp.so pour OpenPGP. Activez votre module préféré (dans notre cas, OpenPGP).

Maintenant, vous devriez pouvoir effectuer une vérification de signature, chiffrage, déchiffrage et signature basés sur OpenPGP.

Utilisation de Smartcards

Le projet Ägypten utilise
  • TeleSec NetKey Card
  • Towitoko ChipDrive micro USB (preféré) et V24
Ces périphériques sont sûrs de fonctionner. D'autres le peuvent aussi (pourriez-vous nous en faire part?).

Configurez OpenSC

Vous devez installer un fichier opensc.conf dans {prefix}/etc; un exemple est uinclus dans opensc-0.6.1-wk-20020415/etc/. Nous utilisons la base de pcsc.

Configurez le lecteur de Smartcard

Ce qu'il y a à faire est très dépendant de votre système.

USB: lisez http://www.linux-usb.org/ pour savoir comment connecter votre lecteur USB.

Cet exemple montre la démarche à suivre avec une Debian GNU/Linux Woody, Kernel 2.4.18 - le lien ci-dessus devrait être votre source première d'informations pour connecter votre lecteur USB!

mknod ttyUSB0 c 188 0 # si cette entrée n'existe pas encore
mount -t usbdevfs none /proc/bus/usb # si cette entrée n'existe pas encore
apt-get install libtowitoko2
modprobe usb-uhci # pour installer l'usb, si ce n'est pas encore fait
modprobe pl2303 # pour le lecteur Towitoko Chipcard
apt-get install usbview # utilisez cette outil pour vérifier le fonctionnement des périphériques.
V24: installez simplement libtowitoko2 et configurez le port série approprié.

Préparation d'une carte pkcs15

Notez : Il se peut que votre carte soit inutilisable - cela est généralement dû à un bogue ou un problème d'installation. Nous sommes assez chanceux à ce point, car seul un fichier sur une carte n'est plus supprimable.
  1. Créez un nouveau certificat pour les tests, ainsi qu'une clef utilisant OpenSSL (voir ci-dessus).
  2. Insérez la carte Netkey et lancez votre opensc-explorer. Saisissez ces commandes sur la ligne de commande d'opensc-explorer (nous supposons qu'il s'agit d'une nouvelle carte avec un NullPIN de 6 byte) :
    change CHV0 00:00:00:00:00:00  "admin0"
    get 2F00 saved-2F00
    del 2F00
    quit
    

    Nous devons effacer le fichier GDO, car la taille de l'enregistrement est trop court pour notre application. Notez le nouveau mot de passe du SO (Security Officer) ("admin0") quelque part.

  3. Initialisation de la carte :

    pkcs15-init -C

    On vous demande alors 2 PINs et PUKs; utilisez au moins 6 caracatères. Le PUKs n'est pas utilisé, le mot de passe SO le remplaçant.

  4. Ecrivez un certificat sur la carte :

    pkcs15-init -X /quelque/part/my_cert.pem

  5. Ecrivez une clef secrète sur la carte :

    pkcs15-init -S /quelque/part/my_private_key.pem

    On vous demande alors un mot de passe PEM, afin de protéger la clef dans le fichier PEM et pour CHV2, où vous entrez le mot de passe/PIN défini dans l'étape 2.

    Notez que vous verrez un message d'erreur - n'y prêtez pas attention.

  6. Vérifiez que tout fonctionne bien

    $ pkcs15-tool --list-pins

    Après quelques lignes, vous devriez obtenir :

    Card has 2 PIN code(s).
    
    PIN [Authentication PIN]
            Com. Flags: 0x13
            Auth ID   : 01
            Flags     : [0x03], case-sensitive, local
            Length    : 6..16
            Pad char  : 0x00
            Reference : 128
            Type      : 2
            Path      : 3F005015
    
    PIN [Non-repudiation PIN]
            Com. Flags: 0x13
            Auth ID   : 02
            Flags     : [0x03], case-sensitive, local
            Length    : 6..16
            Pad char  : 0x00
            Reference : 129
            Type      : 2
            Path      : 3F005015
    

    pkcs15-tool -c

    Card has 1 certificate(s).
    
    X.509 Certificate [Authentication Certificate]
             Flags    : 0
             Authority: no
             Path     : 3F0050159001
             ID       : 45
    

    pkcs15-tool -k

    Card has 1 private key(s).
    
    Private RSA Key [Authentication Key]
            Com. Flags  : 0
            Usage       : [0x4], sign
            Access Flags: [0x1D], sensitive, alwaysSensitive, neverExtract,local
            ModLength   : 1024
            Key ref     : 0
            Native      : no
            Path        : 3F0050155001
            Auth ID     : 01
            ID          : 45
    
Au cas où vous voudriez effacer la structure PKCS15, notamment en cas de (très rares) problèmes; vous pouvez utiliser ce script :
opensc-explorer <<EOF
cd 5015
del 9001
del 5002
del 5001
del 4404
del 4402
del 4401
del 5032
del 5031
del 0011
del 0001
cd ..
del 5015
EOF
Si vous voulez travailler avec les fichiers PIN crées sous 5015 DF, il faut que vous sachiez que vous devez utiliser CHV128 et CHV129 avec la commande d'opensc-explorer "ver" et "change".

Utilisation d'une carte préparée pkcs15

  1. Spécifez le programme scdaemon :

    Dans le fichier ~/.gnupg-test/gpg-agent.conf, ajoutez :
    scdaemon-program /quelque/part/bin/scdaemon

  2. Enregistrez la carte avec gpgsm:

    gpgsm --learn-card

  3. Maintenant, vous pouvez utiliser votre carte, par exemple pour créer votre signature :

    gpgsm -sbvu 'user_id_of_new_cert' plain > plain.sig

    (Si vous n'aviez pas de clef secrète avant, la user_id de la carte est maintenant celle part défaut).

    Une fenêtre de dialogue pour entrer le PIN devrait apparaître et vous demander le PIN d'authentification de la Smartcard (C'est ce que vous avez entré comme CHV0 si vous avez créez la structure pkcs15 vous-même).

    Une fenêtre apparaitra aussi pour vous demander d'insérer votre carte, si vous l'avez retirée du lecteur, ou que vous en utlisez une autre.

Discussion

Les liens suivants ont pour but de cataloguer les différentes discussions autour des choix technologiques, notamment pour décider si le projet Ägypten suivra un chemin ou sur un autre.

Intégration dans KMail

L'intégration de S/MIME basé sur gpg et le support d'OpenPGP dans le projet Ägypten implique un suivi strict du calendrier, ainsi qu'une structure pour supporter d'autres MUAs non-KDE.

Il est prévu de concilier ces deux aspects le mieux possible avec le développement de KDE. Ceci signifie qu'il faudrat réduire au maximum les parties existantes uniquement pour palier aux besoins d'Ägypten, et qui seront abandonnées plus tard, lorsque KDE sera plus avancé.

Quelques activités de KDE dans un domaine identique ou voisin d'Ägypten :

Intégration à Mutt

Une tar-ball spéciale d'Ägypten intégré à Mutt est disponible sur le site ftp.gnupg.org (voir la description ci-dessus).

Hormis Ägypten, d'autres extensions pour Mutt sont disponibles, tel que ce patche S/MIME pour Mutt. Celui-là est basé sur OpenSSL.

KAdressbook supportant LDAP

La fonctionnalité LDAP permettra à l'utilisateur de rechercher une information en tapant un nom (ou une partie) dans un champs. En effet, l'application questionnera le serveur LDAP et affichera ensuite la liste des résultats. L'utilisateur pourra alors choisir d'ajouter une adresse à son carnet d'adresses local.

Il a été décidé que l'application "KAddressbook" aurait la fonctionnalité LDAP, car elle utilise la bibliothèque la plus moderne et dont le développemen est le plus actif dans KDE -- libkabc. Le développement de l'alternative libkab a été officiellement arrêté.

Comment gérer les certificats et LDAP

Base

Un serveur LDAP peut en principe avoir un certificat smime associé à une entrée pour une personne. Cette entrée a aussi l'adresse email en attribut. Le plus important est que nous pouvons avoir plusieurs adresses email lors de la recherche d'une personne. Pour identifier le bon certificat, nous pouvons utiliser son empreinte.

En principe, le certificat devrait contenir l'information rendant possible la découverte du point de distribution pour les CRLs du CA. Ce qui fait qu'en théorie, il ne faudrait pas spécifier le DNS et le numéro du port du serveur LDAP pour les CLRs. Ainsi, ce serait parfait d'avoir un certificat valide et le chemin sûr pour les certificats. En pratique, nous pourrions essayer les serveurs LDAP que nous avons utilisé pour les certificats dans le cas d'une recherche de CLR d'un certificat spécifique.

Relation de KAddressbook's avec Kmail

Une idée de concept est que KAddressbook ne gère pas directement les certificats, car il dépendrait alors de gpgme pour la plupart des actions. Nous souhaitons que notre KAddressbook ne s'occupe que des personnes et de leurs adresses email lors d'une requête à un serveur ldap.

Il transmet uniquement l'adresse email, ainsi que quelques détails supplémentaires à KMail. KMail doit alors décider s'il veut utiliser le chiffrage, et par quelle méthode. Si KMail choisit un chiffrage par s/mime, il se charge de trouver un certificat pour cette adresse email. Maintenant, KMail (peut-être en collaboration avec certmanager) appellera la routine de chiffrage pour rechercher un certificat adapté. Cette routine recherchera aussi des serveurs ldap externes, si KMail le lui demande.

La raison pour laquelle l'empreinte doit être enregistrée en supplément dans KAddressbook

Dans le fond, il est clair que KMail peut être présenté avec un certain nombre de certificat pour une simple adresse email. La sélection du certificat adéquat doit être effectuée chaque fois par l'utilisateur, si nous ne nous souvenons pas de l'empreinte du certificat préféré. La bonne place pour l'enregister est dans KAdressbook, à mon avis.

Inconvénient : deux listes de serveurs ldap à questionner

Il y a un inconvénient que KAdressbook et dirmngr (qui fait partie de la routine de chiffrage questionnant le serveur ldap), car les deux ont leurs listes de serveurs à questionner. Actuellement, nous pensons que c' est inévitable, si nous ne voulons pas rendre les choses encore plus compliquées. Théoriquement, il serait possible de synchroniser les préférences KDE et de la routine de chiffrage, mais cela impliquerait pas mal de complications.

En conclusion, il semble que nous ayons besoin d'un GUI pour la liste de dirmngr séparé de l'outil de configuration des serveurs ldap pour KDE/KAdressbook.

Conclusion pour l'implémentation

Nous avons besoin d'une solution pour KMail ou le certmanager, afin de transmettre des données complémentaires à KAdressbook, que KAdressbook pourrait rendre. En particulier, ces données comprendraient "use mime" et "cert with this fingerprint: xxx".

KMail ou certmanager utiliseraient les fonctions de recherches de gpgme au cas où ils ne trouveraient pas de certificat approprié.

Nous avons besoin d'un GUI pour la modification de la configuration de dirmngr, concernant les serveurs ldap à questionner lors de la recherche de certificats.

Smartcards

Brève introduction

ICC ou Smartcards (cartes à puce) sont de véritables petits ordinateurs avec un OS utilisant une EEPROM au lieu d'un disque dur, et juste un I/O série, un jeu de commande standard simple et des fichiers protégés par ACL. Les noms de fichiers sont sur 16bits, vous avez des répertoires (appelés DFs) jusqu'à 4 niveaux et des fichiers réguliers (EFs). EFs may come in a transparent form, record structured or circular structured. Il y a des commandes pour la lecture et l'écriture de fichiers, pour vérifier les PINs, où les PIN sont enregistrés dans un fichier sur la CARD avec un ACL défini à NO-READ. Les cartes nécessaires pour Ägypten doivent pouvoir effectuer des opérations de cryptographie, tel que la génération MAC, signature et vérification de signature.

La puce est basée normallement sur un 8051 mais améliorée avec un accélérateur de chiffrage. Si vous détachez la puce de la carte plastique, vous remarquerez que cette puce est derrière les contacts dorés. Ces contacts permet de fournir l'alimentation, la date et les données séries.

SCdaemon

Les avantages de SCdaemon:
  • C'est un module qui peut être utilisé par des applications indépendantes, tel que des programmes qui vérifient uniquement si la carte est insérée ou qui ont juste besoin d'accéder à des informations non-secrètes.
  • Un bogue dans ce démon ne se propage pas à gpg-agent. Forte encapsulation dûe aux barrières entre processus.
  • Il n'est pas nécessaire d'incorporer du code X.509 dans gpg-agent. Il est uniquement nécessaire dans le SCdaemon -> moins de dépendances. C'est le seul module qui doit interagir avec le SC backend OpenSC. Plus de stabilité du système; un crash n'affecte pas gpg-agent et gpg-agent peut redémarrer SCdaemon.
  • Facilité de maintenance et de développement.

Interface utilisateur (UI) pour Smartcards

Un aperçu des exigences de l'UI pour les cartes :

La préparation de cartes (initialisation du système de fichiers de la carte) devrait être réalisée par un utilitaire externe, car il peut renvoyer un grand nombre de messages d'erreur etc. Un outil en ligne de commande est bien adapté à ce travail.

Notez qu'en général, l'utilisateur n'a pas besoin de le faire, car il peut acheter des cartes déjà initialisées. S'il est nécessaire de faire une interface plus conviviale, il serait bien que quelqu'un se dévoue pour mener un tel projet.

Pour enregistrer une clef sur la carte, la solution retenue est celle d'un OS bootable. Cependant, nous devrions être capable de le faire dans notre environnement, après l'affichage d'avertissements adéquats. Pour ceci, nous avons besoin d'une case à cocher (avec 'false' par défaut) dans le dialogue relatif à la génération de clef. Le reste est fait en utilisant pinentry.

L'intéraction la plus classique avec SC, intervient lorsque l'utilisateur introduit sa carte. Le SCdaemon devrait la détecter, mais pour qu'il en soit ainsi, il faut qu'il soit démarré. La meilleure solution est d'indiquer à gpgsm de rechercher la carte - KDE pourrait incorper un service de notifications à chaque fois que l'état du lecteur de carte change, mais cette partie ne fait pas partie des buts du projet Ägypten.

Dans la plupart des cas, gpg-agent/SCdaemon remarquera que la carte a déjà été utilisée et, du coup, l'accès à la carte est transparent. Cependant, pour les cartes nouvelles ou inconnues, nous sommes obligés de demander à l'utilisateur ce qu'il faut faire. Pour séparer cette tâche de l'UI, nous préferons utiliser pinentry. Après qu'un utilisateur est introduit sa carte, il verra apparaître un message, lui posant quelques questions à propos de celle-ci ("Ceci est une nouvelle carte - que veux-tu que j'en fasse?"). L'utilisateur peut répondre qu'il ne sait pas quoi faire, la boîte de dialogue disparaissant alors (mais elle réapparaitra à chaque fois que cette carte est réintroduit). Sinon, l'autre réponse est "Oui, je veux utiliser une clef secrète sur cette carte", après quoi gpg-agent demande le PIN, afin de vérifier qu'il est bien l'utilisateur légitime et enregistre la carte dans la base de données de clefs secrètes sur le disque.

Si l'utilisation d'une clef secrète est nécessaire plus tard, gpg-agent cherchera dans sa base de clefs secrètes, et utilisera la clef enregistrée sur le disque ou (s'il y a une marque que la clef est sur une SC), demandera à l'utilisateur d'introduire la carte appropriée.

Ainsi, le changement au niveau de l'UI est minimal et nécessite une case à cocher.

Il reste encore la question de savoir comment désenregister une clef de la base de données, après qu'elle est expirée, ou qu'elle ne soit plus accessible.

modules d'accès Smartcard

Le projet Ägypten utilisera OpenSC pour incorporer les Smartcards. PCSC Lite du projet MUSCLE sera utilisé pour établir les principales fonctionnalités. Plus tard, PCSC sera remplacé par une nouvelle implémentation. La raison principale étant que la licence actuelle de PCSC n'est pas compatible avec l'un des objectifs fixés pou r a licence d'Ägypten (GPL). Un autre avantage d'OpenSC est que le code pkcs-15 fonctionne et que l'origine du code est claire.

Une alternative à OpenSC est SCEZ, mais dans ce cas aussi, la licence (une vieille licence BSD avec des clauses publicitaire dans les archives actuelles) fait que nous préfèrons la licence LPGL d'OpenSC. Toutefois, les derniers développements de SCEZ sont placés sous deux licences, LPGL et la nouvelle BSD.

Liens :

A Frequently Asked Questions list (FAQ) for alt.technology.smartcards (outdated but still useful)
OpenSC - SmartCard library with support for PKCS#15 compatible cards (License: LGPL)
SCEZ - Smart Card Library (License: old BSD)
MUSCLE: Latest Stable PC/SC
Smartsign (GPL)
Libchipcard (LGPL)

Guide pratique des Smart Card par W Rankl & W Effing Ce livre est aussi disponible en allemand, par Hanser (Handbuch der Chipkarten, 3. Auflage, ISBN 3-44621115-2).

Comment utiliser une carte NetKey

Pour les experts, il y a une description sur comment préparer une carte TeleSec NetKey.

D'autres projets en corrélation ou présentant des points intéressants

X.509 Style Guide par Peter Gutmann

Bibliothèque S/MIME en Freeware (SFL) (Le status de logiciel n'est pas clair, GPL partielle)

HOWTO: Programmation S/MIME en Python avec M2Crypto

X.509 Path Validation Test Suite for Conformance tests for relying parties that validate X.509 certification paths at the National Institute of Standards and Technology.

Tutoriel Linux LDAP : Déploiement d'OpenLDAP - Installation et configuration (V1.2 / 2.0)

passerelle WWW pour serveur LDAP

OpenSSL Contient une implémentation libre de CA.

pyCA - X.509 CA Logiciel pour implémenter une autorité de certifications X.509/PKIX (utilise OpenSSL)

gpkcs11 cryptographic token access for Unix

RFC822 Address Parser Library

->Deutsch | ->English

Liens

KMail
Mutt
GnuPG
Sphinx

Intevation
code g10
Klarälvdalens Datakonsult
Bundesamt für Sicherheit in der Informationstechnik

Contact

Vous pouvez contacter l'équipe du projet par l'intermédiaire de plusieurs listes de diffusions :
gpa-dev (coordination technique)
 
kmail (KMail)
gnupg-devel (Développement de GnuPG)
 
Coordination du projet :
<bernhard@intevation.de>
<jan@intevation.de>

Cette traduction a été réalisée par Jérôme Pansanel <pansanel@chimie.u-strasbg.fr>. Elle est basée sur la page anglaise du 2002/05/31 14:54:46.
Dernière modification de la page: $Date: 2003-01-27 12:11:36 $
Copyright (c) Intevation, Jerome Pansanel, la copie intérgrale et la distribution de cette page entière sont autorisées sur tous supports, si cette mention est préservée.