Arborescence des pages

Vous regardez une version antérieure (v. /wiki/display/SIGN/Esup-DSS-Client) de cette page.

afficher les différences afficher l'historique de la page

« Afficher la version précédente Vous regardez la version actuelle de cette page. (v. 34) afficher la version suivante »

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 :

  • Compatibilté OpenJDK et OpenJFX

  • Suppression des dependances non livrées avec NexU qui empéchait la compilation

  • Ajout d'un plugin utilisant les capacités d'OpenSC pour se connecter aux périphériques materiel de manière native sous Linux, Windows et macOS

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.

À 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")

Fonctionnement

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'esup-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.


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

Les installateurs : https://github.com/EsupPortail/esup-dss-client/releases/latest

Changelog :

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

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.

Cependant il est possible de cloner le projet et le compiler localement. Dans ce cas il est possible d'obtenir le fichier esup-dss-client-jar-with-dependencies.jar. Pour le lancer directement il faut les pré-requis suivants :

  • OpenJDK 17
  • OpenJFX 11

La commande à passer est :

java --add-opens java.base/java.lang=ALL-UNNAMED --module-path <path-to-openjfx> --add-modules javafx.controls,javafx.fxml,javafx.base,javafx.media,javafx.graphics,javafx.swing,javafx.web --add-exports javafx.graphics/com.sun.javafx.application=ALL-UNNAMED --add-exports javafx.graphics/com.sun.javafx.tk=ALL-UNNAMED -Djdk.gtk.version=2.2 -jar esup-dss-client.jar

Sous Linux il peut être necéssaire d'ajouter cette librairie: 

 sudo apt-get install libnss3-tools

Installation sous linux :

Un installateur "izpack" est disponible ici : https://github.com/EsupPortail/esup-dss-client/releases/latest/download/esup-dss-client-installer.jar

Installation sous macOS

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 ensuite le lancer en cliquant sur le "bouton droit". Le package est bien signé avec le certificat du Consortium ESUP-Portail mais sans forcer il refusera de s'ouvrir (certainement car il contient des scripts sh)

Sans le package

Il faut installer OpenJDK 17 + openJFX (avec zulu par exemple : https://www.azul.com/downloads/?version=java-17-lts&os=macos&package=jre-fx#zulu)

Il faut aussi installer OpenSC. Un dmg est disponible ici : https://github.com/OpenSC/OpenSC/releases/download/0.23.0/OpenSC-0.23.0.dmg

Ces deux installation peuvent aussi être effectées via homebrew voir : https://brew.sh/

Les commandes à lancer seront :

brew install opensc
brew install zulu

Enfin lancer le jar https://github.com/EsupPortail/esup-dss-client/releases/latest/download/esup-dss-client.jar


java --add-opens java.base/java.lang=ALL-UNNAMED --module-path <path-to-openjfx> --add-modules javafx.controls,javafx.fxml,javafx.base,javafx.media,javafx.graphics,javafx.swing,javafx.web --add-exports javafx.graphics/com.sun.javafx.application=ALL-UNNAMED --add-exports javafx.graphics/com.sun.javafx.tk=ALL-UNNAMED -Djdk.gtk.version=2.2 -jar esup-dss-client.jar

Sous Mac, le système est succeptible de proposer l'utilisation de la clé pour vérouiller la session ou l'élévation de droits (dans le cas où les pilotes sont installés).

Dans ce cas si le mot de passe est demandé par le système, c'est le code pin qu'il faut saisir. Une confusion sur trois saisies d'affilées va vérouiller le certificat !

Installation sous Windows

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 verifier le fonctionnement d'OpenSC vous pouver lancer la commande suivante :

pkcs11-tool --login --test

#Sous MacOs : /Library/OpenSC/bin/pkcs11-tool --login --test

On doit alors entrer le code PIN. Le resultat doit ressemblé à ça :

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

Pour obtenir la liste des drivers supportés :

opensc-tool -D

En version 0.23.0 on obtient :

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

Compilation / Obtention des installateurs

En construction

Pour obtenir l'installateur PKG, il faut être sous macOS. Voici les pre-requis à installer :

git clone du projet

mvn clean package -Dmac.os=true

En cas d'erreur : Gtk-Message: 21:22:16.442: Failed to load module "canberra-gtk-module"


sudo apt-get install libcanberra-gtk-module


  • Aucune étiquette