Cela marche presque tout seul depuis qu’il n’y a plus d’applets. Il faut juste avoir son revenu fiscal de référence, comme sous Windows.
Cette année, je suis maintenant en 64 bits. Cela a été l’occasion de découvrir les problèmes que posent les choix de conceptions de la partie cliente du soft de télédéclaration. J’ai l’impression que ces problèmes sont nouveaux et liés à la version 2008, mais je m’avance un peu. Des mauvais choix du passé n’éclatent peut-être au grand jour que cette année.
J’ai utilisé la solution inscrite dans un post de http://linuxfr.org : un live CD linux, en l’occurrence, la Kaella 3.1.1 de Linux Azur (à base de knoppix). Moyennant l’importation/exportation sur clef USB de la signature et de l’attestation, cela fonctionne directement du premier coup. Note: il n’y a pas ou peu de supports directs pour le wifi.
Une autre solution testée en direct devant moi : sous Ubuntu “Hardy Heron”, avec Firefox 3 (beta), java6 et java5, la signature java ne semble pas fonctionner. Néanmoins cela fonctionne avec Firefox 2, mais il faut installer un lien symbolique dans le repertoire plugin de firefox 2, à la main.
Enfin, je n’ai pas trouvé pourquoi, mais dans ma debian sid 32bits, presque à jour (en iceweasel/firefox 2, java 1.5 + plugins), je n’arrive pas non plus à signer.
En résumé, vous avez besoin d’être sous firefox 32bits (pour avoir le plugin) avec un java sun 32 bits pour signer. Pour déclarer, je l’ai fait avec konqueror 64bits et java 64 bits.
À mon sens, l’intérêt principal de Java est la portabilité. L’implantation faîte du processus de signature est un joli exemple de ce qu’il ne faut pas faire, ou ne pas oublier de faire.
Le processus de signatures télécharge des bibliothèques natives 32 bits qui utilisent d’autres bibliothèques du système, et qui sont ensuite chargées et utilisées par l’applet Java au travers de JNI.
Je vois deux erreurs dans cette façon de faire : d’abord, fournir du code 32bits natif impose d’avoir un java 32bits. Avec un Java 64 bits, JNI ne réussie pas à utiliser ces bibliothèques. C’est dommage pour toutes les machines 64bits installés en 64bits même si il est facile d’installer un java 32 bits sur un système 64 bits. Ensuite l’utilisation de bibliothèques externes induit une dépendance envers l’installation du système. Si le système n’a pas toutes les bibliothèques nécessaires, ou bien des versions trop anciennes, ou trop récentes, cela ne fonctionne pas.
La solution évidente est de fournir uniquement des class java utilisables par toutes les JVM. Si la raison obscure pour lequel cette mécanique compliquée a été faîte, persiste, il suffit de capturer les exceptions à l’importation et retomber sur une version “pure java” en cas de problèmes.
Le processus de signature cherche à lire lui-même les fichiers cert8.db ou cert7.db contenant le certificat dans le répertoire de configuration de firefox de l’utilisateur. Pour cela il demande le mot de passe.
Cela ne fonctionne pas si on utilise un autre navigateur, comme Konqueror par exemple, puisqu’il stocke les certificats différemment. En fait, je ne comprend pas ce besoin de lire le certificat alors qu’il a déjà authentifié la connexion. Son utilisation directe pour signer une communication déjà signée ne me parait pas apporter une quelconque sécurité supplémentaire.
En cas d’échec de l’importation, il faudrait demander à l’utilisateur où se trouve son certificat et de faire une importation directe.
Pour pouvoir remplir la télédéclaration avec konqueror/java en 64bits, il a fallu que je le fasse mentir sur son identité, sinon le site web déclarait une erreur XXX. Après cette configuration, tout la partie déclaration s’est passée sans histoire.
En cas de problème, la partie native de l’applet Java ne remonte qu’une information très partielle du genre “erreur 100”. Être un peu plus loquace ne serait pas un mal.
Le mieux serait encore de faire un processus public et bien documenté de déclarations et de signatures afin de recueillir commentaires et conseils avant d’essuyer les plâtres avec les utilisateurs.
L’applet crée dans le répertoire utilisateur un répertoire caché (.TaoUSign/) où elle stocke ses bibliothèques partagées binaires ! un .so ! Ce binaire est 32 bits.
Cette bibliothèque partagée essaie de charger d’autres bibliothèques standards 32 bits. Celles ci sont disponibles avec xulrunner version 32 bits, mais dans deux répertoires non standard (/emul/ia32….), il faut donc positionner LD_LIBRARY_PATH avant !
LD_LIBRARY_PATH=/emul/ia32-linux/usr/lib/:/emul/ia32-linux/usr/lib/xulrunner konqueror http://impots.gouv.fr
Pour faire votre télédéclaration, vous devez vous rendre sur le site de télédéclaration des impots puis suivre les instructions.
Le processus est propre et semble fiable, sûr et standard. Le seul point un peu délicat est la récupération du certificat, qui permet de se connecter et de signer sa télédéclaration, mais cela est indépendant du système utilisé.
Cela a fonctionné parfaitement pour moi depuis plusieurs années en utilisant Mozilla Firefox (Iceweasel dans une debian). Il y a des messages d’avertissement lorsque l’on utilise des navigateurs qui n’ont pas été testés, comme konqueror. Je n’ai pas testé mais konqueror sait très bien changer son identité si besoin est et comme il sait gèrer les certificats, il devrait aussi pouvoir effectuer les opérations * ATTENTION: JE N’AI PAS VRAIMENT TESTE KONQUEROR ! * .
En 2004, j’ai fait ma télédéclaration par Internet (J’avais dépassé la date limite de la version papier), sous Linux (Je n’ai pas d’autres systèmes accédant au web). Cela a marche assez bien, mais j’ai dû résoudre quelques problèmes. J’ai recommencé en 2005.
mais c’est mieux si l’applet ne fait pas des choses contraire à la sécurité des usagers de l’applet.
L’applet du service des impots écrivait dans un des répertoires d’installation de Java. C’est mal ! Tout bon système ne laisse pas n’importe quel utilisateur faire ca !
Autoriser votre utilisateur à écrire dans le répertoire “lib/ext” du java que vous utilisez dans le navigateur (en tant que root
chmod a+rwx /…/j2re_XXX/lib/ext, ou mieux, créer un groupe donner ce repertoire à ce groupe (
chown) et abonner votre utilisateur au groupe). La troisième option aurait été d’utiliser les ACLs.
Il suffit de suivre les instructions. Attention à choisir un mot de passe dont vous vous souviendriez l’an prochain. Le certificat est copié dans un répertoire du HOME de l’utilisateur (
~/teleir). Il faut ensuite l’enregistrer dans le gestionnaire de certificats de votre navigateur préféré.
Le remplissage fonctionnait assez bien (enfin je trouve que le remplissage de la partie simulation de l’époque, identique à la version papier, etait plus “intuitif” (aussi intuitif qu’une feuille d’impot :-)
mais j’avais un petit soucis à la signature :
Je cliquais sur signez et le serveur fesait semblant de ne pas répondre. Au bout de trois jours d’essais, j’ai eu un doute :-)
J’ai fini par trouver un couriel sur le net qui indiquait que cela ne marchait pas si on mettait des accents. On se demande bien pourquoi Unicode ou UTF-8 se décarcassent.
locale fr_FR; mozilla, si vous avez correctement installé les locales en français sur votre machines (
dpkg —reconfigure localespour la debian) * Vous avez besoin du support du francais dans votre navigateur * (pour debian,
mozilla-locale-fr, mozilla-firefox-locale-fr)
Bref, pour moi ca a marché depuis plusieurs années. Je recommence cette année :-)