Esup-Signature

Arborescence des pages

Vous regardez une version antérieure (v. /wiki/spaces/SIGN/pages/1693384718/Utilisation+d+un+Raspberry+pi+pour+d%C3%A9porter+une+cl%C3%A9+de+signature) de cette page.

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

Vous regardez la version actuelle de cette page. (v. 1) afficher la version suivante »

Nous avons mis en place un cachet établissement RGS** afin de sceller automatiquement nos documents en fin de circuit de signature. Pour cela, nous utilisons un certificat fourni par Certinomis, stocké sur une clé cryptographique Gemalto IDPrime 940c.

Sources et Retex

Nous nous sommes principalement appuyés sur les documentations et retours d’expérience suivants :

Pré-requis

paquets nécessaires :

  • usbip

matériel utilisé : 

  • Clé Gemalto IDPrime 940c
  • Raspberry pi 4 modèle B 4GB + Alimentation usbc 15W (kubii.com)
  • Support de serveur en rack U1 pour Raspberry Pi (kubii.com)

OS : Debian 13 pour ARM

Architecture

  • Serveur USB (Raspberry Pi)
    héberge physiquement la clé et l’exporte via USB/IP.
  • Client (serveur Esup-Signature)
    importe le périphérique USB distant pour l’utiliser localement.

Installation et configuration coté serveur (raspberry pi)

Le paquet usbip permet de configurer le module usbip inclus dans le noyau linux.

Installation paquet et chargement des modules noyau nécessaires
apt install usbip
modprobe usbip-core 
modpreobe usbip-host

Pour charger automatiquement les modules au démarrage du système, créer le fichier /etc/modules-load.d/usbip.conf et inclure le nom des modules (un par ligne)

Identification du périphérique USB

Identifier le numéro de bus sur lequel est connecté le périphérique : 

usbip list -l

Exemple de sortie : 

  - busid 1-1.2 (413c:2107)
   Dell Computer Corp. : KB212-B Quiet Key Keyboard (413c:2107)

 - busid 1-1.3 (096e:0503)
   Feitian Technologies, Inc. : SCR301 (096e:0503) 

Dans cet exemple, le lecteur de carte est connecté sur le busid 1-1.3.

Export manuel du périphérique

Démarrage du serveur
usbipd
Export du périphérique
usbip bind --busid=1-1.3

Le périphérique devient alors accessible à distance.

Par défaut, usbipd écoute sur le port TCP 3240.

Automatisation avec systemd

Pour automatiser l’export au démarrage, créer un service systemd :

[Unit]
Description=export signature cachet sur IP
After=network-online.target

[Service]
Type=simple
User=root
ExecStart=/sbin/usbipd
ExecStartPost=/sbin/usbip bind --busid=1-1.3
ExecStop=/sbin/usbip unbind --busid=1-1.3
Restart=no

[Install]
WantedBy=multi-user.target

Évidemment, si l'on connecte la clé sur une autre port, le busid ne sera plus le même.

Par défaut, usbipd utilise le port 3240.


Installation et configuration coté client (esup-signature)

apt install usbip
modprobe usbip-core 
modeprobe vhci-hcd

Pour charger automatiquement les modules au démarrage du système, créer le fichier /etc/modules-load.d/usbip.conf et inclure le nom des modules (un par ligne)

Périphériques USB distants :

Pour afficher les périphériques exportés par le serveur :

usbip list -r <IPduServeur>

pour attacher un périphérique usb distant : 

usbip attach -r <IPduServeur> -b 1-1.3

Options :

  • -r : adresse du serveur USB/IP
  • -b : busid du périphérique distant

Le périphérique apparaît alors comme un périphérique USB local sur le serveur client.

Automatisation avec systemd

[Unit]
Description=import usb sur IP
After=network-online.target

[Service]
Type=oneshot
User=root
ExecStart=/usr/sbin/usbip attach -r IPduServeur -b 1-1.3
ExecStop=/sbin/usbip detach -p 0
Restart=no
RemainAfterExit=yes


[Install]
WantedBy=multi-user.target

Gestion de plusieurs périphériques

Il est possible d’exporter plusieurs périphériques USB.

Dans ce cas :

  • créer un service systemd par périphérique
  • utiliser le busid correspondant

Il faut également définir le démarrage de usbipd dans un service dédié.

  • Aucune étiquette