Fichier Comptabilité Autres Administration Certification

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
certif:signature [2021/11/24 14:50]
nicolas [Les signatures]
certif:signature [2021/11/25 09:32] (Version actuelle)
nicolas
Ligne 1: Ligne 1:
 |{{:connexe.jpg?40|}} **Sujets connexes**|[[certif:signatureold|Informations sur la signature avant la version 10 de LoGeAs Web]]\\ [[certif:dat#signature_des_enregistrements_dans_la_base|Signature des enregistrements dans les tables]]| |{{:connexe.jpg?40|}} **Sujets connexes**|[[certif:signatureold|Informations sur la signature avant la version 10 de LoGeAs Web]]\\ [[certif:dat#signature_des_enregistrements_dans_la_base|Signature des enregistrements dans les tables]]|
  
-====== Le logiciel de signature : LoGeAs signature ======+====== Partie cryptologie de LoGeAs (chaine aléatoire, cryptage, signature...) ======
 En vue de la certification NF 552, et suite à l'audit de robustesse de celle-ci, la logique des signature dans LoGeAs Web à été revu avec comme objectifs : En vue de la certification NF 552, et suite à l'audit de robustesse de celle-ci, la logique des signature dans LoGeAs Web à été revu avec comme objectifs :
   * utilisé une bibliothèque unique, suivi et reconnu   * utilisé une bibliothèque unique, suivi et reconnu
Ligne 11: Ligne 11:
 |libcrypto-1_1-x64.dll|OpenSSL Librairy|1.1.1.12|1.1.1u|Copyright @1998-2021 The OpenSSL Authors| 2023 | |libcrypto-1_1-x64.dll|OpenSSL Librairy|1.1.1.12|1.1.1u|Copyright @1998-2021 The OpenSSL Authors| 2023 |
 |libssl-1_1-x64.dll|OpenSSL Librairy|1.1.1.12|1.1.1l|Copyright @1998-2021 The OpenSSL Authors| 2023 | |libssl-1_1-x64.dll|OpenSSL Librairy|1.1.1.12|1.1.1l|Copyright @1998-2021 The OpenSSL Authors| 2023 |
-Remarque : Il ne s'agit pas la dernière version d'OpenSSL, mais il s'agit d'une version stable encore maintenu. +Remarque : Il ne s'agit pas la dernière version d'OpenSSL, mais il s'agit d'une version stable encore maintenu.\\ 
-La version 3 d'Opensll n'est à ce jour pas encore supportée par nos outils.+La version 3 d'Opensll n'est à ce jour pas encore correctement supportée par nos outils et semble poser des problèmes en mode win64
 ==== Quelques ressources ==== ==== Quelques ressources ====
   * https://www.openssl.org/   * https://www.openssl.org/
Ligne 38: Ligne 38:
 La partie aléatoire (sel) est stocké dans une base de donnée externe à l'application qui est déployé (en release) sur un serveur indépendant non accessible depuis Internet. \\ La partie aléatoire (sel) est stocké dans une base de donnée externe à l'application qui est déployé (en release) sur un serveur indépendant non accessible depuis Internet. \\
 ==== Les signatures ==== ==== Les signatures ====
-L'algorithme utilisé par le logiciel de signature de Logeas est **RSA en 2048 bits en mode CBC (Cipher Block Chaining)** ([[https://fr.wikipedia.org/wiki/Chiffrement_RSA|Voir l'article Wikipédia]]), il serait difficile d'expliquer ici le fonctionnement de ce type de codage. +La signature mise en place ne concerne pas l'intégralité des données chiffrées, mais seulement leur empreinte. On trouvera dans ce document le détail des éléments pris en compte. Signer un document entier serait la solution la plus simple, cependant ce n'est absolument pas optimisé, car une signature n'étant rien d'autre que des données encryptées, la taille de la signature serait égale à la taille des données encryptées. Insignifiant pour un fichier texte brut, mais inenvisageable pour des dossiers.\\
- +
-La signature mise en place ne concerne pas l'intégralité des données chiffrées, mais seulement leur empreinte. Signer un document entier serait la solution la plus simple, cependant ce n'est absolument pas optimisé, car une signature n'étant rien d'autre que des données encryptées, la taille de la signature serait égale à la taille des données encryptées. Insignifiant pour un fichier texte brut, mais inenvisageable pour des dossiers.\\+
 Le fait de rendre accessible directement les données encryptées pourrait également rendre l'intégrité de la signature vulnérable à une attaque cryptographique visant à forger une signature valide pour des données, à partir de signatures et de données existantes.\\ Le fait de rendre accessible directement les données encryptées pourrait également rendre l'intégrité de la signature vulnérable à une attaque cryptographique visant à forger une signature valide pour des données, à partir de signatures et de données existantes.\\
 Pour contrer ces deux problèmes majeurs, une solution existe : le hachage. C'est une fonction réductrice qui nous permettra de calculer un « hash » qui est une empreinte des données qu'on lui a envoyé. En effet ce n'est qu'une empreinte, bien que la fonction soit déterministe, elle est impossible à inverser en raison d'une perte d'information induite volontairement.\\ Pour contrer ces deux problèmes majeurs, une solution existe : le hachage. C'est une fonction réductrice qui nous permettra de calculer un « hash » qui est une empreinte des données qu'on lui a envoyé. En effet ce n'est qu'une empreinte, bien que la fonction soit déterministe, elle est impossible à inverser en raison d'une perte d'information induite volontairement.\\
  
 Bien que ce hash ne nous permette pas de récupérer les informations initiales, il va nous permettre de les identifier avec certitude : en effet les risques de collision (que deux données différentes donnent le même hash) sont faibles, et les mêmes données donneront toujours le même hash. Afin de réduire la taille de notre signature, nous allons donc hasher les données avant de signer le hash final, ceci nous permettra effectivement de confirmer l'intégralité du document sans nécessairement conserver l'intégralité des données du document original. Bien que ce hash ne nous permette pas de récupérer les informations initiales, il va nous permettre de les identifier avec certitude : en effet les risques de collision (que deux données différentes donnent le même hash) sont faibles, et les mêmes données donneront toujours le même hash. Afin de réduire la taille de notre signature, nous allons donc hasher les données avant de signer le hash final, ceci nous permettra effectivement de confirmer l'intégralité du document sans nécessairement conserver l'intégralité des données du document original.
 +Logeas utilise comme fonction de **hachage l'algorithme SHA-384**. Celle-ci fait partie de la famille SHA-2 (Secure Hash Algorithm) qui ont été conçues par la National Security Agency des États-Unis (NSA), sur le modèle des fonctions SHA-1 et SHA-0, elles-mêmes fortement inspirées de la fonction MD4 de Ron Rivest (qui a donné parallèlement MD5). Telle que décrite par le National Institute of Standards and Technology (NIST), elle comporte les fonctions, SHA-256 et SHA-512 dont les algorithmes sont similaires mais opèrent sur des tailles de mot différentes (32 bits pour SHA-256 et 64 bits pour SHA-512), SHA-224 et SHA-384 qui sont essentiellement des versions des précédentes dont la sortie est tronquée, et plus récemment SHA-512/256 et SHA-512/224 qui sont des versions tronquées de SHA-512. Le dernier suffixe indique le nombre de bits du haché ([[https://fr.wikipedia.org/wiki/SHA-2|Voir l'article de Wikipédia]]).
  
 === Extrait du code === === Extrait du code ===
Ligne 51: Ligne 49:
 |Data|Qui contient la chaine à signer| |Data|Qui contient la chaine à signer|
 |Pivatekey|La partie privé du certificat| |Pivatekey|La partie privé du certificat|
-|HasDigest|La méthode de hachage, on utilise SHA 384+|HasDigest|La méthode de hachage, **on utilise SHA 384**|
-\\ +
-Logeas utilise comme fonction de **hachage l'algorithme SHA-384**. Celle-ci fait partie de la famille SHA-2 (Secure Hash Algorithm) qui ont été conçues par la National Security Agency des États-Unis (NSA), sur le modèle des fonctions SHA-1 et SHA-0, elles-mêmes fortement inspirées de la fonction MD4 de Ron Rivest (qui a donné parallèlement MD5). Telle que décrite par le National Institute of Standards and Technology (NIST), elle comporte les fonctions, SHA-256 et SHA-512 dont les algorithmes sont similaires mais opèrent sur des tailles de mot différentes (32 bits pour SHA-256 et 64 bits pour SHA-512), SHA-224 et SHA-384 qui sont essentiellement des versions des précédentes dont la sortie est tronquée, et plus récemment SHA-512/256 et SHA-512/224 qui sont des versions tronquées de SHA-512. Le dernier suffixe indique le nombre de bits du haché ([[https://fr.wikipedia.org/wiki/SHA-2|Voir l'article de Wikipédia]]).+
 \\ \\
 <code> <code>
Ligne 94: Ligne 90:
     end;     end;
 end; end;
- 
 </code> </code>
 +//[[https://en.delphipraxis.net/forum/37-ics-internet-component-suite/|Extrait de bibliothèque ICS de  Angus Robertson, Magenta Systems Ltd]]//\\
 Pour les explications des fonctions d'OpenSSL (et pour les spécialiste seulement ...) on pourra se référer à https://www.openssl.org/ Pour les explications des fonctions d'OpenSSL (et pour les spécialiste seulement ...) on pourra se référer à https://www.openssl.org/
 ===== Architecture des fichiers signés par LoGeAs Signature ===== ===== Architecture des fichiers signés par LoGeAs Signature =====
- 
 Un fichier signé par LoGeAs Signature est un conteneur au format [[https://fr.wikipedia.org/wiki/ZIP_(format_de_fichier)|zip ]]dont la structure est. Un fichier signé par LoGeAs Signature est un conteneur au format [[https://fr.wikipedia.org/wiki/ZIP_(format_de_fichier)|zip ]]dont la structure est.
 {{:certif:format_d_un_fichier_signe_v2.jpg?1000}}\\ {{:certif:format_d_un_fichier_signe_v2.jpg?1000}}\\
 (le format source de cette image est dans le dossier de certification) (le format source de cette image est dans le dossier de certification)
 +==== Le fichier "Information.ini" ==== 
 +D'un format facilement lisible (format descendant du format de Windows) il comprends : 
 +^Section^Identification^Contenu^ 
 +|Editeur|Nom|Logeas Informatique| 
 +|Editeur|Adresse|22 rue Saint Genest - 31800 LABARTHE INARD| 
 +|Logiciel|Nom|Nom du logiciel qui a réalisé la signature| 
 +|Serveur|Version|Version du logiciel| 
 +|Serveur|Nom|Nom du serveur hébergeant la solution| 
 +|Signature|Version|Version interne de la signature| 
 +|Signature|Type|Type de la signature utilisée| 
 +|Signature|Certificat|Type de certificat| 
 +|Signature|Dll-nom|Nom de l'outil de cryptographie utilisé| 
 +|Signature|Dll-organisme|Organisme source| 
 +|'Signature|Dll-version|Version| 
 +|Signature|Data|Signature du fichier "archive.zip"
 +|Signature|Information|https://logeas.wiki.logeas.fr/doku.php?id=certif:dat| 
 +|Signature|Date|Date de la signature|
 ===== Architecture des fichiers signés par LoGeAs Signature ===== ===== Architecture des fichiers signés par LoGeAs Signature =====
 ===== Manipulation des fichiers signés ===== ===== Manipulation des fichiers signés =====
CC Attribution-Share Alike 4.0 International Driven by DokuWiki
certif/signature.1637761853.txt.gz · Dernière modification: 2021/11/24 14:50 de nicolas