PC SOFT

PROFESSIONAL NEWSGROUPS
WINDEVWEBDEV and WINDEV Mobile

Home → WINDEV 2024 → signature numerique et code sign
signature numerique et code sign
Started by maverick, Dec., 23 2016 8:07 AM - 172 replies
Registered member
34 messages
Posted on December, 23 2016 - 8:07 AM
Bnojour, suite aux nouvelles normes j'ai besoin de signer mon exe (code sign) et utiliser le certificat pour signer des chaines comme dans l'exemple : Comment assurer l'intégrité d'une suite de transactions dans une base de donné.
Est-ce le meme certificat ? j'ai regardé sur https://secure.ksoftware.net/ ?
merci de votre aide
Registered member
351 messages
Popularité : +75 (75 votes)
Posted on December, 27 2016 - 12:36 AM
Bonjour,

Le certificat "code signing" s'achète auprès d'un fournisseur d'authentification qui propose en général des certificats SSL (comme celui que tu as trouvé). D'une façon simple, il faut prouver ton identité et ensuite payer pour avoir ton certificat.

Les prix varient de pas grand chose à très cher pour le même service ... à toi de te trouver les moins escrocs de tous !

Pour éviter tout problème, je ne conseillerai aucun fournisseur sur ce sujet, mais sache que l'on peut trouver vraiment moins cher que ta recherche initiale !

Pour réaliser l'intégrité d'une suite de transactions, il faut pour l'enregistrement que tu viens d'ajouter :
- calculer son hashcode
- calculer le hashcode de l'avant-dernier enregistrement
- crypter les 2 hashcodes (que l'on sépare en général avec un point) avec une clé de type RSA, DSA ou beaucoup mieux EC.

Pour éviter la suppression du dernier enregistrement, il faut ajouter un 3ème hashcode (correspondant en fait à la ligne suivante) dans le couplage du dernier enregistrement (enfin celui qui devient l'avant-dernier après ton ajout). Il te faut donc recalculer la clé non plus à partir des 2 hashcodes mais à partir des 3 hashcodes. Tu auras ainsi pour tous les enregistrements, les hashcodes de la ligne précédente, le ligne en cours et la ligne suivante. Excepté la première ligne qui n'a pas de hashcode précédent et la dernière qui n'a pas encore le suivant !

Personnellement je conseille en priorité le cryptage de type EC (elliptic curve ou courbe elliptique) qui prend peu de place, qui est très rapide et pas prêt d'être piraté ! La taille de stockage, la rapidité de calcul du cryptage/décryptage sont des éléments très important à prendre en compte, une vitesse trop lente te pénalisera en cas de contrôle ou de transactions nombreuses, une taille importante fera gonfler ta base de données et te pénalisera en bande passante. Je ne pense pas que l'EC soit implémenté dans Windev, personnellement je l'utilise via une de mes librairies.

La génération de clé RSA, DSA ou EC est gratuite et se fait à partir de n'importe quel poste. Un exemple simple avec openSSL : "openssl genrsa -out key.pem 2048".

Sinon tu peux retrouver une vidéo de PcSoft ici => http://blogs.pcsoft.fr/post.awp…

--
Bon développement, Patrick [3po.fr]
Message modified, December, 27 2016 - 12:37 AM
Registered member
34 messages
Posted on December, 27 2016 - 7:19 AM
merci patrick pour votre réponse.
pouvez-vous m'envoyer par mail un fournisseur . Je ne voulais pas générer de clé par moi-même car il m a été dis que pour la commercialisation de mon logiciel j'étais obligé de passer par une organisme. Concernant l'utilisation du certificat en EC je ne peux pas l'utiliser comme les autres certificats en windev ?
Si ce n'est pas le cas votre librairie m'interesse fortement. Vous la commercialisez ?
Merci de votre aide
Registered member
351 messages
Popularité : +75 (75 votes)
Posted on December, 27 2016 - 6:42 PM
Bonjour Maverick,

Dans le cas de la norme NF525 (si c'est à cela que tu penses) alors oui il te faut un certificat délivré par un organisme accrédité semble-t-il.

De toute façon, ton certificat de "Code Signing" te permettra de signer tes enregistrements ... du moins c'est le cas avec le mien.
Lorsque j'utilise mon certificat pour signer une chaine ou autre chose alors c'est le type de clé de mon certificat qui est utilisé ... dans mon cas RSA en 2048 bits ... donc des performances moindres.

Voici à quoi cela ressemble :





J'ai mon certificat pour une durée de 2 ans, il faut juste que mon certificat soit valide au moment où je signe mon exécutable ou mes données. Lorsque le certificat n'est plus valide, je ne peux plus signer bien sûr ... mais ce que j'ai signé reste évidemment valide.

La librairie que j'ai écrite a été faite pour une utilisation interne à partir de mes propres certificats mais il est possible que je mette prochainement à disposition cette librairie notamment pour la récupération et l'intégration de certificat SSL "Let's Encrypt" en automatique ...

Je n'ai pas fait d'essai avec Windev pour utiliser mes certificats EC .... je regarderai à l'occasion pour voir ce qu'il en est.

--
Bon développement, Patrick [3po.fr]
Registered member
34 messages
Posted on December, 28 2016 - 9:02 AM
Merci de votre aide patrick.
bon dev
Posted on December, 28 2016 - 9:25 AM
Le 28/12/2016 à 08:02, maverick a écrit :
Merci de votre aide patrick.
bon dev


Bonjour,

Je ne vois pas ou vous avez vu qu'il fallait un certificat pour l'exe
dans la NF525 ?

Il faut bien un duo cle privé/clé publique pour signer les
enregistrements et celle la on peut la générer nous même, il faut juste
rendre disponible la clé publique.

Bon dev,

Fred.
Registered member
34 messages
Posted on December, 28 2016 - 10:02 AM
bonjour fredo, je ne passe par par la nf525 mais par la LNE. Il me demande de signer l'exe
Posted on December, 28 2016 - 10:57 AM
Le 28/12/2016 à 09:02, maverick a écrit :
bonjour fredo, je ne passe par par la nf525 mais par la LNE. Il me
demande de signer l'exe


Ok :)

La certif LNE est sortie alors ? Y'a un site ou on peut avoir le
descriptif de ce qu'ils demandent ?

Fred.
Registered member
34 messages
Posted on December, 28 2016 - 12:01 PM
il faut contacter LNE via leur site (je n'ai pas le numéro sous la main) et s'inscrire afin de recevoir par mail le cahier des charges.
Posted on December, 29 2016 - 9:24 AM
Bjr,

Dans son message précédent, maverick a écrit :
il faut contacter LNE via leur site (je n'ai pas le numéro sous la main) et
s'inscrire afin de recevoir par mail le cahier des charges.


Et LNE, ils s'occupent de certifier les logiciels de caisse ? ou c a
n'a finalement rien a voir du tout ??????

a plus


--
-------------------------------------------------------------
www.ctc-soft.com
Gestion biblo-documentaire (free-share)
Comptabilité shareware
Logiciels de Gestion de saisie terrain
Spécialisé Tournées de boulangers
-------------------------------------------------------------
Registered member
34 messages
Posted on December, 29 2016 - 10:04 AM
Il certifie les systèmes d encaissement. C est comparable a la nf525 en terme de reconnaissance de certification.
Posted on December, 29 2016 - 3:41 PM
Le 29/12/2016 à 09:04, maverick a écrit :
Il certifie les systèmes d encaissement. C est comparable a la nf525 en
terme de reconnaissance de certification.


Dans les grandes lignes, c'est quoi à ton avis la différence entre les
deux certifs ( prix, complexité, ... ) ?

merci d'avance,

Fred.
Registered member
939 messages
Popularité : +66 (68 votes)
Posted on December, 29 2016 - 5:49 PM
maverick a écrit :
> Il certifie les systèmes d encaissement. C est comparable a la nf525 en terme de reconnaissance de certification.

? ?
comme Fred, vous avez les différences avec la NF525 ?
car pour moi, la lne certifie les logiciels d'encaissement peu être oui, mais ceux utilisant du matériel de pesé non ?
type balance super marché... etc...

en tout cas si vous avez un peu plus de document je suis preneur ;)
Registered member
34 messages
Posted on January, 01 2017 - 10:16 PM
LNE certifie tous systèmes d'encaissement concernant la loi au 1er janvier 2018. Je ne peux pas vous communiquer le cahier des charges et je n'ai pas encore de réponse quand au cout de la certification. je vous tiens au courant dès que possible.
Registered member
34 messages
Posted on January, 01 2017 - 10:18 PM
j'ai obtenu le certificat de komodo en .cer mais je n'arrive pas à signer ni mon executable ni à l'utiliser avec les fonctions de cértificats. Je l'ai bien installé mais ValidePourSignature me renvoi faux. Quelqu'un à une idée ? Merci
Registered member
351 messages
Popularité : +75 (75 votes)
Posted on January, 02 2017 - 10:09 AM
Bonjour,

Il faut que tu importes ton certificat dans le magasin des certificats et également que tu vérifies les rôles de ton certificat ... qui doit comprendre "Signature de code".

Si tu n'as pas ça alors tu n'as pas le bon certificat.

La signature de ton exécutable se fait lors de la génération dans la partie "Informations de l'exécutable" ... c'est à cet endroit ("Signer avec le certificat") que tu dois choisir ton certificat à partir d'un magasin (tu n'as pas le choix du magasin).

Pour la signature de tes chaines ... il faut soit que tu utilises CertificatSélecteur et choisir ton certificat qui est dans le magasin ou charger directement ton fichier .cer avec CertificatCharge ensuite tu utilises les commandes "CertificatSigne".

--
Bon développement, Patrick [3po.fr]
Registered member
34 messages
Posted on January, 02 2017 - 10:41 AM
merci patrick. je n 'avias installé le certificat komodo à partir du bon navigateur. le support komodo (très réactif) m'a indiqué la démarche et tout est ok de mon côté.
merci en tout cas de votre aide
Registered member
351 messages
Popularité : +75 (75 votes)
Posted on January, 02 2017 - 1:45 PM
Pour info, tu n'as pas besoin d'utiliser un navigateur pour installer ton certificat, il suffit de faire un clic droit sur ton fichier et de faire "Installer le certificat" et de suivre la procédure d'installation.

--
Bon développement, Patrick [3po.fr]
Registered member
34 messages
Posted on January, 03 2017 - 9:27 AM
bonjour. j'ai de nouveau besoin d'aide. En effet tout fonctionne sur mon poste de dev mais j'ai un probleme lors de la mise en place sur un poste client.
Quand je veux installer mon certificat .p12 sur un poste client alors il me demande mon mot de passe. Chose que je ne pourrai pas faire chez chaque client. Quand j'installe mon certificat en .cer alors je ne peux pas signer mes chaines.
PS : Est il possible d'installer un certificat d'une facon automatiser.
Merci de votre aide
Registered member
351 messages
Popularité : +75 (75 votes)
Posted on January, 03 2017 - 12:40 PM
Bonjour,

Il faut que tu mettes ton certificat dans ton exécutable et surtout pas dans le magasin pour les raisons que tu cites.

Tu as une fonction de chargement de certificat via un buffer.

Il te faudra faire une version de ton certificat en "non protégé" qui sera donc intégré dans ton exécutable. Regarde du coté OpenSSL, je n'ai pas la ligne de commande sous la main car je suis en déplacement mais tu vas trouver ça sur le net.

Souviens toi que tu ne dois JAMAIS installer ton certificat sur une machine qui n'est pas la tienne et je te conseille par sécurité de stocker ton certificat en crypté dans ton exécutable.

Fais moi signe si tu n'y arrives pas ... je te donnerai alors plus d'information quand je serai devant mon poste de dév.

--
Bon développement, Patrick [3po.fr]
Registered member
351 messages
Popularité : +75 (75 votes)
Posted on January, 03 2017 - 12:43 PM
Oups ... pas besoin de version non protégé ... J'ai confondu avec mes certificats sur Apache !

Il faut donc que tu utilises : CertificatCharge(<Fichier certificat> , <Mot de passe>)

--
Bon développement, Patrick [3po.fr]
Message modified, January, 03 2017 - 12:44 PM
Registered member
34 messages
Posted on January, 03 2017 - 1:40 PM
Merci beaucoup pour ton aide. Pour suivre tes conseils, comment stocker mon certificat dans mon executable et le crypter.
Je suis obliger de laisser mon fichier certif .p12 dans mon repertoire afin de faire un certificat charge.
Merci encore de ton aide
Posted on January, 03 2017 - 3:51 PM
Bonjour,
j'ai regardé le site du LNE mais n'ai rien trouvé.

Si vous avez des informations complémentaires, je suis preneur.

maverick a écrit :
> LNE certifie tous systèmes d'encaissement concernant la loi au 1er janvier 2018. Je ne peux pas vous communiquer le cahier des charges et je n'ai pas encore de réponse quand au cout de la certification. je vous tiens au courant dès que possible.
Registered member
34 messages
Posted on January, 03 2017 - 5:05 PM
En effet rien sur le site mais appellez directement le numero que vous avez sur le site.
Cordialement
Registered member
351 messages
Popularité : +75 (75 votes)
Posted on January, 04 2017 - 10:02 AM
maverick a écrit :
Merci beaucoup pour ton aide. Pour suivre tes conseils, comment stocker mon certificat dans mon executable et le crypter.
Je suis obliger de laisser mon fichier certif .p12 dans mon repertoire afin de faire un certificat charge.
Merci encore de ton aide


Ok je reconnais qu'il y a de quoi se perdre dans tout ça ... alors voilà quelques explications qui vont te permettre d'avancer.

Il faut juste se rappeler de la mécanique d'un certificat.

Tu as une clé privée qui te permet de signer quelque chose ... et tu as une clé publique qui permet de contrôler que la signature est conforme.

La signature intègre la clé publique et la signature. La signature est contrôlée par la clé publique et la clé publique est contrôlée avec la clé publique de ton fournisseur (on appelle cette clé l'authorité de certification (ou CA) stockée en général dans un fichier CA.crt).

La clé publique est justement publique ... tout le monde peut la posséder et l'enregistrer où bon lui semble. Cette clé ne sert qu'à contrôler que la signature ou le certificat sont bons !

La clé privée doit impérativement rester privée sinon tu t'exposes au piratage de ta signature. C'est pour cela que tu ne dois jamais mettre ta clé privée sur une machine qui n'est pas la tienne ou la stocker sans prendre des précautions.

Lors de l'achat de ton certificat "Code Signing" (c'est la même chose pour le SSL), tu as généré une clé privée qui est stockée en général dans un fichier .key protégé avec un mot de passe. C'est en réalité un fichier texte qui commence par "-----BEGIN RSA PRIVATE KEY-----" et se termine par "-----END RSA PRIVATE KEY-----" ... appelons ce fichier "macléprivée.key"

Avec cette clé, tu as généré un CSR (Certificat Signing Request) que tu as envoyé à ton fournisseur ... après ton paiement et la vérification de ton identité, ce fournisseur t'a renvoyé un fichier ".crt" ou ".cer" (c'est la même chose) qui contient la clé publique de ton certificat.

Ton fournisseur a signé cette clé publique avec la clé privée de son certificat (CA.crt) dont tu ne connais que la clé publique.

Tu as donc un fichier "moncertificat.cer" qui contient ta clé publique signée par ton fournisseur qui garantit que tu es bien celui que tu prétends être !

C'est le couplage de ta clé publique ("moncertificat.cer") et de ta clé privée ("macléprivée.key") qui va te permettre de signer des chaines, des documents bref tout ce que tu veux. Si tu n'as pas la clé privée alors tu ne peux rien signer bien sûr !

Il faut donc fabriquer un fichier (format .pfx) qui contient ta clé publique et ta clé privée ... pour cela on utilise par exemple "openssl" ... c'est un programme en ligne de commande et c'est peut-être celui que tu as utilisé pour fabriquer ta clé privée et ton CSR.

openssl pkcs12 -export -out toncertificat.pfx -inkey macléprivée.key -IN toncertificat.cer


Tu seras invité à saisir le mot de passe de ta clé privée puis à mettre un mot de passe pour protéger ton fichier ".pfx".
Tu peux également ne pas mettre de mot de passe sur ce fichier .pfx mais je te le déconseille (mais cela peut être utile pour Apache par exemple).

Tu vas donc te retrouver avec un fichier "toncertificat.pfx" protégé avec un mot de passe.

A titre d'exemple, voici comment charger et signer une chaine directement à partir de ce fichier :

Liste_Certificats est un tableau de Certificats = CertificatCharge("chemin complet de toncertificat.pfx","motdepassedemonpfx")
Signature est un Buffer = CertificatSigneChaîne("Chaîne de caractères à signer",Liste_Certificats[1])


Sauf que dans ce cas, ton fichier "toncertificat.pfx" doit être accessible ... ce n'est donc pas une bonne solution.

Personnellement je n'aime pas stocker le contenu de mon certificat pfx en clair dans mes applications ... c'est certainement mon coté parano !

C'est donc pour cela que je le crypte et le stocke dans une variable, voici un exemple qui n'est pas forcément celui que j'utilise mais qui va te donner l'esprit :

// Crypter le stockage de mon certificat
Certificat_PFX est un Buffer = fChargeBuffer("chemin complet de toncertificat.pfx")
Certificat_PFX_Crypté est un Buffer = Crypte(Certificat_PFX,"motdepassepourlecryptage",compresseLZW + crypteSécurisé,encodeAucun)
fSauveTexte("toncertificat_crypté.txt",BufferVersHexa(Certificat_PFX_Crypté))


Dans "toncertificat_crypté.txt", tu trouveras du code héxa correpondant à ton certificat doublement encrypté et facilement intégrable dans ton code.

Il ne te reste plus qu'à mettre dans ton code le contenu en héxa de ton certificat, par exemple :

Certificat_PFX_Crypté_Hexa est une chaîne = [
7A 7C C4 18 C1 E7 9B 6C 16 ED 2C 76 0F B1 B2 82
...
0A 59 2E FA 0F 53 2A E0 4A E5 4A 32 64 26 C1 36
]


Maintenant ton certificat est dans une variable et il n'est pas en clair ... il te suffit de le décrypter et l'injecter dans tes certificats :

// Décryptage du certificat
Mon_Certificat est un buffer = Décrypte(HexaVersBuffer(Certificat_PFX_Crypté_Hexa),"motdepassepourlecryptage",compresseLZW + crypteSécurisé,encodeAucun)

// On injecte le certificat
Liste_Certificats est un tableau de Certificats = CertificatCharge(Mon_Certificat,"motdepassedemonpfx")

// On signe avec le certificat
Signature est un Buffer = CertificatSigneChaîne("Chaîne de caractères à signer",Liste_Certificats[1])


Allez au boulot maintenant ...

--
Bon développement, Patrick [3po.fr]
Message modified, January, 04 2017 - 10:18 AM
Registered member
351 messages
Popularité : +75 (75 votes)
Posted on January, 04 2017 - 10:14 AM
Maverick,

Je viens de voir que tu avais déjà un fichier ".p12", c'est le même chose que le ".pfx". Ce sont exactement les mêmes fichiers.

--
Bon développement, Patrick [3po.fr]
Posted on January, 04 2017 - 6:38 PM
Bjr,

"ÿÿÿÿÿÿÿÿÿÿ" avait écrit le 04/01/2017 :

> Allez au boulot maintenant ...

Pas tout de suite, aspirine d'abord.......

--
-------------------------------------------------------------
www.ctc-soft.com
Gestion biblo-documentaire (free-share)
Comptabilité shareware
Logiciels de Gestion de saisie terrain
Spécialisé Tournées de boulangers
-------------------------------------------------------------
Registered member
204 messages
Popularité : +1 (1 vote)
Posted on January, 04 2017 - 7:09 PM
Bonjour Patrick

Merci pour tes explications

Je rencontre un probleme, je signe ma chaine sans probleme, mon certificat est bon (il est valide pour signer une chaine)
mais quand je vérifie ma signature, j'ai une erreur

dans info(1) j'ai bien mes données, et je passe le contrôle de valide pour signature
dans info(2) je récupère les mêmes données que dans info(1) et toujours valide pour signature
mais quand je fais le CertificatVérifieChaîne, j'ai en retour "signature ou certificat invalide"

sChaineTEST est une chaîne = "Test Chaine a Signer"

sCertificat_Pfx_Chaine est une chaîne = fChargeTexte("C:\Kasodef\TXT\cert.txt")
bufCertificat est un Buffer = Décrypte(HexaVersBuffer(sCertificat_Pfx_Chaine),"123456",compresseLZW+crypteSécurisé,encodeAucun)
tabListe_Certificats est un tableau de Certificats = CertificatCharge(bufCertificat,"xxxxxx")

Info("(1)",tabListe_Certificats[1]..Nom , tabListe_Certificats[1]..Empreinte,tabListe_Certificats[1]..Emetteur,tabListe_Certificats[1]..ValidePourSignature)

SI tabListe_Certificats[1]..ValidePourSignature = Faux ALORS
Info("(1)","Le certificat sélectionné ne permet pas de générer une signature.")
RETOUR
FIN

bufSignature est un Buffer = CertificatSigneChaîne(sChaineTEST , tabListe_Certificats[1] )

MonCertificatExtrait est un Certificat
MonCertificatExtrait = CertificatExtrait(bufSignature)

Info("(2)", MonCertificatExtrait ..Nom , MonCertificatExtrait ..Empreinte,MonCertificatExtrait ..Emetteur,MonCertificatExtrait ..ValidePourSignature)

SI MonCertificatExtrait..ValidePourSignature = Faux ALORS
Info("(2)","Le certificat sélectionné ne permet pas de générer une signature.")
RETOUR
FIN

SELON CertificatVérifieChaîne(sChaineTEST, bufSignature)
CAS certificatOk : Info("Signature valide et certificat fiable")
CAS certificatInvalide : Info("Signature ou certificat invalide")
CAS certificatExpiré : Info("Signature valide mais certificat expiré")
CAS certificatNonFiable : Info("Signature valide mais racine de confiance " + ...
"du certificat non fiable")
AUTRE CAS : Erreur("Erreur sur Certificat Verifie Chaine")
FIN


Si vous avez une idee

Merci
Cordialement
Olivier
Registered member
351 messages
Popularité : +75 (75 votes)
Posted on January, 05 2017 - 7:19 AM
Bonjour,

ATTENTION ! Une petite erreur lors de la mise en forme de ligne de commande de OpenSSL, Il faut lire "-in" et non "-IN" :
openssl pkcs12 -export -out toncertificat.pfx -inkey macléprivée.key -in toncertificat.cer

Dc a écrit :
> Pas tout de suite, aspirine d'abord.......

Ça doit être bon maintenant ... cela a dû faire effet ! :)

Olivier PERRIN a écrit :
Bonjour Patrick

Merci pour tes explications


Je t'en prie ... assure-toi de la validité de ton certificat, tu peux notamment passer par le debugger et regarder le contenu de ton tableau de certificats pour avoir le détail. Cela te permettra de voir si tout est OK.

Aucun problème de mon coté avec ce code de test. Avec mon certificat, j'ai bien un retour : certificatOk :
// Chargement du certificat crypté en variable
Certificat_PFX_Crypté_Hexa est une chaîne = [
...
Ici le contenu héxa de votre certificat selon la méthode de cryptage donnée en exemple plus haut
...
]

// Décryptage du certificat
Mon_Certificat est un Buffer = Décrypte(HexaVersBuffer(Certificat_PFX_Crypté_Hexa),"motdepassepourlecryptage",compresseLZW + crypteSécurisé,encodeAucun)

// On injecte le certificat
Liste_Certificats est un tableau de Certificat = CertificatCharge(Mon_Certificat,"motdepasse")

// On signe avec le certificat
Signature est un Buffer = CertificatSigneChaîne("Chaîne de caractères à signer",Liste_Certificats[1])

// Vérification de la signature
SELON CertificatVérifieChaîne("Chaîne de caractères à signer",Signature)
CAS certificatOk : Info("Signature valide et certificat fiable")
CAS certificatInvalide : Info("Signature ou certificat invalide")
CAS certificatExpiré : Info("Signature valide mais certificat expiré")
CAS certificatNonFiable : Info("Signature valide mais racine de confiance du certificat non fiable")
FIN

PS : A noter que mes tests ont lieu actuellement sur la version 22 ... je n'ai pas regardé avec les précédentes versions mais il n'y a pas de raison que cela ne fonctionne pas.

Note pour OpenSSL :

J'utilise un package simple dans un zip que je pose dans n'importe quel répertoire (pas besoin d'installation).
Version 32 bits : https://indy.fulgan.com/SSL/openssl-1.0.2j-i386-win32.zip
Version 64 bits : https://indy.fulgan.com/SSL/openssl-1.0.2j-x64_86-win64.zip

Dans l'invité de commandes, une fois dans le répertoire de votre OpenSSL, n'oubliez pas de faire avant :

set OPENSSL_CONF=chemin complet du fichier openssl.cnf

exemple : set OPENSSL_CONF=C:\OpenSSL\openssl.cnf

--
Bon développement, Patrick [3po.fr]
Registered member
204 messages
Popularité : +1 (1 vote)
Posted on January, 05 2017 - 8:35 AM
Bonjour

J'ai bien vérifié mon certificat est valide, et il me permet entre autre de signer mes exe sans probleme depuis un certain temps.
Mais c'est la premiere fois que je l'essaye pour signer une Chaine.
Windev reconnait bien mon certificat et le considere comme valide

MonCertificatExtrait..ValidePourSignature est vrai
Dans les parametres windev de mon parametre, je retrouve bien toutes les données
(tabListe_Certificats[1]..Nom , ..empreinte.....)

Je vais faire un essais en W22 pour voir

Cordialement
Olivier
Registered member
351 messages
Popularité : +75 (75 votes)
Posted on January, 05 2017 - 10:37 AM
Bonjour Olivier,

C'est étonnant, et le contenu de la signature ?

Tu as dedans des caractères non imprimables mais tu devrais voir quelques signes de ton certificat, est-ce le cas ?

Je suppose que si "..ValidePourSignature" te retourne Vrai, c'est que PCSoft a vérifié que l'utilisation de ta clé permettait la "signature numérique".

Qu'as-tu comme rôles au niveau de ton certificat ? Tu peux les voir à partir du magasin des certificats de Windows (onglet Personnel) ou en faisant un double clic sur ton fichier ".cer". Regarde aussi dans "Détails", "Utilisation de la clé" et "Utilisation avancée de la clé".

--
Bon développement, Patrick [3po.fr]
Message modified, January, 05 2017 - 10:41 AM
Registered member
34 messages
Posted on January, 11 2017 - 10:32 AM
bonjour à tous. je viens de recevoir le devis LNE. Il est de 15000e . Hors de prix !!!!
Posted on January, 11 2017 - 2:19 PM
Le 11/01/2017 à 09:32, maverick a écrit :
bonjour à tous. je viens de recevoir le devis LNE. Il est de 15000e .
Hors de prix !!!!


Ca m'étonne pas trop, la certif LNE pour les balances doit être au
alentour de 8 ou 10k et c'est plus simple que la certif encaissement.

Fred.
Posted on January, 12 2017 - 11:34 AM
Bonjour,

merci à tous pour vos explications.

Je travaille aussi sur la signature numérique des données dans le cadre de la NF525.

De mon côté, tout fonctionne avec cette méthode :
- Génération d'un certificat RSA 2048 bits auto signé avec OpenSSL
- Utilisation de ce certificat pour signer une chaine de 10 caractères avec CertificatSigneChaine()
- La vérification avec CertificatVerifieChaine() fonctionne aussi
Mon soucis : la signature fait 2226 caractères une fois encodée en base64url (règle NF525).
Beaucoup trop volumineux pour gérer ça dans ma base de données !

J'ai donc tenté de passer sur un certificat ECDSA prime251v1 256 bits.
Mais là, lors du chargement du certificat dans Windev, la propriété ValidePourSignature() est à FAUX.
J'ai soumis mon problème à PC SOFT il y a quelques jours.

Merci pour votre aide.

Michaël.
Registered member
351 messages
Popularité : +75 (75 votes)
Posted on January, 12 2017 - 12:47 PM
Bonjour Mickaêl,

Michaël a écrit :

J'ai donc tenté de passer sur un certificat ECDSA prime251v1 256 bits.

Lors de mes tests avec mes certificats, l'elliptic curve (EC) n'est pas gérée par les fonctions de certificat de Windev.
Il te faut passer par tes propres outils pour l'utiliser, ce que j'ai fait pour l'utilisation de l'EC.

Par contre, comme je l'ai dit précédemment, l'EC n'apporte que des avantages aussi bien au niveau des tailles que de la vitesse d'exécution.

Quand j'utilise de l'EC 256, 384 ou 521, la génération de mes clés , le cryptage et décryptage sont instantanées ... contrairement au RSA ou DSA. Et c'est pire avec du RSA 3072 ou 4096.

Michaël a écrit :

Mon soucis : la signature fait 2226 caractères une fois encodée en base64url (règle NF525).
Beaucoup trop volumineux pour gérer ça dans ma base de données !

Je pense que ce tu peux faire par contre pour réduire le volume de ta signature en attendant la gestion de l'EC :

- Stocker en format binaire car le base64URL est bien gourmand et cela ne sert à rien de stocker dans ce format
- Compresser ta signature avec Compresse() et un type LZW
- Extraire le certificat public et de ne garder que la signature numérique et la reconstituer dans sa totalité quand tu en as besoin.

Bien sûr, il y a certainement d'autres solutions ... je réponds à chaud avant mon départ en vacances :) !

Note qu'il y a une grosse différence entre le stockage et l'affichage ... tu stockes compressé, tu affiches en base64URL. Je serai surpris que l'on t'impose un format de stockage. Si quand bien même c'est la cas alors tu dois te plier à cette contrainte et faire avec !

--
Bon développement, Patrick [3po.fr]
Message modified, January, 12 2017 - 12:53 PM
Registered member
351 messages
Popularité : +75 (75 votes)
Posted on January, 12 2017 - 1:03 PM
Sinon plus simplement : mémo binaire compressé ... et tu gagneras en stockage.

Pour moi ce n'est pas les mégas qui me font peur (vu le prix des disques) mais le temps d'exécution de ces encryptions et compressions et là mes clients n'ont pas tous des bécanes qui envoient du paté !

--
Bon développement, Patrick [3po.fr]
Posted on January, 12 2017 - 2:01 PM
Merci pour ta réponse Patrick, tu m'aides énormément.

Ce que je ne comprends pas sur la taille de la signature, c'est que lorsque je signe avec une commande openssl,
ma signature ne fait que 356 caractères (toujours en base64).
Ce devrait être la même taille non ?

La commande pour signer est la suivante :
"openssl rsault –sign –in donnees_en_clair.txt –inkey private.pem –out signature.txt"

La commande pour encoder en base64 :
"openssl enc –base64 –in signature.txt –out signature_base64.txt"

Je vais essayer les solutions que tu m'as proposées pour réduire la taille de ma clé.

Côté performance, je n'ai pas encore fait d'essais.
Mais l'usage de ce logiciel est pour nos propres magasins : nous sommes à la fois l'éditeur et le client.
Donc nous maitrisons la partie matériel.
Aujourd'hui il y a du Intel i3 au minimum, je pense que c'est suffisant, mais à voir...

Merci encore.

Michaël.
Registered member
351 messages
Popularité : +75 (75 votes)
Posted on January, 12 2017 - 2:42 PM
Mickaêl,

Contrairement à OpenSSL, la signature des commandes CertificatSigne intègre la clé publique c'est pour cela que tu as une grosse différence.

C'est pour cela que je t'indiquais de retirer la clé publique de la signature puisque tu la connais vu que c'est la tienne !

Pour les performances, le fait de signer est beaucoup plus rapide que la génération de clé. Je n'ai pas de timing sous la main mais je ne pense pas que tu rencontres de gros problèmes même avec du RSA 2048. Si tu avais besoin de signer en masse ... c'est plus critique.

Sinon tu peux utiliser de l'EC en utilisant "OpenSSL" dans ton application, c'est relativement facile à intégrer dans Windev avec un petit appel API d'exécution en mode console. En gros, tu exécutes ta commande OpenSSL et tu récupères le résultat de la console dans une variable.

--
Bon développement, Patrick [3po.fr]
Posted on January, 12 2017 - 4:00 PM
Ok je comprends mieux ! Merci !

Je vais essayé de passer par la librairie OpenSSL.
Je crois comprendre que c'est "libcrypto.lib" qui m'intresse.
Reste à trouver les bonnes fonctions... Je continue !
Registered member
351 messages
Popularité : +75 (75 votes)
Posted on January, 12 2017 - 5:46 PM
Si tu veux mon avis ... et vu le temps que j'ai passé sur ma propre librairie de cryptographie ... je te conseille la solution plus rapide qui consiste à exécuter OpenSSL et récupérer le retour dans une variable. Si tu ne sais pas comment faire ... envoie moi ton mail et je te passerai ce qu'il te faut.

--
Bon développement, Patrick [3po.fr]
Posted on January, 13 2017 - 8:24 AM
En fait, exécuter OpenSSL directement me parait assez simple.
Mais 2 soucis risque de se poser :
- la console va s'afficher à l'écran avec les commandes, même si c'est bref, donc niveau sécurité... ou alors peut être qu'en mettant mes commandes dans un batch que j'exécute ensuite ce serait mieux
- je vais être obligé d'installer tout OpenSSL sur les postes clients, et non pas simplement la librairie concernée

Donc je vais essayer par la librairie dans un premier temps.
Registered member
351 messages
Popularité : +75 (75 votes)
Posted on January, 13 2017 - 10:12 AM
Bonjour Mickaël,

La console ne s'affiche pas si tu utilises l'API CreateProcess avec une redirection du StdOut dans un buffer.

Tu auras obligatoirement "libeay32.dll" et "ssleay32.dll" parce que impossible de faire sans et enfin il suffit d'avoir "openssl.exe" et un "openssl.cnf" ... soit 4 fichiers.

Pour moi, c'est le temps des vacances au soleil, je tire ma révérence en fin d'après-midi, je ne pourrai donc pas répondre à vos questions avant mon retour.

Bon courage Mickaël !

--
Bon développement, Patrick [3po.fr]
Posted on January, 13 2017 - 10:36 AM
Ok je vais essayer comme ça !
Merci encore.

Bonnes vacances !
Registered member
351 messages
Popularité : +75 (75 votes)
Posted on January, 13 2017 - 12:04 PM
Merci bien.

Voici le lien que j'utilise pour avoir un openssl light : https://indy.fulgan.com/SSL/

Lien que tu trouveras à partir du wiki d'openssl : https://wiki.openssl.org/index.php/Binaries

--
Bon développement, Patrick [3po.fr]
Posted on January, 13 2017 - 2:05 PM
Bon j'avance :

J'ai importer une classe permettant de lancer des commandes sur le console sans l'afficher (WDDOS).

J'exécute ma commande OpenSSL pour crypter :
openssl dgst -sha1 -sign cleprivee.key donnees.txt

Et je récupère bien le message dans le programme Windev.

Mon soucis :
J'aimerais passer la clé privée directement dans la commande sans passer par un fichier, même chose pour la chaine à signer.
J'aimerais faire un truc du genre :
openssl dgst -sha1 -sign "21Fszkfoir23121frFrrGDHhgdTHDh" "chaine_contenant_les_donnees_a_signer"

Mais j'ai l'impression qu'OpenSSL passe obligatoirement par des fichiers.
Posted on February, 03 2017 - 11:11 AM
Personne n'a d'idées la dessus ?
Merci.
Registered member
351 messages
Popularité : +75 (75 votes)
Posted on February, 03 2017 - 3:14 PM
Bonjour Mickael,

De retour pour quelques jours, voici quelques exemples qui te permettront peut-être d'avancer ;)

Ce sont des lignes de commandes à faire directement dans l'invité de commandes, tu pourras ainsi facilement les exécuter depuis Windev.

Pour le mot de passe, il est impératif de le passer en variable d'environnement uniquement pour cette console (j'insiste bien sur le fait qu'elle doit être propre à ta console donc privé), afin d'éviter le détournement de ton mot de passe.
set Password=monmotdepasse

Pour encoder une chaine :
echo exemple de chaine | openssl enc -base64 -e -aes-256-cbc -nosalt -pass env:Password

Et tu obtiens :
5XD6+Kj11FNsg1o/m/++VdfBZwdRWNA/On4GW7Narzw=

Ensuite tu décodes de la façon suivante :
echo 5XD6+Kj11FNsg1o/m/++VdfBZwdRWNA/On4GW7Narzw= | openssl enc -base64 -d -aes-256-cbc -nosalt -pass env:Password

Et tu obtiens :
exemple de chaine

Pour crypter un mot de passe "Apache digest" :
echo UserName:AuthName:Password | openssl dgst -md5


Je n'ai pas d'autres exemples sous la main ... j'espère néanmoins que cela te donnera une piste.

--
Bon développement, Patrick [3po.fr]
Posted on February, 07 2017 - 11:46 AM
Bonjour Patrick,

merci pour ton aide.

J'ai donc pu passer la chaîne à signer dans la commande :

sCommande = "cmd /r echo " + sMonHash + " | openssl dgst -sign cleprivee.key -passin pass:12345


Mais quid de la clé privée ?
C'est surtout elle que je veux éviter d'avoir en tant que fichier sur le poste...

Note : Pour le mot de passe, je n'arrive pas encore à passer par une variable d'environnement.
Ça fonctionne manuellement dans la console mais pas par mon programme.
Ça vient peut être de la classe que j'utilise pour exécuter mes commandes dans la console.
A voir.
Registered member
198 messages
Popularité : +2 (2 votes)
Posted on February, 07 2017 - 6:58 PM
bonsoir,
je cherche à faire la même chose en c++ en faisant une dll , j'ai la solution en c# (.net) mais le soucis c'est qu'il faut installer les librairie c++ visual basic sinon cela ne fonctionne pas , ou alors il faudrait intégrer l'installation des librairies dans l'installateur windev pour que ce soit transparent et obligatoire ,chose que je ne sais pas faire .
Registered member
351 messages
Popularité : +75 (75 votes)
Posted on February, 07 2017 - 7:38 PM
Pour ta variable d'environnement, il faut effectivement la passer via ton CreateProcess (c'est le 7ème paramètre)

Tu mets dans une chaine : VAR_ENV=contenu [suivi de 2 caractères NULL]
Si tu as plusieurs variables d'environnement à passer alors il faut les séparer avec un caractère NULL

Environnement est une chaine = "VAR_ENV=contenu" + Caract(0) + Caract(0)

Et tu passes en 7ème paramètre du CreateProcess le pointeur de la chaine : &Environnement

Pour ton fichier .key ... bon il est déjà protégé avec un mot de passe que personne n'aura ... c'est déjà bien mais d'après mes quelques recherches, OpenSSL ne semble pas vouloir faire autrement ou du moins je n'ai pas trouvé.

Il faudrait que je rende publique ma librairie de cryptographie mais je dois encore bosser dessus et je ne peux hélas te le proposer rapidement.

--
Bon développement, Patrick [3po.fr]
Message modified, February, 07 2017 - 7:41 PM
Registered member
198 messages
Popularité : +2 (2 votes)
Posted on February, 07 2017 - 8:44 PM
Patrick ALLÉMOZ a écrit :
Il faudrait que je rende publique ma librairie de cryptographie mais je dois encore bosser dessus et je ne peux hélas te le proposer rapidement.

Bonsoir,
même pas fini ,cela m'intéresse pour avancer sur ma signature de chaine ....
Posted on February, 08 2017 - 1:21 PM
Merci Patrick, c'est très clair !

Je verrais si c'est suffisant pour la certification NF525.
Je vais faire la formation du "Pack Découverte" le mois prochain certainement.
J'espère qu'elle répondra à mes nombreuses questions !
Registered member
198 messages
Popularité : +2 (2 votes)
Posted on February, 08 2017 - 2:27 PM
Bonjour michael ,
par curiosité , combien coute le 'pack découverte' ainsi que la totale chez eux ?
Posted on February, 08 2017 - 4:09 PM
GAD,

le kit découvert comprend les règles NF525, une journée de formation pour 1 personne, un audit à blanc, et l'audit réel avec la certification. Le total est de 1500€.

Les règles seules sont à 500€ je crois.

http://shop.infocert.org/fr/home/29-decouverte-nf-525.html
Registered member
351 messages
Popularité : +75 (75 votes)
Posted on February, 08 2017 - 4:20 PM
Gad,

De mémoire, j'ai vu le pack découverte pour "Editeur de logiciel de système d'encaissement" à 1500 € HT ... tu commences direct par une formation pratique, un bon encaissement de 1500 avant d'avoir la théorie !

Concernant ma librairie, elle permet de générer de certificat de tous les types (RSA, DSA, EC), de générer des certificats CA (Certificate Authority), CSR (Certificate Signing Request), d'utiliser des certificats auto-générés ou achetés auprès d'un CA, de signer n'importe quoi et n'importe comment, d'importer et d'exporter les certificats publiques et privés avec la possibilité d'utiliser le magasin Windows. Le tout sans OpenSSL, juste avec une DLL.

Je me sers également de cette librairie pour automatiser la récupération et la mise en production des certificats SSL "Let's Encrypt" pour des serveurs Web, Mail, FTP, LDAP, XMPP ... sans que je n'ai rien à faire. Les certificats ne sont valables que 3 mois, il est contraignant de refaire ces tâches répétitives tous les 2 à 3 mois sur tous les serveurs, un automate est donc le bienvenue pour ça et ce sera le mien ! Je l'utilise aussi pour bien d'autres choses ...

La mise au point est longue et je n'ai malheureusement que peu de temps pour ça ... mais dès que j'aurai une version diffusable, je la proposerai en téléchargement. Les béta-testeurs sont les bienvenus, en tout cas je t'ai noté dans mon listing.

--
Bon développement, Patrick [3po.fr]
Registered member
198 messages
Popularité : +2 (2 votes)
Posted on February, 08 2017 - 5:50 PM
Patrick ALLÉMOZ a écrit :
Concernant ma librairie, elle permet de générer de certificat de tous les types (RSA, DSA, EC), de générer des certificats CA (Certificate Authority), CSR (Certificate Signing Request), d'utiliser des certificats auto-générés ou achetés auprès d'un CA, de signer n'importe quoi et n'importe comment, d'importer et d'exporter les certificats publiques et privés avec la possibilité d'utiliser le magasin Windows. Le tout sans OpenSSL, juste avec une DLL.

Je me sers également de cette librairie pour automatiser la récupération et la mise en production des certificats SSL "Let's Encrypt" pour des serveurs Web, Mail, FTP, LDAP, XMPP ... sans que je n'ai rien à faire. Les certificats ne sont valables que 3 mois, il est contraignant de refaire ces tâches répétitives tous les 2 à 3 mois sur tous les serveurs, un automate est donc le bienvenue pour ça et ce sera le mien ! Je l'utilise aussi pour bien d'autres choses ...


effectivement c'est du lourd , je vais me pencher sur ma signature ,connait-tu https://www.cryptopp.com ? je suis en train de regarder mais je ne vois pas la signature de chaine , le hash ok ,mais pas de signature avec une clé privé .... aurait-tu par hasard une librairie open source en c ou c++ qui pourrait me signer une chaine en rsa ?
Registered member
198 messages
Popularité : +2 (2 votes)
Posted on February, 08 2017 - 5:57 PM
je rappelle que c'est pour gagner des octets car chaque enregistrement avec la fonction certificat de windev pese 1500 caractère (pour quelque '11212,1212,122" alors qu'en signant en c# avec RSAFormatter.CreateSignature(Sign) ne pèse que 300 caractère (5 fois moins) ,le problème pour moi est l'installation du framework .net en +
Registered member
351 messages
Popularité : +75 (75 votes)
Posted on February, 09 2017 - 1:36 PM
Bonjour Gad,

Il y a des éléments dont tu ne tiens pas compte, ta clé a une durée de vie (en général 1 an), il te faudra repasser par la case "décaissement" }:( pour la renouveler. Lors de ton renouvellement, ta clé changera, voire même la taille de la clé changera selon l'évolution des calculateurs quantiques qui seront capables de casser des tailles de clés de plus en plus grande.

Le fait que ta clé évolue, cela implique qu'à un moment donné elle sera différente. Stocker la clé publique dans la signature est une très bonne chose, puisqu'elle t'affranchit justement de la garder en référence. Imagine simplement la signature d'un chèque sans le numéro de compte, il est impossible de vérifier la signature ... et encore pire si tu la contrôles sur un autre système qui n'a pas connaissance de la clé publique.

Le stockage de ta signature pourra donc augmenter si tu passes du RSA 2048 au RSA 4096 ou diminuer si tu passes de RSA en "Elliptique Curve", il te faut donc stocker ça dans une rubrique mémo.

Les rubriques mémo peuvent être compressées de base par le moteur HFSQL, même si je ne sais pas ce qu'est une "Compression standard" pour PCSoft, l'un des principes de base de la compression est de comptabiliser la répétition de chaine et donc de la stocker une fois dans une table et de faire référence à cette table autant de fois qu'il y a cette répétition.

La répétition de ta clé publique dans ta signature sera donc compressée et ne prendra que très peu de place, tu t'affranchiras du coup de la mémorisation de toutes tes clés publiques ou d'élément y faisant référence pour la retrouver. Et je ne te parle d'environnement multi-sociétés ... qui pourrait multiplier tes clés.

Fais simplement un essai de stockage et de compression d'une rubrique mémo pour ta signature ... et dis nous ce qu'il en est de la taille ... tu verras que j'ai certainement raison (en plus tu as l'option de cryptage qui protégera tes données contre la falsification).

Avec tout ça, tu t'affranchis de l'installation de librairie externe dont tu soulignes le problème, le développement d'une usine à gaz supplémentaire, les phases de test de ces nouvelles librairies, ... et tu restes dans le standard Windev, ce qui est de loin la meilleure solution.

Cela reste mon avis et n'engage que moi ... tu as le droit de ne pas le partager.

Au pire ... tu ne veux pas faire tout ça, alors il te suffit d'extraire la clé publique de ta signature et de ne stocker que la signature.

--
Bon développement, Patrick [3po.fr]
Message modified, February, 09 2017 - 1:38 PM
Registered member
198 messages
Popularité : +2 (2 votes)
Posted on February, 09 2017 - 11:50 PM
Bonsoir,
merci patrick de ta réponse , je suis entièrement d'accord avec toi ,par contre j'ai testé une simple signature en memo fait augmenter la taille du mmo de 2ko ,en sachant qu'en moyenne dans un logiciel de caisse de base on fait 100 tickets jour * 25 lignes * 300 jours ,grosso modo 750 000 lignes par an * 2 ko de plus .... çà fait 1,5 go de plus en gros ...oupssss,faut gratter des octets au maxi sur cette signature ...
quelle est l'intérêt de la signature en rsa2048 ou plus ? la solidité ?,l'intérêt est de crypter avec la clé public mais seul le développeur pourrait assurer que les données non pas été falsifié en décryptant lui même (un tiers ne pourrait donc pas contrôler) ,c'est donc pas possible .... si tu veux contrôler ou faire contrôler avec une clé public il faut signer avec la clé privé ,il faut donc embarquer ta clé privé ,un hacker peux donc la trouver dans ton programme (ou tout du moins dans la mémoire) ,pas besoin de super calculateur ...... je ne sais pas quoi penser de toute cette affaire ,bof bof bof .....
je pense quand même rester sur une signature rsa de 300-400 octets , il me semble d'ailleurs à lire les posts que la nf525 c'est basé la dessus ,reste plus qu'à faire une dll en c ou c++ ,dur dur
Registered member
351 messages
Popularité : +75 (75 votes)
Posted on February, 10 2017 - 3:58 PM
Bonjour Gad,

L’intérêt de la signature est justement de prouver que tes données n'ont pas été falsifiées mais effectivement seul toi peut le contrôler puisque c'est toi qui gère l'organisation des données pour cette signature et qu'aucune directive n'est donné pour normaliser cela.

Le fait que la clé privée soit embarquée est un gros problème, c'est évident ... c'est pour cela que j'ai un serveur de signature.
C'est lui qui signe mes données et je les archive en même temps (ce qui me permet d'avoir un historique hors application et de pouvoir valider les données à coup sûr par un rapprochement), dans ce cas la clé privée reste vraiment privée.
La communication se fait en SSL avec un test du certificat afin qu'il ne soit pas usurpé, la communication est en plus cryptée (ça c'est mon coté parano !).

Cela n'empêchera pas un hacker de tracer mon application et de reproduire le mode opératoire ... il est très facile de tracer une application même si tu as mis des anti-traceurs ou anti-debuggeur (cela sert uniquement à contrer les pirates niveau zéro !).

Mais bon ... faire tout ça pour ça ... tu as raison, on se demande à quoi cela sert réellement ! On sait par contre à qui cela profite.

Dans l'absolu pour éviter tous ces problèmes ... il suffit de supprimer la monnaie physique ... donc plus de billets et plus de pièces, que de la monnaie électronique ! C'est ce qu'il se passera dans les années futures, certains pays commencent à mettre des code-barres sur les billets et on se doute bien de l'utilité que cela aura dans l'avenir ... bientôt on ne fera plus de black, on fera du bitcoin !

La surprise vient surtout de ton test sur la compression des fichiers "mémo" ... je n'ai jamais prêté attention à cela car j'estime qu'aujourd'hui il est facile de mettre des disques de grosses capacités en place sur les serveurs pour des sommes modiques.
J'ai des fichiers mémo de plusieurs dizaines de Go et cela ne pose aucun problème, mes clients n'ont d'ailleurs jamais rechigner la dessus.

Si je ne trompe pas, dans le cas de cette norme, il y a juste une signature et pas de notion de cryptage.

Pour mémoire ou ceux qui n'ont pas compris comment fonctionne l'utilisation de clé asymétrique de type RSA/DSA/EC :
- tu signes tes données avec ta clé privée, et n'importe qui peut contrôler la validité de la signature avec ta clé publique (on fait ça par exemple pour les mails, on signe le contenu avec la clé privée ... c'est mon certificat SMime qui est utilisé dans ce cas, la validité est faite dans le gestionnaire de mail qui garanti l'expéditeur et que le contenu n'a pas été falsifié).
- tu cryptes (ou chiffres) tes données avec ta clé privée et la clé publique du correspondant et ton correspondant décrypte (ou déchiffre) tes données avec sa clé privée et ta clé publique. Le cryptage/décryptage oblige d'avoir le couple inverse publique/privée et privée/publique.

Contrairement à l'utilisation de clé symétrique, il n'y a pas de clé publique et privée. c'est juste un mot de passe qui est utilisé avec une méthode de cryptage.

Exemple de signature sous Thunderbird :




--
Bon développement, Patrick [3po.fr]
Posted on February, 10 2017 - 5:49 PM
Le 10/02/2017 à 14:58, "ÿÿÿÿÿÿÿÿÿÿ" a écrit :
Bonjour Gad,

L’intérêt de la signature est justement de prouver que tes données n'ont
pas été falsifiées mais effectivement seul toi peut le contrôler puisque
c'est toi qui gère l'organisation des données pour cette signature et
qu'aucune directive n'est donné pour normaliser cela.

Le fait que la clé privée soit embarquée est un gros problème, c'est
évident ... c'est pour cela que j'ai un serveur de signature.
C'est lui qui signe mes données et je les archive en même temps (ce qui
me permet d'avoir un historique hors application et de pouvoir valider
les données à coup sûr par un rapprochement), dans ce cas la clé privée
reste vraiment privée.
La communication se fait en SSL avec un test du certificat afin qu'il ne
soit pas usurpé, la communication est en plus cryptée (ça c'est mon coté
parano !).

Cela n'empêchera pas un hacker de tracer mon application et de
reproduire le mode opératoire ... il est très facile de tracer une
application même si tu as mis des anti-traceurs ou anti-debuggeur (cela
sert uniquement à contrer les pirates niveau zéro !).

Mais bon ... faire tout ça pour ça ... tu as raison, on se demande à
quoi cela sert réellement ! On sait par contre à qui cela profite.

Dans l'absolu pour éviter tous ces problèmes ... il suffit de supprimer
la monnaie physique ... donc plus de billets et plus de pièces, que de
la monnaie électronique ! C'est ce qu'il se passera dans les années
futures, certains pays commencent à mettre des code-barres sur les
billets et on se doute bien de l'utilité que cela aura dans l'avenir ...
bientôt on ne fera plus de black, on fera du bitcoin !

La surprise vient surtout de ton test sur la compression des fichiers
"mémo" ... je n'ai jamais prêté attention à cela car j'estime
qu'aujourd'hui il est facile de mettre des disques de grosses capacités
en place sur les serveurs pour des sommes modiques.
J'ai des fichiers mémo de plusieurs dizaines de Go et cela ne pose aucun
problème, mes clients n'ont d'ailleurs jamais rechigner la dessus.

Si je ne trompe pas, dans le cas de cette norme, il y a juste une
signature et pas de notion de cryptage.

Pour mémoire ou ceux qui n'ont pas compris comment fonctionne
l'utilisation de clé asymétrique de type RSA/DSA/EC :
- tu signes tes données avec ta clé privée, et n'importe qui peut
contrôler la validité de la signature avec ta clé publique (on fait ça
par exemple pour les mails, on signe le contenu avec la clé privée ...
c'est mon certificat SMime qui est utilisé dans ce cas, la validité est
faite dans le gestionnaire de mail qui garanti l'expéditeur et que le
contenu n'a pas été falsifié).
- tu cryptes (ou chiffres) tes données avec ta clé privée et la clé
publique du correspondant et ton correspondant décrypte (ou déchiffre)
tes données avec sa clé privée et ta clé publique. Le
cryptage/décryptage oblige d'avoir le couple inverse publique/privée et
privée/publique.

Contrairement à l'utilisation de clé symétrique, il n'y a pas de clé
publique et privée. c'est juste un mot de passe qui est utilisé avec une
méthode de cryptage.

Exemple de signature sous Thunderbird :




--
Bon développement, Patrick [3po.fr]




Bonjour,

Je plussoie, j'ai l'impression que GAD crypte ses données au lieu de
générer une signature. Une signature ticket "pese" environ 60 octets ...
et pas 2ko.

Fred.
Registered member
198 messages
Popularité : +2 (2 votes)
Posted on February, 10 2017 - 6:40 PM
Bonjour Patrick ,
Ta réponse est très clair et je suis 100% d'accord avec toi, je vais prendre la meilleur décision et celle qui prendra le moins de place ....
merci de tes réponses

Bonjour,

Je plussoie, j'ai l'impression que GAD crypte ses données au lieu de
générer une signature. Une signature ticket "pese" environ 60 octets ...
et pas 2ko.

Fred.


Je parle de la signature avec windev et un certificat fabriquer avec openssl , je créer la signature avec le certificat et j'enregistre la signature dans un fichier fic avec une rubrique memo , il suffit de regarder avec l'explorateur le grossissement du fichier ....
avec CertificatSigneChaîne de windev
100 enregistrement : 151ko
avec System.Security.Cryptography.RSAPKCS1SignatureFormatter en c#
100 enregistrement : 51ko

comme le dit patrick , il faudrait enlever la clé dans la signature de CertificatSigneChaîne pour gagner de la place ....
je ne sais pas avec quoi tu signe Fred pour obtenir 60 octets ,aurait-tu un exemple ?
Registered member
351 messages
Popularité : +75 (75 votes)
Posted on February, 13 2017 - 5:13 PM
Bonjour,

Normalement la taille d'une signature avec une clé RSA 2048 est de 256 octets.

Avoir une signature plus petite veut simplement dire que tu utilises une clé RSA inférieure à 2048 bits ou une clé de type EC (peu importe la taille de cette clé, c'est effectivement beaucoup plus petit).

Utiliser une clé RSA 512 ... autant ne rien faire (il faut quelques minutes pour la cracker), actuellement il est quasiment interdit d'utiliser une clé RSA en dessous de 2048 bits.

Je n'ai pas trouvé de CA délivrant explicitement des clés type EC à des prix corrects ... c'est pour cela que je passe en auto-génération pour le moment sur ce type de clé. De toute façon, si c'est pour garantir que mes données n'ont pas été modifiées par un tiers, mes logiciels peuvent donc se fier à mes propres clés.

Signer ou crypter avec une EC est beaucoup plus rapide que du RSA, et est peu gourmand en stockage. Je préfère de loin utiliser de l'EC 512 ... plutôt que son équivalent RSA 4096.

--
Bon développement, Patrick [3po.fr]
Registered member
198 messages
Popularité : +2 (2 votes)
Posted on February, 13 2017 - 6:28 PM
bonsoir
Effectivement Patrick on gratte de la place

Well Known Curve Signature Size
secp112r1 28
secp128r1 32
secp160r1 40
secp192r1 48
secp224r1 56
secp256r1 64
secp384r1 96
secp521r1 132

pour l'instant ,je suis bloqué bêtement sur une fonction avec crypto++ , mais je persiste ..
Registered member
198 messages
Popularité : +2 (2 votes)
Posted on February, 15 2017 - 11:33 AM
Bonjour patrick,
Quand tu signe la même chaine avec le même mode de cryptage et la même clé privé ,on devrait avoir le même résultat de signature avec openssl ,cryptopp ou avec les api de c# ? je me trompe car de mon coté ce n'est pas le cas ..
Posted on February, 15 2017 - 11:44 AM
GAD,

je ne pense pas parce ce que j'ai un résultat différent aussi et ma vérification de signature fonctionne bien.
Ou alors j'ai raté quelque chose...
Registered member
198 messages
Popularité : +2 (2 votes)
Posted on February, 15 2017 - 3:12 PM
j'ai compris le soucis :
RSASSA_PKCS1v15_SHA_Signer signer(privateKey) de crypto++ fait un sh1 et signe
rsautl -sign -in asigner.txt -inkey maclé.pem -out signature.txt d'openssl ne fait que signer
par contre
dgst -sha1 -sign maclé.pem -out signature.txt asigner.txt d'openssl fait un sh1 et signe

les deux sont égaux maintenant
tout simplement
Registered member
198 messages
Popularité : +2 (2 votes)
Posted on February, 15 2017 - 5:41 PM
Bonjour Michael ;
si tu as besoin de ce projet de DLL , donne moi ton mail ...
A+
Posted on February, 16 2017 - 8:48 AM
Merci GAD mais de mon côté j'intègre OpenSSL avec mon programme.

Ça me permet d'utiliser une signature ECDSA 256 bits au lieu de RSA 2048 bits, donc signature beaucoup plus petite et plus rapide à générer.
Mon logiciel de caisse est destiné à nos propres magasins, donc moins de contraintes de déploiement.

Quand je disais que j'avais un résultat différent, je veux dire que pour les mêmes données, hashées de la même manière, et signées avec la même clé privée, on a des signatures différentes à chaque fois.
Mais bien sûr, elles sont toujours vérifiable avec la clé publique, c'est normal.

Exemple sur ce site :
https://kjur.github.io/jsrsasign/sample-ecdsa.html
Registered member
351 messages
Popularité : +75 (75 votes)
Posted on February, 16 2017 - 12:57 PM
Bonjour,

Les signatures avec des clés asymétriques intègrent des nombres aléatoires au moment de sa génération ... ce qui a pour effet de donner un résultat différent à chaque fois. Ceci dans un but simple, éviter te trouver ta clé par brute force, par dictionnaire ...

Comme le dit Mickael, c'est la vérification de la signature qu'il faut faire et non son égalité avec une autre signature.

--
Bon développement, Patrick [3po.fr]
Registered member
198 messages
Popularité : +2 (2 votes)
Posted on February, 19 2017 - 5:09 PM
Patrick ALLÉMOZ a écrit :
Bonjour,
Les signatures avec des clés asymétriques intègrent des nombres aléatoires au moment de sa génération ... ce qui a pour effet de donner un résultat différent à chaque fois. Ceci dans un but simple, éviter te trouver ta clé par brute force, par dictionnaire ...
Comme le dit Mickael, c'est la vérification de la signature qu'il faut faire et non son égalité avec une autre signature.
Bon développement, Patrick [3po.fr]


bonjour,

je suis d'accord avec toi ,mais en RSA PKCS1v15 SHA1 il n' y pas de nombres aléatoire apparement le même message signer fait toujours le même résultat contrairement a l'Elliptic Curve qui ne donne jamais le même résultat ; à ce propos je rencontre un soucis en EC entre openssl et crypto++ ,la signature ne fait pas la même longueur (il manque 7 octet avec crypto++) aussi bien en secp521r1 ou secp256k1 (asn1) , ma vérification échoue avec openssl (la vérification est bonne avec crypto++ bien sûr) ,la signature en secp521r1 fait 132 octets et en secp256k1 64 octets , 139 octets pour openssl en secp521r1 ... si tu as une idée ,je suis preneur , je ne vais pas signer avec ceci si les résultats ne sont pas cohérent
Posted on March, 13 2017 - 2:26 AM
Le 2 janvier 2017 à 09:09, dans
<news:20173a2536b24edef5170b0ae15944aa9755@news.pcsoft.fr>, "ÿÿÿÿÿÿÿÿÿÿ"
nous disait :

Pour la signature de tes chaines ... il faut soit que tu utilises
CertificatSélecteur et choisir ton certificat qui est dans le magasin
ou charger directement ton fichier .cer avec CertificatCharge ensuite
tu utilises les commandes "CertificatSigne".


Question sûrement idiote, mais un certificat de signature de code
permet-il forcément de signer des chaînes ? Je n'ai pas réussi à trouver
de réponse claire.

--
Eric
Registered member
6 messages
Posted on March, 14 2017 - 4:24 PM
Bonjour Tous,
Concerné également par la NF525, je n'arrive pas à trouver le type de certificat qu'il me faudrait. Le site www.tbs-certificats.com a l'air pas mal, mais un simple certificat permettant la signature serait suffisant, je n'arrive vraiment pas à m'y retrouver, si l'un de vous pouvait me renseigner, ça me ferait gagner un temps fou je crois, et surtout, j'aurais moins peur de me tromper....
Merci
Manu
Posted on April, 06 2017 - 10:57 AM
Manu a écrit :
Bonjour Tous,
Concerné également par la NF525, je n'arrive pas à trouver le type de certificat qu'il me faudrait. Le site www.tbs-certificats.com a l'air pas mal, mais un simple certificat permettant la signature serait suffisant, je n'arrive vraiment pas à m'y retrouver, si l'un de vous pouvait me renseigner, ça me ferait gagner un temps fou je crois, et surtout, j'aurais moins peur de me tromper....
Merci
Manu



Bonjour,
Nous cherchons aussi un fournisseur de certificat et voulons pas nous tromper.

Nous pensons prendre http://www.chambersign.fr/certificat-rgs-initio/

SI ceux qui ont déjà pris des certificats peuvent nous faire un retour,
Merci

Vincent
Registered member
5 messages
Posted on April, 06 2017 - 12:04 PM
Bonjour,

sachez que dans le cadre de la NF525, un certificat auto-signé ou une paire de clés générée soi-même suffisent (avec OpenSSL par exemple).
Donc pas forcément utile d'en acheter un.
C'est ce que nous avons choisi de faire.
Posted on April, 10 2017 - 4:40 PM
Le 6 avril 2017 à 08:57, dans
<news:201788aafdb9430574e0472f75c31f47ac70@news.pcsoft.fr>, Vincent nous
disait :

Nous cherchons aussi un fournisseur de certificat et voulons pas nous tromper.
Nous pensons prendre http://www.chambersign.fr/certificat-rgs-initio/


Je viens de l'installer et de le tester.

> SI ceux qui ont déjà pris des certificats peuvent nous faire un retour,

Il permet de signer des chaînes de caractères ainsi que des exécutables
et des installations sans aucun problème.

Juste un petit détail : utilisez IE pour l'installer, plutôt que
Firefox. En effet, les fonctions Certificat de Windev ne reconnaissent
pas le certificat s'il n'est pas dans le magasin de IE.

--
Eric
Posted on April, 11 2017 - 10:13 AM
Est-ce qu'ils vous ont "cassé les pieds" pour justifier l'existence de
votre entreprise afin d'obtenir le certificat ? (on a eu le soucis avec
comodo et on a laissé tombé)... ou est-ce que la procédure d'achat a été
simple ?

eric l.

Le 10/04/2017 à 14:40, Eric a écrit :
Le 6 avril 2017 à 08:57, dans
<news:201788aafdb9430574e0472f75c31f47ac70@news.pcsoft.fr>, Vincent nous
disait :

Nous cherchons aussi un fournisseur de certificat et voulons pas nous
tromper.
Nous pensons prendre http://www.chambersign.fr/certificat-rgs-initio/

Je viens de l'installer et de le tester.

SI ceux qui ont déjà pris des certificats peuvent nous faire un retour,

Il permet de signer des chaînes de caractères ainsi que des exécutables
et des installations sans aucun problème.

Juste un petit détail : utilisez IE pour l'installer, plutôt que
Firefox. En effet, les fonctions Certificat de Windev ne reconnaissent
pas le certificat s'il n'est pas dans le magasin de IE.
Registered member
198 messages
Popularité : +2 (2 votes)
Posted on April, 11 2017 - 11:47 AM
Bonjour,
Comme le dis Michaël
une paire de clés générée soi-même suffisent (avec OpenSSL par exemple).
Posted on April, 11 2017 - 7:01 PM
Le 11 avril 2017 à 08:13, dans
<news:20170b87a43e2e155df0c6ab932c6e58d15e@news.pcsoft.fr>, eric l. nous
disait :

Est-ce qu'ils vous ont "cassé les pieds" pour justifier l'existence de
votre entreprise afin d'obtenir le certificat ? (on a eu le soucis avec
comodo et on a laissé tombé)... ou est-ce que la procédure d'achat a été
simple ?


Ça a été un peu compliqué dans la mesure où je suis sous un statut
d'indépendant. De ce fait, je ne rentre pas dans leurs cases...
Je m'en suis sorti en fournissant un scan de ma carte d'identité, ma
situation au répertoire SIRENE (facile à obtenir en ligne) et un
document URSSAF (en l'occurrence mon attestation de contribution à la
formation professionnelle).
Pour les sociétés et ceux qui ont le statut d'auto-entrepreneur, je
pense que c'est plus simple encore.

Comodo, j'ai laissé tomber aussi, et pour les mêmes raisons que toi.

--
Eric
Posted on April, 11 2017 - 7:03 PM
Le 11 avril 2017 à 09:47, dans
<news:2017302f33ac0dce846445fa5ff18b82434c@news.pcsoft.fr>, GAD nous
disait :

Comme le dis Michaël
une paire de clés générée soi-même suffisent (avec OpenSSL par exemple).


Une paire de clés générées soi-même ne permettra pas de signer un exe ou
une installation de façon fiable pour le client.

--
Eric
Posted on April, 12 2017 - 4:07 PM
Bonjour,

On parle beaucoup de signer des chaînes dans nos applications au moyen
d'un certificat. Bien.
Maintenant, la question que je me pose, c'est celle de l'installation de
ce certificat chez nos clients. Comment procède-t-on ?

--
Eric
Registered member
351 messages
Popularité : +75 (75 votes)
Posted on April, 12 2017 - 6:08 PM
Bonjour Eric,

Je sais que ce post est long ... mais si tu regardes ce que j'ai posté le 04 janvier 2017 à 10:02, tu auras ta réponse avec en plus un cryptage de ta clé.

En ce qui concerne les retours sur nos certificats SSL, je ne rencontre aucun problème, ni dans la démarche de validation, ni dans l'utilisation.

Pour information, le critère n°1 que vous devez prendre en compte pour l'achat d'un certificat est que les signataires soient connus des navigateurs et OS courant. Le prix n'a aucun importance puisque le service est exactement le même, prendre le plus cher ne vous apportera rien ! Vous pouvez donc avec le critère n°1, prendre le moins cher, à vous de trouver le moins cher et le moins embêtant.

Pour vos certificats SSL, je vous conseille "Let's encrypt" .... déjà parce qu'ils sont gratuits et financés par de grosses sociétés mondiales et qu'ils fournissent également des certificats en ECC 384 bits (SHA 256) permettant entre autres d'être grade A+ 100% au test de sécurité SSL Labs et que vous retrouvez aujourd'hui leur certificat Root de partout.





Vous pouvez utiliser les certificats de "Let's encrypt" pour tous vos serveurs qui utilisent du SSL ... et la liste est longue ! Vous obtenez également un accès TSE avec votre propre certificat et non un certificat auto-généré ....

La mise en place n'est pas compliqué si on sait lire les bonnes documentations.

Et pour en finir avec cette norme ... je pense que cette formation à 1500 € ressemble bien à un attrape couillon ... puisqu'au final on ne vous donne rien et on vous dit même de générer vos clés ... signer des données ne nécessite aucune formation !
Je serais curieux de savoir ce qui justifie ce prix exorbitant !

--
Bon développement, Patrick [3po.fr]
Posted on April, 12 2017 - 7:15 PM
ok merci pour les infos Eric ;)

et chez eux c'est bien ce produit qui permet de signer un exe ?
http://www.chambersign.fr/certificat-rgs-initio/

parce que sur leur page ce n'est pas trop indiqué, ça parle de signer un
document mais pas un exe ? (ou alors il faut que je change mes
lunettes....?!)

merci,
eric l.

Le 11/04/2017 à 17:01, Eric a écrit :
Le 11 avril 2017 à 08:13, dans
<news:20170b87a43e2e155df0c6ab932c6e58d15e@news.pcsoft.fr>, eric l. nous
disait :

Est-ce qu'ils vous ont "cassé les pieds" pour justifier l'existence de
votre entreprise afin d'obtenir le certificat ? (on a eu le soucis
avec comodo et on a laissé tombé)... ou est-ce que la procédure
d'achat a été simple ?

Ça a été un peu compliqué dans la mesure où je suis sous un statut
d'indépendant. De ce fait, je ne rentre pas dans leurs cases...
Je m'en suis sorti en fournissant un scan de ma carte d'identité, ma
situation au répertoire SIRENE (facile à obtenir en ligne) et un
document URSSAF (en l'occurrence mon attestation de contribution à la
formation professionnelle).
Pour les sociétés et ceux qui ont le statut d'auto-entrepreneur, je
pense que c'est plus simple encore.

Comodo, j'ai laissé tomber aussi, et pour les mêmes raisons que toi.
Posted on April, 13 2017 - 2:48 PM
Le 12 avril 2017 à 17:15, dans
<news:2017e5f41b547435d706475a3b7048b1b5eb@news.pcsoft.fr>, eric l. nous
disait :

> ok merci pour les infos Eric ;)

De rien.

et chez eux c'est bien ce produit qui permet de signer un exe ?
http://www.chambersign.fr/certificat-rgs-initio/


parce que sur leur page ce n'est pas trop indiqué, ça parle de signer un
document mais pas un exe ? (ou alors il faut que je change mes
lunettes....?!)


Oui, c'est bien celui-là. Il est vrai que la description est un peu
sommaire, mais ça marche.

--
Eric
Posted on April, 13 2017 - 3:22 PM
Super !

Je vais me rapprocher d'eux ;)))

merci,
eric l.

Le 13/04/2017 à 12:48, Eric a écrit :
Le 12 avril 2017 à 17:15, dans
<news:2017e5f41b547435d706475a3b7048b1b5eb@news.pcsoft.fr>, eric l. nous
disait :

ok merci pour les infos Eric ;)

De rien.

et chez eux c'est bien ce produit qui permet de signer un exe ?
http://www.chambersign.fr/certificat-rgs-initio/

parce que sur leur page ce n'est pas trop indiqué, ça parle de signer
un document mais pas un exe ? (ou alors il faut que je change mes
lunettes....?!)

Oui, c'est bien celui-là. Il est vrai que la description est un peu
sommaire, mais ça marche.
Posted on April, 13 2017 - 3:42 PM
Le 12 avril 2017 à 16:08, dans
<news:201796531bad88d2fb694e8ec820bcf919f5@news.pcsoft.fr>,
priv!24v8+CE8I+PATRICK@ALLEMOZ+COMZA4JF+C2FB5GM0r95+2p51s6@news.pcsoft
nous disait :

Je sais que ce post est long ... mais si tu regardes ce que j'ai posté
le 04 janvier 2017 à 10:02, tu auras ta réponse avec en plus un
cryptage de ta clé.


Merci Patrick pour ces infos. J'avais lu ce post à l'époque et puis je
l'avais oublié. Les méfaits de l'âge... :-)

Restent quand même plusieurs questions. Par exemple, lorsque la validité
d'un certificat arrive à son terme, on doit faire une mise à jour
intégrant le nouveau chez tous les utilisateurs. Mais quid du certificat
périmé ? Il faut le laisser à disposition du client en cas de contrôle
de l'administration fiscale sur les données qu'il a servi à signer, je
suppose.

--
Eric
Posted on April, 14 2017 - 2:59 AM
Le 13 avril 2017 à 13:42, dans
<news:imejdnicl2wk.dlg@ericb33spam.alussinan.org>, Eric nous disait :

Restent quand même plusieurs questions. Par exemple, lorsque la validité
d'un certificat arrive à son terme, on doit faire une mise à jour
intégrant le nouveau chez tous les utilisateurs. Mais quid du certificat
périmé ? Il faut le laisser à disposition du client en cas de contrôle
de l'administration fiscale sur les données qu'il a servi à signer, je
suppose.


Je me réponds (en partie) : la fonction CertificatExtrait permet de
récupérer depuis une chaîne le certificat qui a servi à la signer. De ce
fait, rien à laisser chez le client.

--
Eric
Registered member
351 messages
Popularité : +75 (75 votes)
Posted on April, 14 2017 - 5:43 AM
Bonjour Eric,

Lorsque tu signes avec ta clé publique, elle est soit intégrée dans ta signature soit stockée dans un magasin de certificat ou dans un fichier CRT par exemple (c'est un fichier texte qui contient ta clé) [Je rappelle juste qu'il NE FAUT JAMAIS DONNER sa clé privée ni même la faire circuler sans cryptage par mot de passe].

Il est donc facile de l'archiver pour tes clients selon la méthode que tu jugeras idéale pour toi.

Durée de vie ... la signature contient un horodatage, on sait donc de quand date la signature et donc à quel certificat elle correspond.
La signature restera donc toujours valable dans le temps !

--
Bon développement, Patrick [3po.fr]
Posted on April, 14 2017 - 7:50 PM
Le 14 avril 2017 à 03:43, dans
<news:201716629da36e329cbd3af9f1c7e01bb7cb@news.pcsoft.fr>,
priv!24v8+CE8I+PATRICK@ALLEMOZ+COMZA4JF+C2FB5GM0r95+2p51s6@news.pcsoft
nous disait :

Lorsque tu signes avec ta clé publique, elle est soit intégrée dans ta
signature soit stockée dans un magasin de certificat ou dans un
fichier CRT par exemple (c'est un fichier texte qui contient ta clé)
[Je rappelle juste qu'il NE FAUT JAMAIS DONNER sa clé privée ni même
la faire circuler sans cryptage par mot de passe].


Il est donc facile de l'archiver pour tes clients selon la méthode que
tu jugeras idéale pour toi.


La méthode qui semble la plus simple est de l'intégrer dans la
signature, me semble-t-il. Du reste, la fonction CertificatSigneChaîne
ne donne pas le choix !
En revanche, le fait qu'on puisse le récupérer par CertificatExtrait et
l'utiliser sans mot de passe me chiffonne un peu...

Durée de vie ... la signature contient un horodatage, on sait donc de
quand date la signature et donc à quel certificat elle correspond. La
signature restera donc toujours valable dans le temps !


J'avais bien compris que la signature restait valable, mon
questionnement était plutôt sur la mise à disposition du client d'un
certificat périmé. Le fait que le certificat soit intégré à la signature
rend ma question caduque.

Merci encore de ton aide précieuse sur ces interrogations que beaucoup
de développeurs sont amenés à partager.

--
Eric
Registered member
29 messages
Popularité : +3 (3 votes)
Posted on April, 19 2017 - 5:52 PM
Je me suis créé un certificat avec OpenSSL (RSA 2048) et je test avec le code gentiment fourni par Patrick

sChaineTEST est une chaîne = "Test Chaine a Signer"

tabListe_Certificats est un tableau dede Certificats = CertificatCharge(fRepExe() + ["\"] + "Exemple.pfx", "EXEMPLE")

Trace("===== (1) =====")
Trace("Nom : " + tabListe_Certificats[1]..Nom)
Trace("Empreinte : " + tabListe_Certificats[1]..Empreinte)
Trace("Emetteur : " + tabListe_Certificats[1]..Emetteur)
Trace("Valide pour signature : " + tabListe_Certificats[1]..ValidePourSignature)

bufSignature est un Buffer = CertificatSigneChaîne(sChaineTEST, tabListe_Certificats[1] )

MonCertificatExtrait est un Certificat
MonCertificatExtrait = CertificatExtrait(bufSignature, certificatDepuisBuffer)

Trace("=====(2)=====")
Trace("Nom : " + MonCertificatExtrait ..Nom)
Trace("Empreinte : " + MonCertificatExtrait ..Empreinte)
Trace("Emetteur : " + MonCertificatExtrait ..Emetteur)
Trace("Valide pour signature : " + MonCertificatExtrait ..ValidePourSignature)

SI MonCertificatExtrait..ValidePourSignature = Faux ALORS
Info("(2)","Le certificat sélectionné ne permet pas de générer une signature.")
RETOUR
FIN

SELON CertificatVérifieChaîne(sChaineTEST, bufSignature)
CAS certificatOk : Info("Signature valide et certificat fiable")
CAS certificatInvalide : Info("Signature ou certificat invalide")
CAS certificatExpiré : Info("Signature valide mais certificat expiré")
CAS certificatNonFiable : Info("Signature valide mais racine de confiance " + ...
"du certificat non fiable")
AUTRE CAS : Erreur("Erreur sur Certificat Verifie Chaine")
FIN


El là mon certificat est OK pour signature avant la signature de la chaine mais ne l'est plus après.

Une idée d'où peut venir le problème ?
Registered member
351 messages
Popularité : +75 (75 votes)
Posted on April, 26 2017 - 1:49 PM
Eric a écrit :
Le 14 avril 2017 - 19:50, dans
...
En revanche, le fait qu'on puisse le récupérer par CertificatExtrait et l'utiliser sans mot de passe me chiffonne un peu...
...


Bonjour Eric,

Il n'y a que la signature et la clé publique à l'intérieur.

Tu n'as pas besoin de la clé privée pour vérifier que la signature est bonne, la clé publique suffit.
Par contre pour signer, il te faut la clé privée ...

--
Bon développement, Patrick [3po.fr]
Message modified, April, 26 2017 - 1:50 PM
Registered member
29 messages
Popularité : +3 (3 votes)
Posted on April, 26 2017 - 5:06 PM
Je me répond à moi même, en fait il n'est plus possible de tester si la signature est OK après le CertificatExtrait car celui-ci extrait uniquement la clé publique dans le buffer. Merci au support technique pour son aide :)

Alain BLAIZEAU a écrit :
Je me suis créé un certificat avec OpenSSL (RSA 2048) et je test avec le code gentiment fourni par Patrick

sChaineTEST est une chaîne = "Test Chaine a Signer"

tabListe_Certificats est un tableau dede Certificats = CertificatCharge(fRepExe() + ["\"] + "Exemple.pfx", "EXEMPLE")

Trace("===== (1) =====")
Trace("Nom : " + tabListe_Certificats[1]..Nom)
Trace("Empreinte : " + tabListe_Certificats[1]..Empreinte)
Trace("Emetteur : " + tabListe_Certificats[1]..Emetteur)
Trace("Valide pour signature : " + tabListe_Certificats[1]..ValidePourSignature)

bufSignature est un Buffer = CertificatSigneChaîne(sChaineTEST, tabListe_Certificats[1] )

MonCertificatExtrait est un Certificat
MonCertificatExtrait = CertificatExtrait(bufSignature, certificatDepuisBuffer)

Trace("=====(2)=====")
Trace("Nom : " + MonCertificatExtrait ..Nom)
Trace("Empreinte : " + MonCertificatExtrait ..Empreinte)
Trace("Emetteur : " + MonCertificatExtrait ..Emetteur)
Trace("Valide pour signature : " + MonCertificatExtrait ..ValidePourSignature)

SI MonCertificatExtrait..ValidePourSignature = Faux ALORS
Info("(2)","Le certificat sélectionné ne permet pas de générer une signature.")
RETOUR
FIN

SELON CertificatVérifieChaîne(sChaineTEST, bufSignature)
CAS certificatOk : Info("Signature valide et certificat fiable")
CAS certificatInvalide : Info("Signature ou certificat invalide")
CAS certificatExpiré : Info("Signature valide mais certificat expiré")
CAS certificatNonFiable : Info("Signature valide mais racine de confiance " + ...
"du certificat non fiable")
AUTRE CAS : Erreur("Erreur sur Certificat Verifie Chaine")
FIN


El là mon certificat est OK pour signature avant la signature de la chaine mais ne l'est plus après.

Une idée d'où peut venir le problème ?
Posted on April, 26 2017 - 5:42 PM
Le 26 avril 2017 à 11:49, dans
<news:20177d832d55c48540465353102ce72084c9@news.pcsoft.fr>, "ÿÿÿÿÿÿÿÿÿÿ"
nous disait :

Eric a écrit :
Le 14 avril 2017 - 19:50, dans
...
En revanche, le fait qu'on puisse le récupérer par CertificatExtrait et l'utiliser sans mot de passe me chiffonne un peu...
...


> Bonjour Eric,

Il n'y a que la signature et la clé publique à l'intérieur.


Tu n'as pas besoin de la clé privée pour vérifier que la signature est bonne, la clé publique suffit.
Par contre pour signer, il te faut la clé privée ...


D'accord. Alors tout va bien :-)
Merci de cette précision.

--
Eric
Registered member
41 messages
Posted on May, 17 2017 - 7:04 AM
Bonjour,
Peut-être ai-je loupé une ou deux choses mais je me penche aussi sur la NF 525. et le texte de Loi.

J'ai retenu :

1- La certification : Il n'est pas obligatoire d'être certifié par un organisme externe dès lors où l'ensemble des règles est respecté. L'éditeur (si ce n'est pas pour son propre compte) peut délivrer une attestation.

2- Le cryptage : A AUCUN moment, il n'est dit qu'il faut CRYPTER. Le terme exact utilisé dans le texte de Loi est "TECHNIQUE DE CHAÎNAGE".
Je pense donc qu'en l'espèce, un chaînage avec utilisation du SEL suffit et règle les problème complexe de poids et de lenteur.

Ce n'est qu'un avis bien entendu.

Bonne journée à tous
Gilles
Posted on May, 29 2017 - 5:58 PM
Bonjour,
petite question concernant le chaînage.
Cela consiste a chiner les enregistrements du fichier dans l'ordre d'écriture ?
L'écriture 1 se chaine à la 2, la 2 se chaine à la 3 etc, sans distinction de contenu de l'écriture ?
En effet, l'écriture 1 peut concerner le devis 1, l'écriture 2 concerne la facture 2, puis l'écriture 3 concerne le devis 2, etc.
Cela est certainement un peu lourd sur les accès disque non de devoir écrire le mouvement qui nous intéresse puis aller modifier celui d'avant.
Merci
Posted on May, 29 2017 - 10:46 PM
Bonjour,

on doit chainer dans l'autre sens : la signature de l'enreg 12 contient
la signature de l'enreg 1.

Sinon, on ferait exactement ce qu'il st interdit de faire : modifier un
enreg.

Quand à savoir ce que contient ton fichier, c'est ton problème
Si tu as tous les documents dans le même fichier, c'est sans doute plus
simple de tout chainer, mais ca veut dire que tes utilisateurs ne
pourront pas modifier les devis non plus, ce qui st autorisé.

Donc, normalement, on mets les factures dans un fichier à part qui est
le seul chainé.

Cordialement


--
Fabrice Harari
Consultant WinDev, WebDev et WinDev Mobile International

A votre disposition : WXShowroom.com, WXReplication (open source) et
maintenant WXEDM (open source)

Plus d'information sur http://fabriceharari.com


Le 5/29/2017 à 9:58 AM, Simon a écrit :
Bonjour,
petite question concernant le chaînage.
Cela consiste a chiner les enregistrements du fichier dans l'ordre
d'écriture ?
L'écriture 1 se chaine à la 2, la 2 se chaine à la 3 etc, sans
distinction de contenu de l'écriture ?
En effet, l'écriture 1 peut concerner le devis 1, l'écriture 2 concerne
la facture 2, puis l'écriture 3 concerne le devis 2, etc.
Cela est certainement un peu lourd sur les accès disque non de devoir
écrire le mouvement qui nous intéresse puis aller modifier celui d'avant.
Merci
Registered member
43 messages
Popularité : +1 (1 vote)
Posted on May, 30 2017 - 9:32 AM
Bonjour,

Une question supplémentaire :

Le chainage des en-têtes de factures suffit-il ou faut t'il aussi chainer les enregistrements lignes de factures?

Hubert
Posted on May, 30 2017 - 10:54 AM
Le 30/05/2017 à 07:32, Hubert a écrit :
Bonjour,

Une question supplémentaire :
Le chainage des en-têtes de factures suffit-il ou faut t'il aussi
chainer les enregistrements lignes de factures?

Hubert


Pour la NF525, seule les entêtes devaient à l'origine être chainée (si
ton fichier entête contient toutes les données demandées) mais nous
avons choisi de chainer les lignes aussi. Il était question de faire
évoluer la NF525 à ce sujet, je n'ai pas suivi si cela avait été fait ou
pas.

Fred.
Posted on May, 30 2017 - 1:08 PM
Bonjour Hubert,

je ne suis pas juriste, mais bon : une facture est constitué d'un entête
et de lignes.

La loi parle de sécuriser la facture, pas l'ENTETE de facture.

Donc, comme je n'ai pas l'intention de me bagarrer avec les impôts sur
l'interprétation de la loi, perso, je vais sécuriser les deux :-)

Cordialement


--
Fabrice Harari
Consultant WinDev, WebDev et WinDev Mobile International

A votre disposition : WXShowroom.com, WXReplication (open source) et
maintenant WXEDM (open source)

Plus d'information sur http://fabriceharari.com


Le 5/30/2017 à 1:32 AM, Hubert a écrit :
Bonjour,

Une question supplémentaire :
Le chainage des en-têtes de factures suffit-il ou faut t'il aussi
chainer les enregistrements lignes de factures?

Hubert
Registered member
198 messages
Popularité : +2 (2 votes)
Posted on May, 30 2017 - 4:14 PM
Pour info , les NF525 (pour celui que j'ai regardé) ne signe pas les lignes mais les entêtes de facture avec un pseudo hash sur les lignes de règlements , ils ont aussi une parties audit de signer avec différentes vérifications , on interprète comme on veux apparement , pour moi je suis comme fabrice , ceinture est bretelle (je signe même les éléments qui fabrique les factures comme les commandes , c'est dans la loi )....
Registered member
41 messages
Posted on May, 30 2017 - 4:59 PM
Bonjour,

Personnellement, j'ai 1 fichier ENTETE dont je fais évoluer le statut : DEVIS - BON DE COMMANDE / BON DE LIVRAISON / FACTURE / AVOIR
et un fichier LIGNES

Je pars du principe que l'ensemble une fois la FACTURE validée (et donc automatiquement déversée en comptabilité),
je chaîne l'ENTETE FACTURE et SES LIGNES FACTURE et réutilise ce même chaînage lier pour l'écriture d'encaissement.
J'utilise le même principe pour les AVOIRS.

Quant au fait d'avoir un fichier unique pour les ENTETES, rien n'empêche de chaîner les ENTETES FACTURES uniquement. Ainsi, il n'est pas
possible de supprimer une facture mais cela n'a aucune influence sur les autres types de documents.

Au final, je pense qu'en chaînant l'ensemble (ENTETE FACTURE + LIGNES FACTURE et ECRITURE ENCAISSEMENT) cela répond à la norme.

Qu'en pensez-vous ? Me serais-je trompé dans le raisonnement ?

Très bonne journée à tous
Registered member
198 messages
Popularité : +2 (2 votes)
Posted on May, 30 2017 - 6:42 PM
Bonsoir,
je ne vois pas bien comment tu fais pour chainer des enregistrements puisque tu en créer des autres entre temps ( à moins de faire un id de trie spécifique à la signature)
Posted on May, 30 2017 - 8:20 PM
Bonjour Gilles,


> Qu'en pensez-vous ? Me serais-je trompé dans le raisonnement ?

Je ne pense pas que ce soit la bonne question. A mon avis, la bonne
question est : est ce que les impôts vont se (ou TE) demander si tu as
suivi le bon raisonnement ?

Ma réponse est : je ne veux surtout pas que la question se pose, donc :
- je mets les factures dans un fichier a part
- je chaine les entête d'un coté
- je chaine les lignes de l'autre.

Aucune ambiguïté possible, aucune question des impôts, un développeur
qui dort bien la nuit.

Cordialement


--
Fabrice Harari
Consultant WinDev, WebDev et WinDev Mobile International

A votre disposition : WXShowroom.com, WXReplication (open source) et
maintenant WXEDM (open source)

Plus d'information sur http://fabriceharari.com


Très bonne journée à tous
Registered member
198 messages
Popularité : +2 (2 votes)
Posted on May, 31 2017 - 12:34 AM
Bonjour,
une bonne question pour toi fabrice , à qui je fais confiance sur la logique et la façon de structurer les données , comme tu la dit précédemment

Fabrice Harari a écrit :
Ma réponse est : je ne veux surtout pas que la question se pose, donc :
- je mets les factures dans un fichier a part
- je chaine les entête d'un coté
- je chaine les lignes de l'autre.


tu ferais une recopie des données de facture et lignes_facture après impression (et blocage) par exemple dans deux autres fichiers (facture_secu et lignes_facture_secu) qui eux auront une signature sur chaque ligne enregistrement par enregistrement en ayant un trie par leur id automatique de création ? (toutes les lignes serait donc signées dans ces fichiers)
ou en faisant une clé dans facture et lignes_facture que tu incrémente à chaque signature (pour faire un trie avant signature) ?
Tout ceci pour pouvoir signer une ligne avec celle précédente et suivante bien sûr .(en sachant que dans facture et lignes_facture des enregistrement signé et non signé vont cohabité (puisque les factures sont modifiable pendant un laps de temps de quelques jours) .
Bonne question , non ?
Registered member
41 messages
Posted on May, 31 2017 - 8:34 AM
Bonjour Fabrice,

En premier lieu un TRÈS grand merci pour tes réponses et conseils toujours très avisés (et que je suis dans différents sujets).

>> Ma réponse est : je ne veux surtout pas que la question se pose, donc :

Effectivement, j'en conviens. Même si mon raisonnement est ( à mon sens) correct (et OUI GAD - le principe est de faire une clé spécifique), il se pose un souci auquel je n'ai pas réfléchi : Devoir démontrer le principe utilisé.

Je vais donc adopter ta solution, Fabrice :

- je mets les factures dans un fichier a part
- je chaine les entête d'un coté
- je chaine les lignes de l'autre.

Mais alors, je me pose donc une autre question par voie de conséquence : Les écritures d'encaissement...

La norme dit que les écritures d'encaissement sont chaînées sur le même principe.

Hors, là encore, en général toutes les écritures comptables sont dans le même fichier.

Souci avec un fichier unique :
Si je chaîne l'ensemble : je ne peux plus modifier les AUTRES écritures (brouillard) hors tout est modifiable tant que la compta n'est pas clôturée. (je l'ai vérifié auprès de l'expert comptable qui vérifie mon travail)
Si je ne chaîne partiellement (sur clé spécifique) QUE les écritures d'encaissement, cela reviens à ce que je voulais faire avec les factures et donc aux questions potentielles des impôts.


J'en conclue qu'il faut un fichier spécifique 'Écritures de banque' et un fichier 'autres écritures' ?

Fabrice, qu'en pense "un développeur qui dort bien la nuit" ...


Très bonne journée à tous.
Registered member
43 messages
Popularité : +1 (1 vote)
Posted on May, 31 2017 - 8:56 AM
Bonjour à tous et merci pour vos réponses,

Bonjour Fabrice, toujours en pleine forme, je constate...

Encore quelques petites réflexions :
- les factures sont modifiables jusqu'à quand? Après clôture (du mois, de la journée), de toute façon avant le transfert en compta.
- j'ai plusieurs petits clients qui ne gèrent pas les encaissements par le logiciel de gestion commerciale, mais directement en compta.
Est-ce que cela pose un problème?
- De même, plusieurs de mes clients ne font pas d'export vers la compta. Ils fournissent la facture papier à leur comptable. Je n'ai donc pas de traitement transfert en compta dans ce cas.
- pour la partie conservation-sauvegarde des données, que faites vous au niveau du logiciel? Une sauvegarde des données lors de la clôture?
Mais où? Et le client peut toujours supprimer ou ne pas conserver ces sauvegardes.

Bonne journée

Hubert
Registered member
41 messages
Posted on May, 31 2017 - 10:55 AM
Bonjour,

Pour ma part, il est raisonnable de penser que la facture devient définitive dès lors où elle est éditée et par voie de conséquence transférée automatiquement en compta. Cela laisse donc encore la possibilité au client de vérifier une dernière fois après saisie la cohérence de sa facture. S'il l'édite, c'est qu'elle est correcte et donc validée définitivement.

La responsabilité est celle de celui qui édite la GestCom (pour la facture) ET celle de celui qui édite la Compta (pour les encaissements).
Moralité :
Pour une facture papier > comptable : C'est le logiciel du comptable qui doit être aux normes
Pour une saisie directe dans un logiciel de Compta tierce, ... idem.


Bonne journée
Posted on May, 31 2017 - 1:32 PM
Bonjour

pour moi, et depuis très longtemps, une facture n'est pas modifiable.

Un BROUILLON de facture l'est. Selon le soft, ca s'appelle un bon de
livraison, un brouillon, etc...

Ensuite, il y a un traitement de GENERATION de facture (depuis un
brouillon, depuis une série de BL, depuis une commande, etc)... C'est
cette génération qui écrit (ajout uniquement) dans le fichier de factures.

La facture générée est la seule imprimable avec la mention facture, et
n'est PAS modifiable (même avant impression)...

Si elle n'est pas bonne, on la repasse en brouillon (génère un avoir
interne) et on modifie le brouillon.

Les infos de la mauvaise facture et de son avoir interne restent dans le
fichier de facture et sont chainées avec le reste.

Quand à la question sur les encaissements, je pense qu'il y a la une
confusion.

ON ne parles pas d'un programme de COMPTA ici, mais d'un programme de
GESTION. Donc, les encaissements ne sont pas des écritures comptables,
ce sont des encaissements qui vont dans le fichier d'encaissement et qui
sont donc chainés la dedans.

ENSUITE, on fait un passage en compta aussi bien des factures que des
encaissements, et ça va alors dans des fichiers complètements séparés.

Encore une fois, tout ça est conçu pour qu'il n'y ait aucune
INTERPRETATION possible, que ce soit complètement bétonné, et que les
impôts aillent embêter quelqu'un d'autre.

Cordialement


--
Fabrice Harari
Consultant WinDev, WebDev et WinDev Mobile International

A votre disposition : WXShowroom.com, WXReplication (open source) et
maintenant WXEDM (open source)

Plus d'information sur http://fabriceharari.com


Le 5/31/2017 à 2:55 AM, Gilles GUICHARD a écrit :
Bonjour,

Pour ma part, il est raisonnable de penser que la facture devient
définitive dès lors où elle est éditée et par voie de conséquence
transférée automatiquement en compta. Cela laisse donc encore la
possibilité au client de vérifier une dernière fois après saisie la
cohérence de sa facture. S'il l'édite, c'est qu'elle est correcte et
donc validée définitivement.

La responsabilité est celle de celui qui édite la GestCom (pour la
facture) ET celle de celui qui édite la Compta (pour les encaissements).
Moralité :
Pour une facture papier > comptable : C'est le logiciel du comptable
qui doit être aux normes
Pour une saisie directe dans un logiciel de Compta tierce, ... idem.

Path: news.pcsoft.fr!not-for-mail
From: "GAD"
<priv!24v8+CE8I+F12@LAPOSTE+NETZA4JF+C2FB5GM0r95+2p51s6@news.pcsoft>
Newsgroups: pcsoft.fr.windev
Message-ID: <2017ebc30c8debd1ac81f42cca670d2c9f77@news.pcsoft.fr>
Date: Tue, 30 May 2017 16:42:24 +0200
Subject: Re: signature numerique et code sign
NNTP-Posting-Host: 31.33.137.167
X-Server-Date: Tue, 30 May 2017 16:42:24 +0200
Xref: news.pcsoft.fr pcsoft.fr.windev:206265
References: <20169944a36724bbd188ff9a75b3bd811d42@news.pcsoft.fr>
: bytes: 181
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
MIME-Version: 1.0
X-Authenticated-User: Y
X-Complaints-To: <info@psoft.fr>
X-No-Archive: Yes
Approved: <moderateur@pcsoft.fr>

Bonsoir,
je ne vois pas bien comment tu fais pour chainer des enregistrements
puisque tu en créer des autres entre temps ( à moins de faire un id de
trie spécifique à la signature)
Registered member
41 messages
Posted on May, 31 2017 - 2:35 PM
Bonjour,

J'ai oublié de préciser que, pour ma part, je travaille sur une gestion intégrée (avec une base de données unique) qui comporte tant une gestion commerciale, une comptabilité, ... C'est ce qui explique mon raisonnement (manifestement à revoir sur certains aspects).

Merci Fabrice, j'ai bien noté l'organisation 'dodo tranquille'.

Un fichier des encaissements à part (chaîné) et le fichier des écritures en général pour la COMPTA.

La boucle est bouclée : FACTURE et COMPTA conformément à la NF.

Bonne fin de journée
Registered member
198 messages
Popularité : +2 (2 votes)
Posted on May, 31 2017 - 3:07 PM
Fabrice Harari a écrit :
Bonjour

pour moi, et depuis très longtemps, une facture n'est pas modifiable.

Un BROUILLON de facture l'est. Selon le soft, ca s'appelle un bon de
livraison, un brouillon, etc...

Bonjour,
je ne pense pas que la validation d'une facture puisse bloqué celle-ci , ce n'est pas concevable , d'ailleurs dans un restaurant , tu ne peux pas bloquer un ticket tant qu'il n'est pas payé sinon pas de digestif possible !! , pour preuve dans un soft NF525 tu peux imprimer un ticket 'provisoire' , puis le modifier et seulement imprimer ton vrai ticket (qui d'ailleurs contient son mode de paiement).
un brouillon qui sert à faire une facture fait partie aussi des données concernées :

3. Les données concernées
50
Il s'agit de toutes les données qui concourent directement ou indirectement à la réalisation d'une transaction ....

il faut choisir le moment ou la facture (ou ticket de caisse) n'est plus modifiable et signé , c'est sur que si tu signe à la validation de la facture , c'est plus simple mais inconcevable pour les utilisateurs .
l'impression est une bonne solution pour l'étape et (ou) au bout d'un mois de latence sans impression ...
c'est mon avis mais bon ....
Posted on May, 31 2017 - 3:58 PM
Bonjour

J'appelle ça un brouillon de facture, tu appelle ça un ticket provisoire

Tu penses donc avoir un avis différent alors que tu as le même :-)

Et rien n'empêche en interne d'annuler le ticket d'origine avec un avoir
et de le rééditer complété.

C'est invisible pour l'utilisateur, et toi tu es couvert

Cordialement


--
Fabrice Harari
Consultant WinDev, WebDev et WinDev Mobile International

A votre disposition : WXShowroom.com, WXReplication (open source) et
maintenant WXEDM (open source)

Plus d'information sur http://fabriceharari.com
Posted on May, 31 2017 - 5:51 PM
Le 31/05/2017 à 13:07, GAD a écrit :
Fabrice Harari a écrit :
Bonjour

pour moi, et depuis très longtemps, une facture n'est pas modifiable.

Un BROUILLON de facture l'est. Selon le soft, ca s'appelle un bon de
livraison, un brouillon, etc...

Bonjour,

je ne pense pas que la validation d'une facture puisse bloqué celle-ci ,
ce n'est pas concevable , d'ailleurs dans un restaurant , tu ne peux pas
bloquer un ticket tant qu'il n'est pas payé sinon pas de digestif
possible !! , pour preuve dans un soft NF525 tu peux imprimer un ticket
'provisoire' , puis le modifier et seulement imprimer ton vrai ticket
(qui d'ailleurs contient son mode de paiement).
un brouillon qui sert à faire une facture fait partie aussi des données
concernées :

3. Les données concernées
50
Il s'agit de toutes les données qui concourent directement ou
indirectement à la réalisation d'une transaction ....

il faut choisir le moment ou la facture (ou ticket de caisse) n'est plus
modifiable et signé , c'est sur que si tu signe à la validation de la
facture , c'est plus simple mais inconcevable pour les utilisateurs .
l'impression est une bonne solution pour l'étape et (ou) au bout d'un
mois de latence sans impression ...
c'est mon avis mais bon ....


Salut,

De notre coté, comme le dit Fabrice, les Factures et tickets une fois
enregistré et numérotés ne sont pas modifiable.

Seule les commandes et les BL (pour les comptes clients) et les "tables
en attentes" pour les tickets sont modifiable avant encaissement ou mise
en compte.

En cas d'erreur, la procédure est simple, on génère un avoir et on
recommence.

Ps, le ticket "provisoire" n'est pas un ticket mais un document
provisoire stocké dans un autre fichier que celui des tickets.

Fred.
Registered member
198 messages
Popularité : +2 (2 votes)
Posted on May, 31 2017 - 5:59 PM
:merci: :D
on a le droit d'avoir le même avis et de n'être pas d'accord .... lol :p
en faites la seul différence c'est que je pense que le brouillon doit être gardé (intacte) ainsi que les suppressions effectuer dessus .... le faites de faire un avoir (même interne) et un document comptable , je pense que d'en notre cas il doit être visible , pour l'instant on a analyser la même chose , pour moi ,je l'ai juste déjà intitulé facture avec un numéro , mais la logique est exactement la même sauf si tu ne conserve pas le brouillon ainsi que les suppressions (se qui m'étonnerai vu la démarche....)
on a bien deux fichiers facture(ou brouillon) et facture_secu ...
Registered member
198 messages
Popularité : +2 (2 votes)
Posted on May, 31 2017 - 6:26 PM
un ticket "provisoire" c'est pareil qu'un ticket ;( (on parle bien de la même chose) , peut importe le nom que l'on donne au brouillon ( comme le démontre fabrice) ,la question primordiale c'est : garde-t-on le brouillon ,le ticket ou la facture avant de le passer en facture_secu ou ticket_secu ? (pour moi oui et avec les suppressions et modification fait dessus )
Posted on June, 01 2017 - 12:51 PM
Bonjour à tous,

Vous évoquez souvent le mécanisme de chaînage des enregistrements mais qu'en est-il du scellement des enregistrements par signature horodatée ?
Comment procéderiez-vous concrètement pour mettre en place ce procédé ?
Registered member
198 messages
Popularité : +2 (2 votes)
Posted on June, 01 2017 - 3:24 PM
Thomas PETIT a écrit :
Bonjour à tous,

Vous évoquez souvent le mécanisme de chaînage des enregistrements mais qu'en est-il du scellement des enregistrements par signature horodatée ?
Comment procéderiez-vous concrètement pour mettre en place ce procédé ?


Bonjour,
avant la création de la signature , il faut faire un champs avec la date/heure de la signature (qui est repris pour faire la signature) ,et on signe .....
Registered member
31 messages
Popularité : +1 (1 vote)
Posted on June, 07 2017 - 5:41 PM
Bonjour une petite question reglementaire.

Imaginons un restaurant qui édite un ticket provisoire. Le client lui paye ce ticket en espece et s'en va.
Le ticket n'ayant pas encore été validé, il peut etre supprimé.
Et hop fraude a la TVA!!!

Qu'es-ce qui empecherai cela?

Cordialement
Posted on June, 07 2017 - 6:22 PM
simplement que le ticket provisoire ne l'est pas vraiment, est écrit
dans le fichier des tickets et ne peut pas être supprimé.

On peut dire qu'il est annulé (avoir interne) parceque le client est
parti sans payer, ou le "modifier", cad créer un avoir interne pour le
"provisoire" et recréer un ticket complet.

Cordialement


--
Fabrice Harari
Consultant WinDev, WebDev et WinDev Mobile International

A votre disposition : WXShowroom.com, WXReplication (open source) et
maintenant WXEDM (open source)

Plus d'information sur http://fabriceharari.com


Le 6/7/2017 à 9:41 AM, grego30 a écrit :
Bonjour une petite question reglementaire.

Imaginons un restaurant qui édite un ticket provisoire. Le client lui
paye ce ticket en espece et s'en va.
Le ticket n'ayant pas encore été validé, il peut etre supprimé. Et hop
fraude a la TVA!!!

Qu'es-ce qui empecherai cela?

Cordialement
Registered member
198 messages
Popularité : +2 (2 votes)
Posted on June, 07 2017 - 6:39 PM
grego30 a écrit :
Bonjour une petite question reglementaire.

Imaginons un restaurant qui édite un ticket provisoire. Le client lui paye ce ticket en espece et s'en va.
Le ticket n'ayant pas encore été validé, il peut etre supprimé.
Et hop fraude a la TVA!!!

Qu'es-ce qui empecherai cela?

Cordialement


Bonsoir,
chaque suppression ou modification doit être enregistré et sécurisé :)
"130"
"Le logiciel de comptabilité ou de gestion ou le système de caisse doit sécuriser les données d'origine, les données de modifications enregistrées et les données permettant la production des pièces justificatives émises."
Voila , c'est simple :merci:
Registered member
31 messages
Popularité : +1 (1 vote)
Posted on June, 08 2017 - 7:19 AM
Merci a tout les 2 pour vos réponses.

Dois-je en déduire que ces lignes annulées ou modifiées doivent elles aussi etre chainées et signées?

Dans ce cas, l'annulation d'un ticket provisoire genère aussi un ticket_sécu. ?
Si on pousse le raisonnement, ca veut dire que dans une gestion commerciale, un BL, ou une facture pro-format doit etre considéré comme non supprimable, non modifiable et doit etre signé?
Registered member
41 messages
Posted on June, 08 2017 - 11:43 AM
Bonjour,
Ne s'éloigne-t-on pas du sujet en voulant en faire de trop ?

Le besoin initial (si j'ai bien compris) :

- Sécuriser factures et avoirs avec chaînage >> de même pour les règlement
- Un log pour pour toutes modifications

Il me semble tout de même que c'est ce que dit le texte (ou bien je n'ai pas tout compris).

On en revient donc toujours à la même chose : Quand une facture ou un ticket devient-il définitif ?
Dès le départ au moment de la validation : cela me paraît compliqué une erreur de saisie étant toujours possible
Avec une double validation - cela permet une vérification (la seconde provoquant la mise en compta). S'il y a erreur, un avoir est donc nécessaire avec mention dans les logs bien entendu.
A l'impression (nous avons vu que ce n'était pas une bonne idée si on veut respecter la formule 'dodo tranquille'.


La seconde option (double validation) me semble un bon compromis.

Qu'en pensez-vous ?

Bonne journée
Gilles
Registered member
198 messages
Popularité : +2 (2 votes)
Posted on June, 08 2017 - 11:50 AM
grego30 a écrit :
> Si on pousse le raisonnement, ca veut dire que dans une gestion commerciale, un BL, ou une facture pro-format doit etre considéré comme non supprimable, non modifiable et doit etre signé?
Logiquement oui :
"3. Les données concernées"
"50"
"Il s'agit de toutes les données qui concourent directement ou indirectement à la réalisation d'une transaction"
Registered member
12 messages
Posted on June, 08 2017 - 11:59 AM
Bonjour

Logiquement oui :
"3. Les données concernées"
"50"
"Il s'agit de toutes les données qui concourent directement ou indirectement à la réalisation d'une transaction"


Type : Commerce classique (pas resto and co)
prenons en exemple, la mise en attente des tickets (si un client a oublie son porte-monnaie / ou oublier un article au moment de la vente), tant que le ticket n'est pas repris et valide il n'y a pas de transaction

Si le client ne revient pas, le magasin annule le ticket en attente et donc pas de transaction, donc ca ne devrait pas aller dans la piste d'audit (ni dans l'historique des tickets, car pas de reglement, pas de vente)

J'avais pose cette question quand j'avais ete a la presentation de la norme NF525, reponse evasive de leur part, non pas dans la piste d'audit (car pas de vente) mais peut etre que (mais si pas d'historique et pas dans la piste d'audit, cela ne bloquer pas la validation de la norme NF)

Juste par securite, je garde un exemplaire du ticket en attente et je le signale dans la piste d'audit.

Cordialement
Registered member
31 messages
Popularité : +1 (1 vote)
Posted on June, 08 2017 - 1:45 PM
J'entends vos réponses et je vous remercie.
Ca me parait fou de rendre un BL non modifiable.
Dans la pratique, nos clients saisissent des BL et les modifies jusqu'a la transformation en facture.
Que la facture soit non modifiable et signé me parait normal et c'est déja le cas depuis longtemps.
Mais le principe meme d'un BL c'est d'etre modifiable!!!! et pourquoi pas les devis tant qu'on y est ;-)

Moi j'aurais tendance a chainer et a signer les enregistrements dés lors qu'il sont vlaidés. C'est à dire a la génréation du ticket définitif qui elle meme génére l'édition

Si on transpose a un logiciel comptable, il me semble improbable d'empecher la modification d'une écriture comptable.
Celle ci devient non modifiable et donc signée dés qu'elle sera validée. Sinon comment peut-on encore expliquer qu'il existe un mode brouillard?

C'est bien d'ailleurs ce que dit le livre des procédures fiscales: http://bofip.impots.gouv.fr/bofip/2899-PGP.html

a° Avant la validation comptable d'une écriture (saisie en mode dit brouillard)

90

L’utilisateur peut modifier tout élément de l'écriture comptable. En effet, tant que la validation n'est pas demandée par l'utilisateur, les écritures en mode brouillard présentent un caractère tangible de la comptabilité.

Les éditions faites à partir de ce mode de saisie constituent simplement des listes de contrôle appelées couramment brouillard de saisie, procès-verbal d'entrée, accusé de réception de saisie, etc.

b° La validation comptable proprement dite

100

Il s'agit d'une phase de traitement informatique volontaire, activé grâce à une fonction du logiciel, qui consiste à figer les différents éléments de l'écriture de façon telle que toute modification ultérieure de l'un de ses éléments soit impossible.

L’article 420-4 du plan comptable général précise que les écritures des journaux doivent être récapitulées au livre-journal au jour le jour ou à défaut une fois par mois
Posted on June, 08 2017 - 1:55 PM
Bonjour,

Dois-je en déduire que ces lignes annulées ou modifiées doivent elles
aussi etre chainées et signées?


Perso, je n'ai pas de notion de ticket provisoire... Il y a des tickets
payées et des tickets pas encore payés, c'est tout.

Dans ce cas, l'annulation d'un ticket provisoire genère aussi un
ticket_sécu. ?


Bien sur.

Si on pousse le raisonnement, ca veut dire que dans une gestion
commerciale, un BL, ou une facture pro-format doit etre considéré comme
non supprimable, non modifiable et doit etre signé?


Pas du tout... personne ne va payer un règlement sur présentation du BL
seul. Par contre, le client va payer sur présentation du tickets que
-TU- appelles provisoire...

Oublie ta notion de provisoire et tu es bon...

Si le ticket est payé, c'est fini, sinon, tu peux
ajouter/supprimer/modifier logiquement, alors qu'en fait dans le fichier
tu écris un avoir correspondant au ticket d'origine et tu en créé un
nouveau.

Comme tu peux modifier/supprimer logiquement une facture en créant un
avoir interne pour l'annuler et en créant une nouvelle facture ('avec un
nouveau numéro, bien sur) avec les nouvelles données.

Ce qu'on veut, c'est que tout soit tracé...

Si ensuite ton client annule 15% de ses tickets, ca sera bien visible
dans le fichier, et le fisc lui demandera pourquoi (et des sous).

Cordialement


--
Fabrice Harari
Consultant WinDev, WebDev et WinDev Mobile International

A votre disposition : WXShowroom.com, WXReplication (open source) et
maintenant WXEDM (open source)

Plus d'information sur http://fabriceharari.com
Registered member
31 messages
Popularité : +1 (1 vote)
Posted on June, 08 2017 - 4:31 PM
Fabrice,

Merci beaucoup de ton aide et de tes eclaircissement.
de mon coté, dans mon logiciel de factu je n'ai pas de notion pour générer une annulation facture.
Ils font des BL qu'ils peuvent modifier comme bon leur semble.
Une fois transformer en facture, c'est fini.
S'ils veulent annuler une facture, ils créaient un BL négatif qu'ils éditent. cela s'apelle un avoir et la pièce est numérotée.

Pour mes tickets de caisse c'est pareil. Ils ne peuvent l'éditer qu'une fois le mode de paiement renseigné et le ticket soldé.
L'annulation d'un tiket s'appelle chez moi un retour et correspond a un ticket négatif.

Ma seule problèmatique est qu'aujourd'hui, je n'ai qu'un fichier BL/Facture.

je vais donc créer un fichier FACTURE_SECU qui ne contiendra que les FACTURES et les enregistrements seront ainsi chainés entre eux et signés.

Question bete, je suppose qu'il est interdit de créer une fonctionnalitér permettant de récréer le chainage et de mettre a jour la signature?
Cela serait evidement dans le but de maintenance en cas de bug, et non accessible a l'utilisateur.

Merci beaucoup
Registered member
939 messages
Popularité : +66 (68 votes)
Posted on June, 08 2017 - 4:55 PM
bonjour Gerego30,

qu'est qui vous empêche de chaîner vos Factures les unes entres les autres ?

Si vous n'avez qu'un seul fichier ENTETE par exemple, vous devez avoir une rubrique TYPE.
Le but sera simplement de chaîner les enregistrements de type Facture entre eux , non ?

vous chaînez au final entre eux les enregistrements de même type....
Registered member
41 messages
Posted on June, 08 2017 - 5:03 PM
Bonjour,

Les termes de facture / avoir sont précis. Un BL 'négatif' est un retour de marchandise. Ce n'est PAS une pièce comptable.
Seuls les factures (tickets) et les avoirs sont des pièces comptables et peuvent figurer en comptabilité.
Pour annuler une facture, il faut donc obligatoirement créer un avoir.
-
Le hash de chaînage est stocké dans le fichier à chaque ligne.
Les stockages faisant l'objet d'une transaction, on est certain que la procédure de stockage est correcte. C'est à cela que
sert la transaction, non ? Il n'y a donc pas lieu de prévoir une procédure de recalcul de chaînage.

Bonne journée
Registered member
31 messages
Popularité : +1 (1 vote)
Posted on June, 08 2017 - 7:09 PM
A christophe.
J'ai effectivement une rubrique TYPE dans mon fichier des entetes.
Mais le type change. Il passe de BL à Facture. (ce n'est pas un nouvel enreg)
Donc imaginons
Enreg 1 =Facture
Enreg2 = BL
Enreg 3 =Facture.

L'enreg 3 est chainé avec l'enreg 1.
L'enreg 2 passe de BL a Facture!!!! Le chainage est mauvais.
Voila pourquoi je pensai créer un fichier spécifique pour les factures

A Gilles.
On est d'accord. Un BL positif que l'on valide devient une facture
Un BL Négatif (donc un retour) une fois validé devient un Avoir.
Registered member
157 messages
Popularité : +0 (2 votes)
Posted on June, 08 2017 - 7:38 PM
Bonsoir,

je viens me greffer à cette discussion et cela soulève bien des questions que je vous met en 'vrac'

vous parlez de mettre en place des 'contrôles' qui sont déduit d'un texte de loi qui ne donne aucun détails technique et que chacun interprète différemment
une fois tous ces 'contrôles' intégrés à votre logiciel soit vous vous faite agréer par un organisme soit vous présentez une attestation à votre client
mais dans les 2 cas, en cas de contrôle, que va contrôler le contrôleur : que votre client a bien une attestation ?

c'est bien beau de signer, crypter, chainer mais comment un contrôleur va t'il vérifier cela, chaque programme ayant adopté une méthode différente et ayant des structures de données différentes ?

même en suivant le referentiel-certification-systemes-caisse.pdf que l'on trouve ici : http://www.lne.fr/fr/certification/certification-systemes-caisse.asp
il y a plein de point très très vague

par exemple : toute modification doit faire l'objet d'un 'log' : un petit coup de wdmap et où est le log ?
Posted on June, 08 2017 - 7:38 PM
Bonjour,

Question bete, je suppose qu'il est interdit de créer une
fonctionnalitér permettant de récréer le chainage et de mettre a jour la
signature?


Oui.
Comme la signature doit être imprimée sur le document facture/ticket
PAPIER, recalculer (donc avec une valeur différente) rendrait TOUS les
documents illégaux.


Cela serait evidement dans le but de maintenance en cas de bug, et non
accessible a l'utilisateur.


En cas de bug, tu documente le bug à mort, tu enregistre le tout sur
support non modifiable (DVD par exemple) et tu te l'envoie en recommandé
pour avoir une preuve de date/heure (et bien sur, tu n'ouvres pas
l'enveloppe quand elle arrive)

Cordialement


--
Fabrice Harari
Consultant WinDev, WebDev et WinDev Mobile International

A votre disposition : WXShowroom.com, WXReplication (open source) et
maintenant WXEDM (open source)

Plus d'information sur http://fabriceharari.com


Merci beaucoup
Registered member
31 messages
Popularité : +1 (1 vote)
Posted on June, 09 2017 - 7:39 AM
Bonjour Fabrice.
Tu précises que la signature doit etre imprimée. Mais quelle partie de la signature?
Les données signées contiennent des caractères non imprimable.
Dans notre base de données, elle est stockée en Hexadécimale mais elle a une longueur de plus de 18000 caractères.

Merci
Registered member
41 messages
Posted on June, 09 2017 - 8:52 AM
Bonjour,

A BP :

Les premières sécurisation de fichiers sont :
Mot de passe sur l'analyse ET les fichiers
Le cryptage des fichiers et de la connexion.

Cela rend inopérant WDMAP (puisque par définition le client utilisateur ne connaît pas ces mots de passe).

On parle régulièrement du chaînage des données en base.

Qu'entends-tu par signer la facture, stp ?
Pour moi j'imagine :
> production de la facture en PDF > signature avec certificat > impression ou envoi par email.

MAIS :
Comment imposer à un client l'achat d'un certificat pour la signature ?
J'ai donc pris le problème autrement : > fourniture d'un certificat (lié au logiciel) au client et stocké automatiquement sur chacun des postes utilisateurs par l'utilisation en ligne de commande de 'certutil'

Cela fonctionne MAIS l'autorité n'est pas certifiée ?

Une autre piste pour la certification ?

Bonne journée à tous
Posted on June, 09 2017 - 5:01 PM
Bonjour,

Un certificat n'est pas nécessaire pour signer les enregistrements par chainage. Un niveau de seul est imposé, par exemple par de SHA1, mais SHA2 ok.
Registered member
41 messages
Posted on June, 10 2017 - 7:02 AM
Bonjour,
Oups. Là, je suis largué. désolé.
En l'espèce, je ne parle pas du chaînage mais du 'document' Facture Ou avoir à imprimer.

Comme la signature doit être imprimée sur le document facture/ticket
PAPIER, ...


mais alors, de quelle signature parle-t-on ?
Une signature 'par certificat', l'impression du HASH + SEL (qui valide le chainage) ou ... un truc que j'ai loupé.

Fabrice, au secours ...

Bonne journée et bon week-end.
Registered member
34 messages
Posted on June, 14 2017 - 9:15 AM
bonjour, après mes tests de production avec les signatures de certificats (certificatsignechaine) je me retrouve avec des tailles de fichiers mmo halucinantes.
96 Mo pour 6600 lignes. j'ai stocké l'empreinte signature comme memo texte.
De plus j(ai une question, si j'ai un probleme sur mon mmo je perds alors toutes mes empreintes.
Merci de votre aide.
Posted on June, 14 2017 - 12:12 PM
Bonjour,

J'ai créer un une autorité de CA via OpenSSL (pour faire les tests avant d'acheter un certificat si nécessaire)

openssl req -new -x509 -days 3650 -sha256 -newkey rsa:2048 -keyout CA.pem -out CA.pem
openssl pkcs12 -export -out CA.pfx -IN CA.pem -name "MON CA"


J'ai donc un fichier CA.pfx que j'installe sur le poste en tant que certificat de "ordinateur" d'autorité de confiance...

Je crée ensuite un certificat pour signer

openssl genrsa 2048 > sign.key
openssl req -new -key sign.key > sign.csr


Je fais le liens avec l'autorité de certificat

openssl x509 -req -IN sign.csr -out sign.crt -CA CA.pem -CAkey CA.pem -CAcreateserial -CAserial Ca.srl


Je concatène sign.key + sign.crt pour avoir le fichier sign.pem

Je créer un fichier pfx avec la commande
openssl pkcs12 -export -out sign.pfx -IN sign.pem -name "Ma Signature"


Je fait un test de signature d'un fichier texte avec trois modes différents

- CertificatSigneChaîne (en utilisant le fichier sign.pfx)
- openssl dgst -binary -out Test.sign -sign sign.pem MonTexteBrut.txt
- Les fonction de l'API Windows CryptCreateHash, CryptSignHash...

La Hash est fait en SHA256 et la signature en RSA 2048.

Les trois méthode fonctionne en génération de signature et en vérification.

Le problème c'est qu'aucune signature est identique (bien sûr pour windev je ne garde que les 256 derniers octet du buffer). Est-ce normal ?
Autre questions est-ce que si je récupère les 256 derniers octets de CertificatSigneChaîne est-ce que je peux les considérer comme la clé réel et pas un cryptage quelconque de la clé ?


Patrick ALLÉMOZ a écrit :
> Durée de vie ... la signature contient un horodatage, on sait donc de quand date la signature et donc à quel certificat elle correspond.

Hors si je relance cinquante fois ma signature par ces trois méthode j'obtiens 50 fois le même résultat donc je ne vois pas comment la signature contiendrait un horodatage à moins de parler du contenu que l'on signe.
Est-ce que je me trompe dans mes manipulations ?

Bonne Journée
Registered member
198 messages
Popularité : +2 (2 votes)
Posted on June, 14 2017 - 12:19 PM
bonjour
et oui ç'est par çà que je n'ai pas fais ce choix maverick , on peut supprimer le mmo et on possède encore les données mais non signé :o ;(
la bonne solution est la signature ecdsa (pour les ko et la taille constante)
Registered member
34 messages
Posted on June, 14 2017 - 12:54 PM
merci gad. comment implementer la signature ecdsa stp.On utilise les mêmes fonctions ?
Merci de ton aide
Registered member
34 messages
Posted on June, 14 2017 - 2:01 PM
question simple mais importante. Peut on utiliser simplement les fonction hashchaine au lieu de passer par une signature.
merci
Registered member
41 messages
Posted on June, 14 2017 - 3:26 PM
Bonjour,

Pour ce qui est des enregistrements :

Pourquoi ne pas se référer au webinaire à ce sujet : HASH+SEL ou encore LST 106 'signer des enregistrements pour en assurer l'intégrité'

C'est bien plus simple et moins couteux en place ex : wdsignature LST 106 / page 5

Pour ce qui est des factures / avoirs (sous-entendu : à l'édition / impression) : faut-il signer le fichier avec un certificat d'après vous ?

Bonne soirée
Gilles
Registered member
198 messages
Popularité : +2 (2 votes)
Posted on June, 14 2017 - 3:27 PM
maverick a écrit :
question simple mais importante. Peut on utiliser simplement les fonction hashchaine au lieu de passer par une signature.
merci


bonne question , je doute , pour faire une signature en ecdsa , il faut faire une dll en C avec une source dispo sur le net (il y en a des différentes)
Registered member
198 messages
Popularité : +2 (2 votes)
Posted on June, 14 2017 - 3:32 PM
Gilles GUICHARD a écrit :
Bonjour,

Pour ce qui est des enregistrements :

Pourquoi ne pas se référer au webinaire à ce sujet : HASH+SEL


bonjour
il est ou le webinaire du sujet : HASH+SEL ?

Gilles GUICHARD a écrit :
encore LST 106 'signer des enregistrements pour en assurer l'intégrité'

Bonne soirée
Gilles

c'est justement sont problème avec la taille de signature
Registered member
34 messages
Posted on June, 15 2017 - 8:38 PM
Bno. En relisant les textes de loi je vois qu un chaine crypte type rsa2 est accepté ( sur lequel je rajoute un cryptage ) donc j abandonne pour l instant la solution avec signature
Posted on June, 23 2017 - 10:55 AM
Bonjour à tous,

A plusieurs reprises, me semble-t-il, Patrick a évoqué la possibilité pour réduire la taille de la signature, d'en extraire la clé publique ("Extraire le certificat public et de ne garder que la signature numérique"). Autant je vois bien comment récupérer le certificat depuis mon mémo contenant ma signature, autant je ne vois pas comment récupérer uniquement "la signature" depuis ce même mémo.

L'un d'entre vous a t-il une piste ?
D'avance merci.

PS: J'en profite pour remercier Patrick ALLEMOZ pour ces nombreuses infos et le temps qu'il a accepter de perdre pour que moi (mais je ne suis visiblement pas le seul) j'en gagne !
Registered member
351 messages
Popularité : +75 (75 votes)
Posted on June, 23 2017 - 1:19 PM
Bonjour,

Merci Cyril, j'aurai voulu vous aider un peu plus mais je termine la préparation de mon départ pour les antipodes dans quelques jours et je serai absent jusqu'à la rentrée de septembre.

Comme je serai en service minimum, je ne pourrai pas être d'une grande aide.

Je vous donne rendez-vous à la rentrée si vous avez des questions sans réponse.

Bonnes vacances à tous ... reposez-vous bien.

--
Bon développement, Patrick [3po.fr]
Registered member
41 messages
Posted on June, 23 2017 - 3:21 PM
Bonjour,

Le webinaire est : https://www.pcsoft.fr/webinaires.htm

Bonne soirée
Registered member
41 messages
Posted on June, 23 2017 - 3:22 PM
Bonjour,

La loi va évoluer :
Le 15 juin 2017, le gouvernement a décidé « de recentrer et de simplifier » la loi anti-fraude à la TVA (article 88 de la Loi de Finances 2016), dont l’entrée en vigueur est prévue à compter du 1er janvier 2018.

La loi précise désormais que lorsque l’entreprise utilise un logiciel ayant des fonctions d’encaissement, celui-ci devra être « certifié conforme ». Le Ministre des Comptes Publics a annoncé que « cette réglementation fera l’objet de nouvelles mesures législatives d’ici la fin de l’année ».


voici le texte officiel :

http://proxy-pubminefi.diffusion.finances.gouv.fr/pub/document/18/22503.pdf…

Bonne soirée
Registered member
198 messages
Popularité : +2 (2 votes)
Posted on June, 23 2017 - 5:18 PM
Gilles GUICHARD a écrit :
Bonjour,

Le webinaire est : https://www.pcsoft.fr/webinaires.htm

Bonne soirée

Bonjour,
merci pour le lien
Posted on June, 24 2017 - 11:41 AM
Bjr,

GAD a exprimé avec précision :
Gilles GUICHARD a écrit :
Bonjour,

Le webinaire est : https://www.pcsoft.fr/webinaires.htm

Bonne soirée
Bonjour,

merci pour le lien


suite a notre dial, suffit de lire le 2eme paragraphe du texte

a plus

--
-------------------------------------------------------------
www.ctc-soft.com
Gestion biblo-documentaire (free-share)
Comptabilité shareware
Logiciels de Gestion de saisie terrain
Spécialisé Tournées de boulangers
-------------------------------------------------------------
Posted on July, 03 2017 - 9:35 PM
sans vouloir préjuger des choses, je me permet une autre interprétation de ce communiqué.
Pour les logiciels d'encaissement rien n'est changé. La date du 01.01.2018 reste la date butoir...
le 2e paragraphe est en cela très clair...

Mais je me trompe peut-être...
Posted on July, 11 2017 - 8:16 AM
Bonjour,

pour information, une mise à jour de Windev 22 arrive fin juillet :
- utilisation d'elliptic-curve (ECDSA) pour la signature numérique
- réduction de la taille des chaines signées

Pour rappel, la fonction de signature de Windev ne prenait en charge que RSA => plus lourd et plus lent que ECDSA.
Très bonne nouvelle pour ceux qui, comme moi, étaient obligés de passer par OpenSSL pour utiliser ECDSA.

Source : http://www.pcsoft.fr/st/telec/windev22/windev22_71e.htm…

Bon développement.
Registered member
198 messages
Popularité : +2 (2 votes)
Posted on July, 11 2017 - 3:13 PM
Michael a écrit :
Bonjour,

pour information, une mise à jour de Windev 22 arrive fin juillet :
- utilisation d'elliptic-curve (ECDSA) pour la signature numérique
- réduction de la taille des chaines signées

Pour rappel, la fonction de signature de Windev ne prenait en charge que RSA => plus lourd et plus lent que ECDSA.
Très bonne nouvelle pour ceux qui, comme moi, étaient obligés de passer par OpenSSL pour utiliser ECDSA.

Source : http://www.pcsoft.fr/st/telec/windev22/windev22_71e.htm…

Bon développement.

Bonjour,
et comme d'habitude ,il faudra attendre la version 23 pour quelle fonctionne ? lol , je plaisante bien sur ...
c'est très bien ...
Posted on July, 17 2017 - 9:31 AM
Bonjour,
Juste une petite question : qui doit être propriétaire du certificat ? l'éditeur du logiciel ou l'utilisateur ? Quand un logiciel a été distribué à plusieurs clients, faut il un certificat différent pour chaque installation ou peut on utiliser le même ?
Merci pour vos réponses.
Posted on July, 17 2017 - 9:31 AM
Bonjour,
Juste une petite question : qui doit être propriétaire du certificat ? l'éditeur du logiciel ou l'utilisateur ? Quand un logiciel a été distribué à plusieurs clients, faut il un certificat différent pour chaque installation ou peut on utiliser le même ?
Merci pour vos réponses.
Posted on July, 17 2017 - 4:20 PM
Le 17 juillet 2017 à 07:31, dans
<news:2017add8b0e29a13d4007d0beb60e5aa4220@news.pcsoft.fr>, Marie nous
disait :

Juste une petite question : qui doit être propriétaire du certificat ?
l'éditeur du logiciel ou l'utilisateur ?


L'éditeur du logiciel. Ce certificat sert d'ailleurs à signer tous les
logiciels de l'éditzur, pas besoin d'en avoir un par application.

Quand un logiciel a été distribué à plusieurs clients, faut il un
certificat différent pour chaque installation ou peut on utiliser le
même ?


Heureusement qu'on peut utiliser le même ! S'il fallait acheter un
certificat par installation, ça finirait par revenir un peu cher...

--
Eric
Registered member
34 messages
Posted on July, 28 2017 - 3:10 PM
bonjour, je rencontre un probleme avec mon certificat sous windows xp. La signature des fichiers n'est pas valide mais sous 7,8,10 ok.
Savez-vous si il faut un patch ou autre chose.
Merci de votre aide
Posted on August, 12 2017 - 10:26 AM
Bonjour,
je serais intérésser que vous m'orienté sur votre post du 12/01/2017, car je dois réaliser un module avec openSSL afin de pouvoir généré un CSR en mémoire sans aucune inscription sur le disque.


Posté le 12 janvier 2017 - 17:46
Si tu veux mon avis ... et vu le temps que j'ai passé sur ma propre librairie de cryptographie ... je te conseille la solution plus rapide qui consiste à exécuter OpenSSL et récupérer le retour dans une variable. Si tu ne sais pas comment faire ... envoie moi ton mail et je te passerai ce qu'il te faut.

Merci de votre aide

Christophe
Registered member
30 messages
Popularité : +3 (3 votes)
Posted on August, 15 2017 - 7:05 PM
Bonjour,

"bonjour, je rencontre un probleme avec mon certificat sous windows xp. La signature des fichiers n'est pas valide mais sous 7,8,10 ok."

Les postes sous XP et vista ne sont plus supportés par Microsoft. Certains certificats nécessitent Windows 7 au minimum qui lui même voit ses jours comptés, même si c'est 2020.

https://support.microsoft.com/fr-fr/help/13853/windows-lifecycle-fact-sheet

Il serait bon penser à renouveler le parc.

Thierry
Message modified, August, 15 2017 - 7:07 PM
Registered member
1 message
Posted on August, 24 2017 - 9:29 AM
Bonjour,
L'entreprise pour laquelle je travaille a développé et vendu un logiciel de caisse à plusieurs clients. Je dois donc m'assurer que qu'il répondra à la norme pour le 1er janvier 2018. Je recherche un certificat code signing pour signer l'executable et en même temps l'utiliser pour chainer les enregistrements de ventes. Connaissez vous des fournisseurs de certificats qui fonctionneront avec Windev car je suis un peu perdue dans mes recherches et je voudrais être sure que celui ci soit bien compatible avant de passer la commande. Voici ceux que j'ai trouvés :
https://www.thawte.fr/code-signing/content-signing-certificates/microsoft-authenticode/#
https://www.instantssl.com/code-signing-certificate.html…
Merci par avance pour votre aide.
Marie
Posted on August, 28 2017 - 10:15 AM
Bonjour,

Est-on vraiment obligé de signer avec une clef privée les logiciels pour satisfaire à la norme ?

J'ai lu dans la doc du LNE qu'un hash SHA256 suffisait. En effet, si on fait un HASH SHA256 de son livrable, il identifie de manière "satisfaisante" le livrable.

Quelle est la probabilité d'avoir le même hash après avoir modifié le logiciel pour frauder ?
Posted on August, 29 2017 - 9:26 AM
Le 28/08/2017 à 08:15, Nanard a écrit :
Bonjour,

Est-on vraiment obligé de signer avec une clef privée les logiciels pour
satisfaire à la norme ?

J'ai lu dans la doc du LNE qu'un hash SHA256 suffisait. En effet, si on
fait un HASH SHA256 de son livrable, il identifie de manière
"satisfaisante" le livrable.

Quelle est la probabilité d'avoir le même hash après avoir modifié le
logiciel pour frauder ?


Il ne faut jamais oublié que la fraude peut venir d'un logiciel tier et
pas forcément de l'application de caisse, donc la signature du
livrable garanti que celui ci n'a pas été touché, un bon point, mais ne
garanti pas que les données n'ont pas été modifiées.

Fred.
Registered member
41 messages
Posted on August, 30 2017 - 8:36 AM
Bonjour,

Je pense qu'il est nécessaire, ne serait-ce que par rapport à Microsoft, de signer le logiciel avec un certificat reconnu.
Cela garantit l'intégrité du logiciel.

Par contre, les enregistrements peuvent être signés, à mon avis, avec le hash au lieu d'un certificat, sous réserve de veiller à ce que la base de données ne puissent pas être modifiées, garantissant ainsi les données.
Bien entendu, cela dépend des sécurités mises en place :
- mot de passe sur analyse
- mot de passe sur fichiers
- connexion cryptée
- sécurité(s) complémentaires.
Posted on September, 23 2017 - 8:27 AM
Salut à tous !

Je me pose une question concernant les sauvegardes.
Comment allez-vous gérer cela ?
En effet, quand on aura remonté tous les fichiers Fic et consorts, comment prouver que des tickets avaient été émis entre les 2 sauvegardes ?
Posted on September, 23 2017 - 8:27 AM
Salut à tous !

Je me pose une question concernant les sauvegardes.
Comment allez-vous gérer cela ?
En effet, quand on aura remonté tous les fichiers Fic et consorts, comment prouver que des tickets avaient été émis entre les 2 sauvegardes ?
Posted on September, 24 2017 - 1:00 PM
Thomas vient de nous annoncer :
Salut à tous !

Je me pose une question concernant les sauvegardes.
Comment allez-vous gérer cela ?
En effet, quand on aura remonté tous les fichiers Fic et consorts, comment
prouver que des tickets avaient été émis entre les 2 sauvegardes ?


Si un gars des impots vient jouer au client masqué...
tout a fait possible si un controle est envisagé.

a plus

--
-------------------------------------------------------------
www.ctc-soft.com
Gestion biblo-documentaire (free-share)
Comptabilité shareware
Logiciels de Gestion de saisie terrain
Spécialisé Tournées de boulangers
-------------------------------------------------------------
Posted on September, 25 2017 - 10:14 AM
Bonjour,

Merci Dc pour ta réponse.
Ma question était certainement mal posée, je voulais plus savoir comment vous envisagez de mettre un processus permettant de dire qu'une sauvegarde a été remontée.

Par avance merci
Registered member
939 messages
Popularité : +66 (68 votes)
Posted on September, 25 2017 - 2:15 PM
bonjour,

tout traitement de restauration de sauvegarde ne devra pas 'écraser' votre fichier 'JET' (journal d’événement technique) et vous indiquez dans ce journal, votre événement de restauration de sauvegarde.

bon dèv
Posted on September, 26 2017 - 7:20 PM
Bjr,

Christophe a formulé la demande :
bonjour,

tout traitement de restauration de sauvegarde ne devra pas 'écraser' votre
fichier 'JET' (journal d’événement technique) et vous indiquez dans ce
journal, votre événement de restauration de sauvegarde.

bon dèv


"ne devra pas ecraser" mais s'il "peut" l'ecraser, tout se casse la
figure...

N'oublions pas que toutes ces histoires ne doivent plus permettre ,
meme au concepteur, de modifier des données.

Si un programme annexe, comme ca a existé, vient moulner les ventes,
ok, ca se voit dans les fichiers, signatures, enchainements etc...

Si un programme annexe vient remettre le mercredi matin la sauvegarde
de lundi soir , qui saura que des ventes ont existé le mardi ?

Et si deux caisses fonctionnent dans le meme magasin, mais qu'on
declare que les ventes faites par Caisse1 .. Quel fichier
informatique, quelle preuve, attestera que les ventes réalidées sur
caisse2 ont existé ?
Et les fichiers de Caisse1 seront nickel ...

On retombe dans les vieux procédés de double facturation, pour lesquels
seuls un controle physique, mais pratiqué au bon moment pourra être
efficace.

a plus

--
-------------------------------------------------------------
www.ctc-soft.com
Gestion biblo-documentaire (free-share)
Comptabilité shareware
Logiciels de Gestion de saisie terrain
Spécialisé Tournées de boulangers
-------------------------------------------------------------
Registered member
198 messages
Popularité : +2 (2 votes)
Posted on September, 26 2017 - 11:07 PM
Je suis d'accord avec toi Dc rien ne pourra évité une restauration à une date antérieur ou un deuxième poste 'fictif' ... çà rends juste la magouille plus difficile mais faisable ....
on peux être sûr que des versions bidouillées vont sortir rapidement (nf525 ou pas) , ce sera encore pire car les contrôleurs fiscaux seront véritablement abusés ...
Posted on January, 04 2018 - 3:17 PM
Eric a écrit :
> Le 12 avril 2017 à 17:15,

et chez eux c'est bien ce produit qui permet de signer un exe ?
http://www.chambersign.fr/certificat-rgs-initio/

Oui, c'est bien celui-là. Il est vrai que la description est un peu
sommaire, mais ça marche.


Bonjour,

toujours ok avec ce certificat pour signer vos exe?
l'utilisez-vous aussi pour signer des enregistrements dans vos fichiers HF ?

Merci!
Posted on April, 23 2018 - 4:45 PM
Bonjour,

Concernant le certificat chambersign RGS INITIO cela pose problème pour des signatures d’exécutable. Le problème est que nous arrivons à signer nos logiciels mais il n'y a pas de vérification du certificat lors du téléchargement sur un navigateur car Chambersign n'est pas reconnu automatiquement dans le magasin des navigateurs comme autorité de certification intermédiaire ? Si vous avez une solution nous sommes preneur car le support Chambersign préconise d'utiliser le lien ci-dessous mais cela n'a aucun intérêt, nous ne connaissons pas nos prospects..

http://support.chambersign.fr/index.php/racines

Cordialement
Posted on May, 17 2022 - 5:55 PM
Bonjour,
ce sujet est très intéressant.
Je souhaitais du coup tester l’algorithme ECDSA vu vos retours positifs comparé au RSA.
Malheureusement, même en étant en W26, je n'arrive pas à signer une chaine via un certificat autosigné généré via OpenSSL.

Voici les commandes que j'utilise.
Création de la clé privée via l'algo ECDSA 256:
openssl ecparam -genkey -name prime256v1-noout -out c:\cert\private-key.pem

Création du certificat :
openssl req -new -x509 -key c:\cert\private-key.pem -out c:\cert\certificate-private.pem -days 365

Création du fichier PFX pour intégration dans Windev :
openssl pkcs12 -export -inkey  c:\cert\private-key.pem  -in c:\cert\certificate-private.pem -out c:\cert\certificate-private.pfx


Cependant, en chargeant ce certificat pfx dans Windev, je ne peux pas signer avec ce fichier :
tableau deertificats est un tableau de Certificats = CertificatCharge( "c:\cert\certificate-private.pfx", "TEST")
Trace("===== (1) =====")
Trace("Nom : " + tabListe_Certificats[1]..Nom)
Trace("Empreinte : " + tabListe_Certificats[1]..Empreinte)
Trace("Emetteur : " + tabListe_Certificats[1]..Emetteur)
Trace("Valide pour signature : " + tabListe_Certificats[1]..ValidePourSignature)

Le paramètre ValidePourSignature reste à faux et donc je suis bloqué. Les autres paramètres sont bien lus (nom, empreinte et émetteur).
En passant en algo RSA, j'ai bien le paramètre ValidePourSignature à vrai pour pouvoir signer une chaine.
Si jamais vous avez une piste...
Merci