| Info |
|---|
Esup-DSS-Client est une nouvelle passerelle, developpée dans le cadre du projet Esup-Signature, entre le poste client et DSS Signature (sous système de signature de la commission européenne). Cette application remplace l'utilisation du client NexU qui n'est plus maintenu depuis 2018. Esup-DSS-Client est à installer sur les postes clients des utilisateurs qui ont besoin de signer avec un certificat local ou materiel. Le code de l’application NexU (sous license EUPL) a été partiellement repris pour coder cette nouvelle application. Les principaux changements par rapport à NexU sont :
Pour fonctionner, le module OpenSC doit être installé sur la machine. Ce projet est disponible ici : https://github.com/OpenSC/OpenSC. Comme l'accès au support crypto est natif (pcsc, apdu) il n'est pas nécessaire d'installer un pilote sur la machine cliente. |
| Remarque |
|---|
À l'université de Rouen la signature est concluante avec un certificat obtenu auprès de certinomis : Offre SERVEUR 2 étoiles / Cachet 2 étoiles G2 - sur carte. L'autorité de certification est reconnue par la trustlist française sous le nom "Certinomis - Prime CA G2" Le materiel reçu est une clé Feitian Technologies, Inc. SCR301 avec une carte Gemalto pris en charge par OpenSC (pilote "idprime : Gemalto IDPrime"). Ici la liste des matériels supportés par OpenSC : https://github.com/OpenSC/OpenSC/wiki/Supported-hardware-%28smart-cards-and-USB-tokens%29 |
Sommaire
Sommaire
GitHub
Le code source est disponible ici : https://github.com/EsupPortail/esup-dss-client
Les installateurs : https://github.com/EsupPortail/esup-dss-client/releases/latest
Ressource
Exemple de notice d'installation / utilisation du client de L'université de Rouen
View file name Notice-Esup-Dss-Client-Univ-Rouen.pdf height 250
Changelog
v1.2.3-RELEASE-21/02/2025
Versions :
- DSS 6.2
- OpenSC 0.26.1
v1.2.2-RELEASE-15/11/2024
Versions :
- DSS 6.1
- OpenSC 0.26.0
- Jetty 12
- OpenJFX 23
v1.2.1-RELEASE-08/04/2024
Versions :
- OpenSC 0.25.1
Améliorations :
- Transmission des messages erreurs
v1.2-RELEASE-29/03/2024
Versions :
- OpenSC 0.25.0
v1.1-RELEASE-15/12/2023
Versions :
- OpenSC 0.24.0
Améliorations :
- Driver propriétaire configurable via UI
- Amélioration UI
v1.0-RELEASE-21/06/2023
Versions :
- OpenJDK 17 minimum
- Compatible Linux, Windows 64 et MacOS
- OpenSC 0.23.0
Fonctionnalités :
- Signature via OpenSC
- Signature via le magasin de clés windows
- Signature via PKCS12
Fonctionnement en lien avec Esup-Signature
...
Le fonctionnement d'Esup-DSS-Client (communication entre le navigateur et le client) est décit sur cette page d'archive à propos de l'application NexU : Application NexU (Archive)
Pour résumer, lorsqu' Esup-DSS-Client est démarré, un serveur web se lance sur le poste client aux adresses suivantes http://localhost:9795 et https://localhost:9895. Les vues web d'esupEsup-signature Signature qui permettent de signer, importent un fichier javascript hébergé à l'adresse http://localhost:9795. Lors de la signature le navigarteur communique avec la clé via les commandes javascript issues d'Esup-DSS-Client.
| Remarqueinfo |
|---|
Esup-signature fait référence à l'adresse http://localhost:9875 pour eviter les problèmes de certificats. Cependant, certains navigateurs sont susceptibles de refuser d'importer le script dans la page web d'esup-signature. De ce fait Esup-DSS-Client ne fonctionne pas sous Safari et il peut arriver que Firefox lève une alerte de securité. Nous n'avons jamais rencontré de problème avec Chrome quelque soit l'OS. |
GitHub :
Le code source est disponible ici : https://github.com/EsupPortail/esup-dss-client
...
| Remarque |
|---|
À l'université de Rouen la signature est concluante avec un certificat obtenu auprès de certinomis : Offre SERVEUR 2 étoiles / Cachet 2 étoiles G2 - sur carte. L'autorité de certification est reconnue par la trustlist française sous le nom "Certinomis - Prime CA G2" Le materiel reçu est une clé Feitian Technologies, Inc. SCR301 avec une carte Gemalto pris en charge par OpenSC (pilote "idprime : Gemalto IDPrime"). Ici la liste des matériels supportés par OpenSC : https://github.com/OpenSC/ |
...
Changelog :
v1.0-RELEASE 21/06/2023
Versions :
- OpenJDK 17 minimum
- Compatible Linux, Windows 64 et MacOS
- OpenSC 0.23.0
Fonctionnalités :
...
OpenSC/wiki/Supported-hardware-%28smart-cards-and-USB-tokens%29 |
Installation :
Pour simplifier l'installation d'Esup-DSS-Client, un installateur est disponible. Celui-ci va installer Zulu (distribution comprenant OpenJdk et OpenJFX), et OpenSC.
...
| Bloc de code | ||||
|---|---|---|---|---|
| ||||
sudo apt-get install libnss3-tools |
Contrôle du fonctionnement d'OpenSC
L'installation et la vérification d'OpenSc sont décrits sur cette page : OpenSC
Installation sous linux :
Un installateur "izpack" est disponible ici : https://github.com/EsupPortail/esup-dss-client/releases/latest/download/esup-dss-client-installer.jar
| Bloc de code | ||||
|---|---|---|---|---|
| ||||
sudo java -jar esup-dss-client-installer.jar |
Installation sous macOS
| Remarque |
|---|
La signature ne fonctionne pas sous Safari car celui-ci refuse l'intégration des scripts provenant de localhost. Bon à savoir, avec esup-dss-client, il n'est pas nécessaire d'installer le pilote de la clé. |
Avec package
Recupérez le package https://github.com/EsupPortail/esup-dss-client/releases/latest/download/esup-dss-client.pkg
...
Il faut aussi installer OpenSC. Un dmg est disponible ici : https://github.com/OpenSC/OpenSC/releases/download/0.2324.0/OpenSC-0.2324.0.dmg
Ces deux installation peuvent aussi être effectées via homebrew voir : https://brew.sh/
...
Installateur windows est disponible ici : https://github.com/EsupPortail/esup-dss-client/releases/latest/download/esup-dss-client-win64.zip
Contrôle du fonctionnement d'OpenSC
Pour obtenir la liste des drivers supportés :
| Bloc de code | ||
|---|---|---|
| ||
opensc-tool -D |
En version 0.23.0 on obtient :
| Bloc de code | ||
|---|---|---|
| ||
Available card drivers:
cardos Siemens CardOS
cyberflex Schlumberger Cyberflex
gemsafeV1 Gemalto GemSafe V1 applet
starcos STARCOS
tcos TCOS 3.0
oberthur Oberthur AuthentIC.v2/CosmopolIC.v4
authentic Oberthur AuthentIC v3.1
iasecc IAS-ECC
belpic Belpic cards
entersafe entersafe
epass2003 epass2003
rutoken Rutoken driver
rutoken_ecp Rutoken ECP and Lite driver
myeid MyEID cards with PKCS#15 applet
dnie DNIe: Spanish eID card
MaskTech MaskTech Smart Card
esteid2018 EstEID 2018
idprime Gemalto IDPrime
coolkey COOLKEY
muscle MuscleApplet
sc-hsm SmartCard-HSM
mcrd MICARDO 2.1 / EstEID 3.0 - 3.5
setcos Setec cards
PIV-II Personal Identity Verification Card
cac Common Access Card (CAC)
itacns Italian CNS
isoApplet Javacard with IsoApplet
gids GIDS Smart Card
openpgp OpenPGP card
jpki JPKI(Japanese Individual Number Cards)
npa German ID card (neuer Personalausweis, nPA)
cac1 Common Access Card (CAC 1)
nqapplet NQ-Applet
default Default driver for unknown cards |
Pour lister les périphériques présents sur la machine :
| Bloc de code | ||
|---|---|---|
| ||
opensc-tool -a |
Exemple de résultat :
| Bloc de code | ||
|---|---|---|
| ||
Using reader with a card: Feitian SCR301 (FFFFFFFFFFFFF) 00 00
xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx |
| Avertissement |
|---|
A cette étape, il est important de vérifier que votre lecteur USB est bien compatible avec OpenSC, voir : https://github.com/OpenSC/OpenSC/wiki/Supported-hardware-%28smart-cards-and-USB-tokens%29 Même s'il n'est pas listé, il y a été possible de signer en insérant la carte sim (avec la carte complète style carte de crédit) dans un vieux lecteur Identiv 4700F. Donc la liste d'OpenSC n'est pas exhaustive. A priori les lecteurs eToken SafeNet et Gemalto SA USB SmartCard Reader ne fonctionnent pas avec OpenSC (à vérifier) N'hésitez par modifier ce bloc pour y insérer les références des lecteurs fonctionnels chez vous (merci d'avance) : |
Configuration
Par défaut, losrque l'on selectionne OpenSC, Esup-DSS-Client va tenter de communiquer avec la clé cryptographique à l'aide de son implémentation "open". Or tous les supports ne sont pas forcément implémentés. Pour plus de détails sur le fontionnement d'OpenSC voir le page OpenSC
Pilote de la clé cryptographique
Depuis la version 1.1 d'Esup-DSS-Client, il est possible de spécifier un driver propriétaire via l'interface graphique en ouvrant la fenetre "Préférences" depuis l'icône de notification.
Sur la fenetre "Préférences" vous pouvez saisir le chemin vers le pilote de votre clé.
Voici des exemples testés à Rouen pour la clé Certinomis :
| Os | Chemin |
|---|---|
| Linux | /usr/lib/pkcs11/libIDPrimePKCS11.so |
| MacOs | /usr/local/lib/libIDPrimePKCS11.dylib |
| Windows | "C:\Program Files (x86)\Gemalto\IDGo 800 PKCS#11\IDPrimePKCS1164.dll" |
Les chemins sont à adaptés en fonction de votre sytème d'exploitation et de l'emplacement d'installation de vos pilotes.
À noter que le chemin sous windows ne fonctionne qu'avec des guillements
Identifiant du certificat
Le deuxième paramètre concerne l'identifiant du certificat. Comme précisé sur cette page, OpenSC#Driverpropri%C3%A9taire, l'identifiant change en fonction du pilote utilisé. Esup-DSS-Client doit touver automatiquement l'identifiant mais si ça n'est pas le cas, il est possible de le "forcé" via le champ "Identifiant du certificat". Pour l'obtenir on utilise le commande OpenSC Pour vérifier l'authetification sur votre matériel, vous pouver lancer la commande suivante :
| Bloc de code | ||||
|---|---|---|---|---|
| ||||
pkcs11-tool --login --test #Sous MacOs : /Library/OpenSC/bin/pkcs11-tool --login --test --module <emplacement du driver> |
Compilation / Obtention des installateurs
Tout d'abord il faut cloner le projet en local sur voitre machine :
| Bloc de code | ||||
|---|---|---|---|---|
| ||||
git clone https://github.com/EsupPortail/esup-dss-client.git |
Sous Linux
En lancant On doit alors entrer le code PIN. Le resultat doit ressemblé à ça :
| Bloc de code | ||||
|---|---|---|---|---|
| ||||
C_SeedRandom() and C_GenerateRandom():
seeding (C_SeedRandom) not supported
seems to be OK
Digests:
all 4 digest functions seem to work
MD5: OK
RIPEMD160: OK
SHA-1: OK
SHA256: OK
Ciphers: not implemented
Signatures (currently only for RSA)
testing key 0 (Private key 1)
all 4 signature functions seem to work
testing signature mechanisms:
RSA-PKCS: OK
SHA256-RSA-PKCS: OK
Verify (currently only for RSA)
testing key 0 (Private key 1)
RSA-PKCS: OK
Unwrap: not implemented
Decryption (currently only for RSA)
testing key 0 (Private key 1) -- can't be used to decrypt, skipping
No errors |
Compilation / Obtention des installateurs
...
mvn clean install |
Vous obtenez dans ./target les fichiers :
- esup-dss-client-installer.jar pour l'installation sous Linux
- esup-dss-client-win64.zip pour l'installation sous Windows
Pour obtenir le jar seul :
| Bloc de code | ||||
|---|---|---|---|---|
| ||||
mvn clean package |
Sous MacOS
Pour obtenir l'installateur PKG, il faut être sous macOS. Voici les pre-requis à installer :
- git (et donc les outils Xcode)
- brew (voir https://brew.sh/index_fr)
- maven via brew (brew install maven)
git clone du projet
Modifier le code développeur dans src/izpack/pkg.sh
| Bloc de code | ||||
|---|---|---|---|---|
| ||||
mvn clean package |
...
-Dmac.os=true |
| Remarque |
|---|
En cas d'erreur : Gtk-Message: 21:22:16.442: Failed to load module "canberra-gtk-module" sudo apt-get install libcanberra-gtk-module |

