Développement d'applications - cybersécurité - radiogéolocalisation et radionavigation

Actualités à ne pas manquer

Venez nous rencontrer lors de nos conférences.

Notre savoir faire

Technologies et services

Notre entreprise

Cyberens est une société de conseil fondée en 2010 qui est spécialisée dans ​​les technologies de défense, de sécurité et de l’espace. Située à Bordeaux , nos clients sont français et internationaux.

Vérifier une signature au format XADES, PADES ou CADES avec TMS Crytptography Pack

CAdES, XAdES et PAdES signifient respectivement CMS, XML et PDF Advanced Electronics Signatures. Ce sont des formats de signatures maintenus par l’ETSI (European Telecommunications Standards Institute). Ce sont des extensions de formats de signatures CMS, XML et PDF pour les rendre conformes au règlement européen eIDAS (electronic IDentification, Authentication and trust Services), qui est un règlement de l’UE sur l’identification électronique et les services de confiance pour les transactions électroniques au sein de l’Union Européenne.

Petit point sur chaque format :

  • CAdES est une extension du format de signature CMS (Cryptographic Message Syntax). C’est un fichier binaire, qui est, en fait, encodé en ASN.1. On peut signer n’importe quel type de fichier avec. L’extension d’un tel fichier de signature peut être pkcs7 ou p7m. CAdES admet deux modes de signature : detached et enveloping.
    • Le mode detached produit un fichier binaire sans toucher au fichier original et sans référence à celui-ci à l’intérieur, en terme de noms de fichiers. Pour vérifier, il faut donc préciser le nom du fichier original en plus de celui de la signature.
    • Le mode enveloping produit un fichier binaire qui inclut les données du fichier original à l’intérieur. La signature enveloppe les données.
  • XAdES est une extension du format XML-DSig. C’est un fichier XML. Avec les modes detached et enveloping, on peut signer n’importe quel type de fichier. Avec le mode enveloped, on ne peut signer que des fichiers XML.
    • Le mode detached produit un fichier XML sans toucher au fichier original et avec le nom du fichier (sans son chemin) dans un champ URL. Pour vérifier, il faut donc préciser le chemin du fichier original en plus du nom de fichier de signature.
    • Le mode enveloping produit un fichier XML qui inclut les données du fichier original à l’intérieur. La signature enveloppe les données.
    • Le mode enveloped ajoute la signature au fichier XML original. On obtient un fichier signé indépendant.
  • PAdES est une extension du format de signature des fichiers PDF, qui est par défaut en mode enveloped et qui ajoute la signature au fichier PDF original.

Comme TMS Cryptography Pack est une bibliothèque de composants graphiques, il suffit d’ajouter TXAdES, TCAdES et TPAdES sur votre palette. Vous avez donc un fichier dont vous voulez vérifier la signature. L’idée est de juste fournir le fichier original OriginalFile, le fichier de signature SignatureFile s’il est séparé, et que la fonction vous retourne si la signature est valide ou non.

Si votre fichier est une signature CAdES, le code serait le suivant (on ne sait pas à l’avance si la signature est détachée ou non, donc on précise le nom du fichier original) :

err := CAdES.VerifySignature(SignatureFile, OriginalFile);

Si votre fichier est une signature XAdES, le code serait dans ce cas (il faut le chemin du fichier original pour le mode detached) :

XAdES.PathToOriginalFile := ExtractFilePath(OriginalFile);

err := XAdES.VerifySignature(SignatureFile);

Si votre fichier est une signature PAdES, alors le code est :

err := PAdES.VerifySignature(SignatureFile);

Maintenant, comment savoir si le fichier est une signature CAdES, XAdES ou PAdES ?

On va utiliser la fonction GetFileMIMEType présente dans chacune des classes TXAdES, TCAdES et TPAdES. Elle utilise la fonction GetFileMIMEType d’Indy.

filetype := XAdES.GetFileMimeType(SignatureFile);

Quels sont les types possibles dans notre cas ?

XAdES c’est text/xml et PAdES c’est application/pdf. Pour CAdES, c’est plus compliqué, c’est un fichier binaire, il pourrait avoir n’importe quelle extension. Dans les faits, il a souvent l’extension pkcs7 ou p7m, ce qui donne comme type : application/octet-stream ou application/pkcs7-mime.

Notre fonction est donc :

function VerifySignatureFile(SignatureFile, OriginalFile: string): string;

var

filetype: string;

err: Integer;

begin

filetype := XAdES.GetFileMimeType(SignatureFile);

if filetype = ‘application/pdf’ then

begin

  err := PAdES.VerifySignature(SignatureFile);

  if err = 0 then

   Result := ‘Signature valide’

  else

   Result := PAdES.VerifyError(err) + ‘\n’ + PAdES.ErrorDetails;

end

else if (filetype = ‘application/octet-stream’) or (filetype = ‘application/pkcs7-mime’) then

begin

  err := CAdES.VerifySignature(SignatureFile, OriginalFile);

  if err = 0 then

   Result := ‘Signature valide’

  else

   Result := CAdES.VerifyError(err) + ‘\n’ + CAdES.ErrorDetails;

end

else if filetype = ‘text/xml’ then

begin

  XAdES.PathToOriginalFile := ExtractFilePath(OriginalFile);

  err := XAdES.VerifySignature(SignatureFile);

  if err = 0 then

   Result := ‘Signature valide’

  else

   Result := XAdES.VerifyError(err) + ‘\n’ + XAdES.ErrorDetails;

end

else

  raise Exception.Create(‘Format de signature non reconnu’);

end;

Vous pouvez aussi signer des documents avec TXAdES, TCAdES et TPAdES. Si votre signature n’est pas reconnu par TMS CP (notamment pour le format XML-enveloped, pour lequel il est plus délicat de traiter tous les cas), n’hésitez pas à me contacter à marion [at] tmssoftware.com.

  • 10 octobre 2017 : cybersécurité des objets connectés au séminaire “CAP sur l’innovation : Internet des objets, enfin l’âge de raison ?”, Paris
  • 9 octobre 2017 : journée européenne de la cybersécurité, CCI de Bordeaux
  • 21 septembre 2017 :”La sécurité des systèmes embarqués” au salon ENOVA dans l’atelier de Captronic, Paris.
  • 19 juillet 2017 : article sur la cryptographie sur developpez.com
  • 20 juin 2017 : cybersécurité des objets connectés au séminaire Captronic sur la site de l’école des Mines de Saint-Etienne à Gardanne. Présentation sur l’analyse de risque et les bonnes pratiques en ingénierie de sécurité.
  • 8 juin 2017 : TMS Day à Courtrai. Présentation et démo de notre bibliothèque cryptographique dans un environnement multi-plateformes Windows, Android et Linux.
  • 17 mai 2017 : Présentation de TMS Cryptography Pack pour le lancement de RAD Studio 10.2 Tokyo à Paris
  • 28 avril 2017 : réunion de clôture du projet Horizon 2020 GALENA à Horst (Pays-Bas). Le projet a permis la réalisation d’une application complète de suivi de bout en bout de colis intégrant la preuve de transaction pour chaque intermédiaire.
  • 14 et 16 mars 2017 : A Bordeaux et Nantes, journées RAD Studio 10.1.2 (Delphi et C++ Builder) organisées par Barnsten avec une démo de TMS Cryptography Pack par Cyberens.
  • 20 décembre 2016: GALENA reçoit le prix de l’innovation de la région flamande pour l’European Satellite Navigation Competition (ESNC) 2016.
  • 30 juin 2016: réunion préparatoire du projet USC4BUS pour l’utilisation des ultrasons en billetique.
  • 20 juin 2016: TMS  Software et Cyberens signent un accord de distribution pour COCryL sous le nom commercial de TMS  Cryptography Pack.
  • TMS Software et Cyberens ont conclu un partenariat avec l’objectif de développer conjointement des solutions cryptographiques pour les utilisateurs Delphi, C++ et C. Dans ce partenariat, Cyberens apporte son expertise en cryptographie et TMS Software apporte son expérience des composants intuitifs et faciles à utiliser pour les environnement Delphi et C++Builder.La bibliothèque TMS Cryptography Pack est sur cette page et les discussions sur ce forum.

  • 20-21 mai 2016: deuxième Act In Space organisé par le CNES et l’ESA dans les locaux de l’ENSEIRB-MATMECA à Bordeaux.

  • 18-19 février 2016: réunion GALENA de mi-projet à Prague dans les locaux de la GSA.
  • 27 mars 2015 : Cyberens sponsor du STHACK
  • 27 janvier 2015 : réunion de lancement du projet européen GALENA chez Héliléo à Dax
  • 27 novembre 2014 : destinées numériques à l’ENSEIRB-MATMECA
  • 20 octobre 2014 : article sur la NSA et le chiffrement dans la revue des télécoms
  • 23 septembre 2014 : participation à CHES
  • 11 juillet 2014: Journée French Tech à Bordeaux “Darwin”
  • 1er et 2 juillet 2014 : Cyberens au Toulouse Space Show Toulouse Space Show pour TOPOS
  • 20 juin 2014 : Journée RSSI organisée par le CLUSIR Aquitaine
  • 23 et 24 mai 2014 : Cyberens dans le jury sur le site de Bordeaux TechnoWest d’ActInSpace organisé par le CNES.
cyberens-blanc

Tour 6,

74 rue Georges Bonnac

33000 Bordeaux

Mentions Légales

©copyrights 2019