Création d'un certificat numérique pour la signature des leçons
En quoi consiste la signature numérique ?
La signature numérique est un mécanisme permettant de garantir l'intégrité d'un document électronique une fois signé et d'en authentifier le signataire.
Comment ca marche ?
Pour signer des données, nous utilisons un certificat au format PEM (couple certificat / clé privée) sur un "hash" de données.
L'étape préalable est donc la création du certificat. 2 solutions possibles :
- Utiliser un certificat obtenu auprès d'un autorité compétente (payant)
- Auto générer son certificat (gratuit)
Paramètrage dans planning.aero
Pour enregistrer les paramètres sur planning.aero: section paramètres -> paramètres-> divers -> pédagogie
Auto générer son certificat
Pour générer un certificat, nous allons utiliser openssl depuis un shell
$ openssl req -newkey rsa:2048 -new -nodes -x509 -days 3650 -keyout moncertif.key -out moncertif.cert
Il sera valable 3650 jours, la clé privée sera moncertif.key, le certificat sera moncertif.cert
Vous devrez répondre à quelques lors de la génération, ci dessous un exemple de génération
Generating a 2048 bit RSA private key
..............+++
..................................................................................................................+++
writing new private key to 'moncertif.key'
-----
You are about to be asked to enter information that will be incorporated into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value, If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) []:FR
State or Province Name (full name) []:France
Locality Name (eg, city) []:Montpellier
Organization Name (eg, company) []:planning.aero
Organizational Unit Name (eg, section) []:
Common Name (eg, fully qualified host name) []:planning.aero
Email Address []:contact@planning.aero
Ce qui est signé (hash)
Le hash correspond aux données JSON encodées en base64. Les données intégrées sont:
- ID utilisateur
- Date progression
- Nombre d'heure progression
- Note progression
- Commentaire progression
- Temps tachy du vol
- Temps moteur du vol
- Temps de vol
- ID instructeur
- ID leçon
- ID logsbook (vol ou théorique)
- ID progression
Signer une leçon
Pour signer une leçon, il existe 2 formulaires
- Formulaire admin: permet de faire signer l'instructeur ainsi que l'élève
- Formulaire élève: permet de faire signer l'élève de façon autonome
Pour valider uns signature l'élève et/ou l'instructeur doit indiquer son mot de passe.
Vérifier une signature
Pour vérifier une signature vous aurez besoin du certificat.
Cela permettra de valider que la signature à bien été faite à partir de la clé privée de ce certificat.
Depuis la fiche de progression d'un élève, cliquez sur l'onglet détails, affichez les leçons d'un chapitre, cliquez sur "progression signée".
Vous pouvez ainsi vérifier l'exactitude des données.
Suppression d'une signature
En cas de mise à jour du vol ou du cours théorique, la signature est supprimée
Liens externes:
Installer Cygwin et openssl: https://www.ssl.com/how-to/install-openssl-on-windows-with-cygwin/