2010-05-27 20 views
0

Nous utilisons XML Digital Signatures pour signer et vérifier nos clés de licence. La signature fonctionne bien et fonctionne bien. Le fichier de licence XML contient quelques détails (en clair) sur la licence, ainsi qu'une signature binaire. Nous aimerions encoder (je ne dis pas crypter) ces détails en clair (durée de la licence, nom d'utilisateur, etc.) afin qu'ils ne soient pas immédiatement visibles par les regards indiscrets. Existe-t-il une norme (p. Ex. Base 64 ou autre) que les gens utilisent dans cette situation? Il n'a pas besoin d'être sécurisé ou particulièrement intelligent, juste assez pour cacher les informations dans le Bloc-notes.Fichiers de licence de codage pour la confidentialité

EDIT: Nous utilisons .NET/C#.

Merci:)

+1

Quel est le problème avec Base64? Facile à encoder/décoder, support intégré dans de nombreuses langues/bibliothèques. Regarde assez obfuscated à l'oeil nu. –

+0

Nous sommes un peu timides. D'après ce que je comprends quelqu'un a fait un encodage qui a fini par produire des caractères illégaux dans le XML, et tout l'enfer a commencé à se déchaîner. Donc, la base 64 serait mon choix, mais comme je suis un débutant complet dans le domaine de la licence, je fais preuve de diligence raisonnable pour m'assurer que je ne suis pas fou. :) –

Répondre

1

Utilisez simplement XOR. XOR est une bonne chose (lorsqu'il est utilisé correctement), utilisé même dans les algorithmes cryptographiques tels que RC4. En utilisant XOR je veux dire prendre une chaîne de texte qui restera constante dans votre application, puis XOR 1er octet de votre fichier avec le 1er octet de cette chaîne, puis xor 2ème octet de votre fichier avec 2ème octet de cette chaîne et ainsi de suite. Puis commencez au début de la chaîne. C'est ainsi que fonctionnent les chiffrements de flux. La chaîne trouvée dans votre code (en face d'un nombre constant) rendra le travail du hacker un peu plus compliqué.

0

Un simple codage hexadécimal permettrait d'atteindre cet objectif. Il est également facile à décoder. Si vous indiquez la langue ou la plate-forme dans laquelle vous écrivez le code, quelqu'un pourrait faire une recommandation plus spécifique.

+0

Salut, merci pour la réponse, nous construisons en .NET, C#. Nous avons aussi diverses choses en C++. –

0

Si vous cherchez simplement à obscurcir les détails, alors je pense qu'un mécanisme d'encodage Base64 ou équivalent irait bien. Je ne connais pas de norme concernant ce que vous essayez de faire, puisque la plupart des gens diraient que ce que vous essayez de faire ne réalise rien (puisqu'il fait partie du domaine) de "sécurité à travers l'obscurité").

+0

Merci, et bon point. Notre système de licences est assez minimaliste, juste assez pour que les utilisateurs honnêtes restent honnêtes. Et vous avez raison, il n'y a absolument aucune norme dans ce domaine. Je suis un peu surpris. NET n'est pas livré avec une meilleure prise en charge de la licence. Il y a les classes de licence et les services MS Licensing (ridiculement coûteux) mais ... pas de composant blackbox facile à utiliser qui fournit des licences de clé publique/clé privée de base dans quelques configurations courantes. –

0

En tant qu'utilisateur de clés de licence, je recommanderais contre cette obfuscation. Il est souvent très utile d'auditer la licence pour déterminer les détails auxquels vous faites référence. Si je peux les obtenir à partir de la description de xml, cela peut épargner autant de temps. Il permet également de découvrir les licences déployées de manière incorrecte. Si je trouve une clé transmise à example.com au lieu de l'organisation pour laquelle je travaille, je sais que nous devons régler le problème. S'il est envoyé à ZXhhbXBsZS5jb20K (exemple.com en base64), est-ce que je n'y réfléchirai pas deux fois. Je dois aussi m'assurer que les licences sont renouvelées à temps. Quand dois-je renouveler une licence avec une date d'expiration de MjAxMC0wNi0wMQo =?

+0

Cela m'intéresse. Vous dites que, en tant qu'utilisateur *, vous vous trouvez en train d'examiner le contenu de la clé .lic? Mais que se passe-t-il si nous utilisons (par exemple) votre identifiant d'ordinateur unique ou un hash de celui-ci dans le cadre de la licence? Cela vous dérangerait-il d'ouvrir un fichier LIC et de voir cette information en texte clair? –

+0

Cela me dérangerait davantage si, en tant qu'utilisateur, je trouvais que vous conserviez certaines de mes informations sensibles dans le fichier .lic et que vous essayiez de me cacher ce fait. –

+0

Pas le moins. Ce sont des informations que je voudrais utiliser dans une vérification de l'utilisation de la licence. Si je trouve une clé pour IP 192.0.2.15 étant utilisé sur un serveur de clés avec IP 192.0.2.41, je voudrais rectifier la situation. De même pour toute autre information identifiant le serveur. Le fait de ne pas avoir les informations sous licence peut rendre difficile le déploiement correct des licences, car je ne peux pas identifier facilement le service sur lequel la licence doit être utilisée. – BillThor