J'essaie actuellement de créer un programme de mise à jour pour mon logiciel. Jusqu'à présent, ce n'est pas une tâche difficile, mais je voudrais signer des fichiers afin de prévenir les dommages au cas où ceux-ci seraient piratés et modifiés (car cela permettrait d'installer des logiciels nuisibles).Comment valider des documents XML signés numériquement en C#?
J'ai trouvé quelques tutoriels sur MSDN et dans divers blogs qui montrent parfaitement comment signer un fichier XML. Ça a marché - j'ai une signature ajoutée à mon dossier.
Ce qui n'est pas couvert en quelque sorte est: Comment fonctionne la validation sur différents ordinateurs? Je ne comprends pas comment je devrais fournir les données nécessaires pour le valider. Pour autant que j'ai compris, j'ai besoin de la clé privée pour valider la signature (qui contient la clé publique). Maintenant, comment pourrais-je fournir celui-là? Si je le stocke simplement dans l'application, il peut être saisi facilement, même s'il est crypté.
Une autre approche possible que j'ai essayé était d'incorporer un certificat X509. J'ai même obtenu du code pour en générer un, mais cela montrera toujours que le certificat provient d'une source inconnue.
Y at-il un moyen sans inviter l'utilisateur à installer des certificats? Ou mieux sans installer des trucs du tout?
Jusqu'à présent, je n'ai rien trouvé à ce sujet.
Donc, les données qui sont attachées au fichier XML peuvent être validées avec ** juste ** la clé publique? La clé privée est juste utilisée pour signer, n'est-ce pas? – SharpShade
Oui, c'est correct. –
Ah, eh bien, alors j'ai probablement mal compris le principe de cryptage/signature asymétrique. C'est super, alors je pense que je peux facilement modifier le code que j'ai déjà pour le faire fonctionner :) Merci! – SharpShade