begin process at 2012 05 28 12:39:33
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Algorithme

 > 

Maths

 > 

Algo de création d'une clé de validation


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Algo de création d'une clé de validation

mardi 21 avril 2009 à 10:13:43 | Algo de création d'une clé de validation

hubchau

Bonjour à tous !

Je suis apprenti au département informatique d'une boite qui gère pas mal d'entrées et de sorties de matos info. Mon projet principal jusqu'à présent a été de mettre au point un moyen rapide et gratuit pour restaurer (comprenez "réinstaller") des machines avant qu'elles ne partent en clientèle.

J'ai donc bossé sous Clonezilla et sa partie Live CD afin de créer des DVD bootables contenant l'image à restaurer. Comme les DVD seraient, dans certains cas, envoyés par courrier à certains clients, et que les images en questions contiennent un Windows XP VLK (clé validable à l'infini), il a fallu que j'implémente un système pour empêcher quelqu'un de réinstaller son PC perso quand bon lui semble. J'ai donc fait un script en Shell qui génère pseudo-aléatoirement un entier sur 10 caractères, l'affiche à l'écran. Le client nous appelle alors, nous communique l'entier donné, nous le rentrons dans un programme en tant que variable "a" et on retourne au client f(a). Le soucis c'est que la fonction f(x) est vraiment pas très résistante (polynôme du second degré) et qu'il faudrait que je trouve un moyen soit de la renforcer, soit d'utiliser un autre algo.

L'idée est donc de renforcer mon code, qui est par la suite encodé par [url=http://linux.die.net/man/1/shc]"shc"[/url]. J'ai bien conscience que mon "système" n'est pas super sécurisé, c'est pas le but ; il s'agit simplement de décourager un peu les petits malins qui voudraient récupérer XP gratos.

Avez-vous des idées pour améliorer la protection ?

Merci d'avance pour vos tuyaux.

Hub

PS : si vous avez besoin du code actuel, demandez-le moi, je le posterai.
mardi 21 avril 2009 à 16:28:57 | Re : Algo de création d'une clé de validation

MoH008

Salut hubchau,
t'es tu penché sur la piste de la cryptographie ? plus précisément les fonctions de hachage par exemple, simple à utiliser mais très difficile à décrypter.
Je pense que sa peut t'être utile si tu arrives à l'adapter à ta convenance.
Voici quelques fonctions de hachages, la méthode du SHA1 est courante et est considérée comme safe, en à toi d'en juger ici.
En espérant t'avoir été utile...
mardi 21 avril 2009 à 19:03:05 | Re : Algo de création d'une clé de validation

ghuysmans99

Membre Club
Y'a aussi SHA2, Whirlpool et RIPEMD-160.
Et un hash ne se décrypte pas.
Signature.gif
mardi 21 avril 2009 à 20:39:24 | Re : Algo de création d'une clé de validation

MoH008

Oups, je ne pensais pas à "décrypter" en plus :S
Faute!!! autant pour moi
mercredi 22 avril 2009 à 09:49:12 | Re : Algo de création d'une clé de validation

hubchau

Merci pour vos réponses. On m'a conseillé aussi md5. Bref, j'ai compris qu'il fallait que je me tourne vers l'une de ces solutions. Mais pourront-elles fonctionner de la manière suivante :

1) Le  PC du client génère un entier aléatoire (et ce à chaque fois que l'on boot sur le DVD), la chiffre (via md5, SHA-x, etc.)
2) Le client me donne cette clé (clé publique donc). J'ai de mon côté une clé privée (fixe ?). Je les "mélange" (<- je ne connais pas l'opération qui intervient ici).
3) J'obtiens un résultat que je retourne à mon client
4) Il la rentre dans son PC. Le programme confirme que la clé publique ET la clé privée étaient valides, et continue l'installation.

Comme j'y connais vraiment rien en sécu pour l'instant (mes cours commencent plus tard), j'ai besoin d'un coup de main pour éclaircir le fonctionnement d'une telle opération. Comment mélanger la clé privée et la clé publique ? J'imagine que ça dépend de la méthode de cryptage ? Comment le PC client pourra vérifier que les clés données n'étaient pas des fausses (d'un point de vue algo) ?

Merci encore pour votre aide :)

Hub
mercredi 22 avril 2009 à 14:19:39 | Re : Algo de création d'une clé de validation

MoH008

Réponse acceptée !
Salut,
effectivement il est possible d'effectuer ce que tu viens de proposer !
Ton client  génère son nombre aléatoire au boot ( tu t'en es chargé déjà avec ton script si je m'en rappel bien ), utilise la fonction de hachage et garde en mémoire le résultat obtenu.
Le client t'envoie donc le nombre aléatoire généré, tu utilises la même fonction de hachage ( tu es donc censé trouver le même résultat que le client).
Tu lui envoies le résultat que tu as obtenu, et chez le client, il n'y a plus qu'à vérifier si les deux résultats sont identiques.
Cela te convient il ?
mercredi 22 avril 2009 à 14:47:29 | Re : Algo de création d'une clé de validation

hubchau

Ça me semble parfait et plus simple que je ne pensais. Comme mon code est compilé, ça devrait ajouter une légère couche pour décourager quelqu'un. Mais de toute façon, je rappelle que je vise pas la sécu absolue :)

Merci beaucoup de m'avoir éclairci les idées. J'implémente ça rapidement !

Hub
jeudi 23 avril 2009 à 09:32:51 | Re : Algo de création d'une clé de validation

hubchau

J'ai implémenté mon code sans trop de problème mais j'en rencontre un nouveau. Le hash donné par la fonction sha1sum sous Unix n'est pas le même que celui donné par les générateurs que l'on peut trouver sur Internet ou par SHA1.dll que je voulais utiliser (via AutoIt).

Exemple :

root@VM-Ubuntu:/# echo -e fzujzihwiy | sha1sum
eb0b0de50652f85eb17f7cce23816129506d608c  -


Mais sur le net, quels que soient les sites sur lesquels j'essaie, j'obtiens toujours le hash suivant :
b83924b4eb4f293fb59c864ba6e225254a405113

Idem sous AutoIt.

Donc j'en conclus que soit ma fonction sha1sum a un soucis, soit je m'en sers pas bien.

Une idée ?
jeudi 23 avril 2009 à 10:14:52 | Re : Algo de création d'une clé de validation

hubchau

J'ai trouvé !

il fallait faire un echo -n  et non un echo -e qui rajoutait un retour à la ligne :)


Cette discussion est classée dans : moyen, création, algo, clé, validation


Répondre à ce message

Sujets en rapport avec ce message

algo des [ par fredson ] je recherche le programme pour trouver divers clés de décryptage avec l'algo des(cryptage) création de client [ par sub-zero ] comment mettre un client en écoute tout en gérant les événements ???p.s: hmm ca marche mais le processus reste bloquant jusqu'à la première connexion Cherche tutoriel sur création d'activex en Visual C++ [ par fox ] Bonjour,ou trouver un tutoriel ou des exemples de création d'activeX sous Visual C++ 6 comment créer une chaîne dans une clé dans la base registre ? [ par wres ] salut,je voulais savoir comment créer une chaîne, une valeur binaire ou un DWORD dans une clé de la base de registre ?car j'arrive à créer une clé mai Création d'un jeu de stratégie en CPP et DIRECTX ! [ par DunËsPIdËr ] SalUt à tOuS! Nous sommes actuellement 4 programmeurs et 1 infographiste. Nous voulons créer un jeu de stratégie en temps réel sous Win utilisant di Création autorun ? [ par karen ] Bonjour a tous :)Voila mon souci j'ai une interface graphique que j'ai créee.j'ai mis des boutons et un carre vide au milieumaintenant je cherche a sa création d'un compilateur en langage c [ par fati fleur ] on veut créer un compilateur sous c et on veut le code source du compilateur une aide pour écrire un algo et un prog sur le nbr premiers [ par Julius Caesar ] Bonjour, je n'arrive pas écrire l'algo et le prog de ce sujet:"Ecrivez un algo et un prog, qui affiche les nbrs premiers inferieurs à un entier n (ave création de fenêtre enfant [ par polykos ] quelqu'un saurait me dire pour quoi lorsque avec CreateWindow, j'indique en tant que style WS_CHILD, j'obtiens une feêtre enfant mais inactive ???!! Fonction de création de lien [ par JMGR ] Bonjour,Je recherche une fonction qui permet de créer un fichier lien (.lnk) vers un éxécutable par exemple.Au fait, merci d'avoir répondu à la questo


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,544 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales