gratuit - clé office 2010 crack



implémentation pour les clés de produit (4)

La vie est plus simple si vous achetez simplement une solution.

http://www.kagi.com/kagisolutions/index.php

Kagi vous permet de collecter des paiements et vous aide à gérer les clés.

J'implémente une petite application en C, que je souhaiterais vendre ultérieurement en tant que shareware à un prix raisonnable. Il commencera par un essai de 30 jours, dont je suis déjà tout à fait certain sur la manière de le mettre en œuvre.

Le problème que j'ai, cependant, est que je ne sais pas trop comment implémenter la vérification de la clé de produit. Ce que je pense, c'est que le client peut s'inscrire sur ma page Web (après avoir essayé le produit pendant un certain temps), payer le produit et obtenir une clé de produit sous la forme aaaaa-bbbbb-ccccc-ddddd-eeeee via e -mail (ou peut-être disponible via son profil sur mon site). Pas de problème jusqu'ici. Il / Elle abandonne ensuite la clé dans les champs clés appropriés de mon application et fait exploser l'application.

D'après ce que j'ai pu rassembler jusqu'ici, les gens recommandent AES ou RSA pour cela. Pour être honnête, je suis dans une autre direction à l'université (pas la cryptographie) et la seule classe de cryptographie que j'ai prise était il y a quelque temps. Mais d'après ce dont je me souviens, AES est un algorithme de chiffrement symétrique, ce qui signifie que je n'aurais qu'une seule clé pour le chiffrement et le déchiffrement, n'est-ce pas? Comment puis-je alors générer des milliers de clés de produit et les valider encore dans mon application (qui par ailleurs ne nécessitera pas d’accès à Internet… donc pas de vérification avec un serveur)?

Donc je suppose que RSA serait la voie à suivre? Mais RSA ne produit-il pas des clés assez longues (au moins plus longues que les 25 caractères requis ci-dessus)?

Dans un autre sujet, j'ai lu que certains produits n'utilisaient même pas le chiffrement pour la génération / vérification de la clé de produit, mais employaient plutôt des vérifications comme "Ajouter le caractère 2. et le caractère 17. et cela devrait totaliser x".

Quel est le moyen le plus rapide, le plus simple et le plus sûr d’y aller? :-) Les échantillons de code seraient du sucre!

Cordialement,

Sebastian

PS: Oh ... et s'il vous plaît ne me dites pas comment ma clé peut et va être craquée à un moment donné ..... Je sais à ce sujet, qui est principalement pourquoi je ne veux pas passer beaucoup de temps avec ce problème, mais en même temps ne le rend pas trop facile pour le cracker occasionnel.


Oui, RSA et AES sont deux choses très différentes:

  • RSA est une cryptographie à clé publique, impliquant une clé publique et une clé privée, et est relativement lente. L'utilisation principale consiste à configurer un échange sécurisé d'une clé de session de chiffrement symétrique.
  • AES est un cryptage symétrique, rapide et sécurisé.

Étant donné que votre application ne communique pas via des canaux publics et que l'utilisation de la cryptographie est limitée à l'activation / à l'enregistrement du produit, vous souhaitez utiliser un chiffrement symétrique. Les avantages des chiffrements à clé publique résident dans la gestion des clés, que vous manipulerez sur votre site Web ou par courrier électronique.

Notez que vous n'avez pas à distribuer la même clé pour chaque client. Vous pouvez générer un hachage de certaines informations d’inscription et le XOR avec autre chose (une clé de session fixe, par exemple). Envoyez-le au client et le programme pourrait générer le même hachage et XOR la ​​clé que vous avez envoyée pour produire la clé fixe d'origine.

Traiter la cryptographie n'est pas quelque chose à faire à la légère. Comme vous le mentionnez, vous vous attendez à ce que cela soit fissuré. Si vous faites les vôtres, cela arrivera presque certainement. Vous pouvez toujours utiliser votre propre implémentation pour "garder les personnes honnêtes honnêtes", mais réalisez que c'est aussi loin que vous le ferez. Si vous avez besoin de quelque chose de plus fort, vous devriez acheter une solution après avoir effectué des recherches approfondies sur les solutions.


Vous pouvez consulter cet article du projet de code . Il décrit une implémentation d'une clé logicielle basée sur l'adresse MAC de la machine sur laquelle le logiciel est exécuté. La méthode n’est pas idéale, comme le reconnaît l’auteur lui-même, et elle diffère un peu de ce que vous recherchez, mais peut-être que cela peut vous aider.


Les algorithmes symétriques sont limités, dans la mesure où tout cracker novice avec un désassembleur peut trouver votre clé (ou l'algorithme utilisé pour en générer un) et créer un "keygen".

Pour cette raison, la cryptologie asymétrique est la voie à suivre. Le principe de base est quelque chose comme ceci:

  • Lorsque l'utilisateur vous achète une licence, vous collectez certains détails d'identification concernant l'utilisateur et / ou son environnement (en général, il ne s'agit que d'un nom complet, parfois d'une entreprise).
  • Vous faites un hachage MD5 de 128 bits de ces informations.
  • À l'aide d'un crypto Elliptic Curve 128 bits, cryptez ce hachage à l'aide de la clé privée sur le serveur.
  • Le texte chiffré à 128 bits peut être représenté à l'utilisateur sous la forme d'une chaîne de 25 caractères composée de lettres et de chiffres (plus des tirets de séparation pour la lisibilité). Notez que 26 lettres + 10 chiffres = 36 valeurs discrètes et que 36 ^ 25> 2 ^ 128.
  • L'utilisateur tape cette clé de produit dans votre boîte de dialogue d'enregistrement. Le logiciel client le reconvertit en un nombre de 128 bits (16 octets), le déchiffre avec la clé publique de votre crypto EC et compare le résultat à un hachage MD5 des informations personnelles de l'utilisateur, qui doit correspondre à ce qui a été utilisé pour l'enregistrement. .

Ce n'est que l'idée de base, bien sûr. Pour plus de détails et le code source, voir Clés de produit basées sur la cryptographie à courbe elliptique .





product