OVH Cloud OVH Cloud

Enigme : 2 Codes a 5 X 6 Caractères

22 réponses
Avatar
Imochon
Bonjour,

J'aimerais savoir quel type de calcul ou méthode est réalisé pour obtenir
d'un code a 30 caractères un autre code a 30 caractères tout en sachant que
seule le second code peut valider le premier.

Je m'explique plus clairement peut etre :) Il s'agit de vérouiller un
logiciel par le biais d'une authentification par téléphone. L'utilisateur
devra appeler son revendeur, lui donner 1 code a 30 caractères correspondant
au numéro de série de son disque dur et son revendeur lui donnera un code a
30 caractères permettant de débrider le logiciel.

Voici le cas concret :

Code délivré par l'application : HF8EGH - FHQ3V7 - 8R92E7 - 0EGHFT - 729VIV
Code permettant de débrider le logiciel : XCX9QE - VPDOMO - EMQ987 -
EXP5DP - DOM7PD

J'aimerais savoir quelle est le calcul permettant de trouver ce second code.

Pour anticiper les questions, je ne cherche de loin pas a cracker une
application mais a proteger ma propre solution. Le développeur à déjà
developpé la solution c'est pour cela que je peux vous donner un 1er couple
de code. j'aimerais simplement m'assurer que l'algorythme n'est pas simple a
trouver.

Merci d'avance.

10 réponses

1 2 3
Avatar
Imochon
Encore ce genre d'humour, et la conversation se poursuivra sans moi...

Voici les inconvenients du net, on prend mal ce qu"il n'y a pas a prendre
mal ... Il n'y avait aucun humour la dessous ...Par contre je viens de voir


que c'est arnold et pas ronald et serieux j'ai pas fait attention la
première fois. Dsl si jamais ..

- Soit il est impossible de retrouver l'entrée avec la sortie en étudiant
ton algo, alors, il est sûr.

Et est ce la cas actuellement avec la sortie que j'ai fourni precedemment
?



Mais pour savoir s'il est exempt de failles il faut le publier pour que des
volontaires l'étudient. C'est pas avec une sortie que les volontaires vont
affluer...

Ok je vais me procurer l'algo



- Soit l'algo est relativement simple (c'est pas parce qu'il y a 3 xor et
deux log hein...) et il te faut alors protéger le code de ton application
pour pas qu'on puisse le désassembler facilement.

Ok merci



En tous les cas, fais marcher ton cerveau, ce n'est pas parce que personne
n'a trouvé l'entrée en étudiant UNE sortie que ton algo est sûr. Et dis-toi
bien qu'en crypto, tout est public. C'est parce qu'un algo est public qu'il
est facilement étudié. Et c'est parce qu'il est étudié que ses failles
peuvent être éventuellement mises à jour. Quant à protéger le code, cela
peut marcher un temps, mais ne rêve pas trop

merci pour ces elements. Mais comme dit je suis novice en crypto mais
ignorant .. :)



PS : si tu pouvait poster plus lisiblement (sauter des lignes, etc.), ce
serait pas du luxe, merci.

Voila :)




Avatar
Ludovic FLAMENT
Certes moi je ne m'y connais pas mais le développeur chargé de cette
protection s'y connait tout de meme. Pas convaincu de la methode utilisée
peut etre ?
Tu es certains qu'il s'y connaît, voir plus bas ;-)


"au plus il faut trouver un "protocole" (succession d'étape) mettant
en jeu

divers algorithmes cryptographiques ou non."
mais encore ? :)
Il faut que tu développes un protocole permettant de réaliser ce que tu


désires faire (protéger ton soft) à partir d'algorithmes (fonctions)
cryptographiques reconnus.
En gros, ton système sera un assemblage de fonctions reconnues comme
solides. Attention, tout de même, il ne suffit pas de prendre une
fonction par ici, une par là et de mixer les entrées pour obtenir
quelque chose de solide, cela reste tout de même un travail de
spécialiste (au sens personne maîtrisant le domaine), c'est comme pour
faire un mur, il ne suffit pas de prendre des briques et mettre du
ciment pour que cela tienne) !?

Pour ce qui est d'attaquer ton algorithme, il est bien évidemment
nécessaire

de le connaître pour pouvoir trouver les failles !
Ok donc c'est ce que je voulais savoir, sans connaitre l'algorithme
utilisé, personne ne peut trouver les failles ?
Oui et non. Il est certains que sans algo, il est difficile d'attaquer


un algo. Par contre des personnes savent très bien faire du reverse et
dans ce cas, si ton algo est mauvais, il tient une journée à tout cassé.
C'est pour cela qu'il ne faut pas se baser sur le secret de l'algo comme
moyen de sécurité, un jour ou l'autre il est divulgué et démoli si il
n'est pas bon !!

Petite Info, en jetant un rapide coup d'oeil sur ton exemple, on peut
remarquer que si on considère que le résultat du 1er bloc donne le 5eme,
le 2nd donne le 4eme, ... et que la 1ere lettre donne la 6eme, la 2nde
la 5eme, ... on peut trouver des répétitions et certainement ce qui peut
être la clef ou l'algo lui-même :

1er vers 5eme
H => D
G => O
E => M
8 => 7
F => P
H => D

4eme vers 2nd
T => V
F => P
H => D
G => O
E => M
0 => O (?)

5eme => 1er
V => X
I => C
V => X
9 => 9
2 => Q
7 => E

2nd => 4eme
7 => E
V => X
3 => P
Q => 5
H => D
F => P

3eme => 3eme
7 => E
E => M
2 => Q
9 => 9
R => 8
8 => 7

Constat :
H => D, G => O, E => M, F => P, 7 => E, 9 => 9, 2 => Q, 8 => 7, ...

On doit pas être loin d'une solution !?

merci bcp !!!
De rien,


--
Ludovic FLAMENT
http://ludovic.flament.free.fr



Avatar
Imochon
Tu es certains qu'il s'y connaît, voir plus bas ;-)

il n'a pas encore rajouté les fonctions mathématiques (exp, ln) sur la
représentation numérique



Oui et non. Il est certains que sans algo, il est difficile d'attaquer un
algo. Par contre des personnes savent très bien faire du reverse et dans ce
cas, si ton algo est mauvais, il tient une journée à tout cassé. C'est pour
cela qu'il ne faut pas se baser sur le secret de l'algo comme moyen de
sécurité, un jour ou l'autre il est divulgué et démoli si il n'est pas bon
!!

Ok bien reçu. Mais ce qui m'importait a moi est le fait qu'un simple
utilisateur ne puisse pas trouver le code de débridage correspondant au code


initial

Petite Info, en jetant un rapide coup d'oeil sur ton exemple, on peut
remarquer que si on considère que le résultat du 1er bloc donne le 5eme, le
2nd donne le 4eme, ... et que la 1ere lettre donne la 6eme, la 2nde la
5eme, ... on peut trouver des répétitions et certainement ce qui peut être
la clef ou l'algo lui-même ..

je viens de regarder avec un autre couple et certain se rapproche oui
mais pas tous .. je vais chercher egalement les ressemblances



On doit pas être loin d'une solution !?

veux tu un autre couple ?



Merci 1000 fois en tout cas !


Avatar
*core*administrator
On Mon, 7 Mar 2005 12:02:47 +0100, "Imochon"
wrote:

Bonjour,

J'aimerais savoir quel type de calcul ou méthode est réalisé pour obtenir
d'un code a 30 caractères un autre code a 30 caractères tout en sachant que
seule le second code peut valider le premier.


Pour anticiper les questions, je ne cherche de loin pas a cracker une
application mais a proteger ma propre solution. Le développeur à déjà
developpé la solution c'est pour cela que je peux vous donner un 1er couple
de code. j'aimerais simplement m'assurer que l'algorythme n'est pas simple a
trouver.

Je n'ai pas la réponse à votre question. Je me permets seulement

d'attirer votre aimable attention sur le fait suivant: en tant
qu'acheteur de nombreux logiciels (pour un parc important de machine)
je suis amené a étudier les avantages et les inconvénients, d'une
manière concurencielle, entre différents logiciels. Dans cette
optique j'ai établi un certain nombre de critères. La "pseudo"
protection que vous décrivez (appel obligatoire pour activation) est
chez nous un critère de rejet absolu pour un achat de logiciel. Un
achat de logiciel (dans un but économique et commercial) doit être
basé sur une confiance réciproque. Nous pensons qu'un éditeur qui
estime, par à priori, que ses éventuels clients sont des fraudeurs
n'est pas à prendre en considération.

Avatar
Imochon
Vous faites bien de souligner ce point.

Néanmoins nous cherchons non pas a sécuriser notre application contre les
clients finaux (quoi que) mais contre les futurs revendeurs.

Merci tt de meme pour votre remarque

"Richard" <*core* a écrit dans le message de
news:
On Mon, 7 Mar 2005 12:02:47 +0100, "Imochon"
wrote:

Bonjour,

J'aimerais savoir quel type de calcul ou méthode est réalisé pour obtenir
d'un code a 30 caractères un autre code a 30 caractères tout en sachant
que


seule le second code peut valider le premier.


Pour anticiper les questions, je ne cherche de loin pas a cracker une
application mais a proteger ma propre solution. Le développeur à déjà
developpé la solution c'est pour cela que je peux vous donner un 1er
couple


de code. j'aimerais simplement m'assurer que l'algorythme n'est pas
simple a


trouver.

Je n'ai pas la réponse à votre question. Je me permets seulement

d'attirer votre aimable attention sur le fait suivant: en tant
qu'acheteur de nombreux logiciels (pour un parc important de machine)
je suis amené a étudier les avantages et les inconvénients, d'une
manière concurencielle, entre différents logiciels. Dans cette
optique j'ai établi un certain nombre de critères. La "pseudo"
protection que vous décrivez (appel obligatoire pour activation) est
chez nous un critère de rejet absolu pour un achat de logiciel. Un
achat de logiciel (dans un but économique et commercial) doit être
basé sur une confiance réciproque. Nous pensons qu'un éditeur qui
estime, par à priori, que ses éventuels clients sont des fraudeurs
n'est pas à prendre en considération.










Avatar
Mister Jack
Salut !

Tout d'abord, essies de trouver un lecteur de news qui publie
correctement, parce que le fil de discussion est illisible.

Imochon wrote:
Pour ce qui est d'attaquer ton algorithme, il est bien évidemment nécessaire
de le connaître pour pouvoir trouver les failles !


Ok donc c'est ce que je voulais savoir, sans connaitre l'algorithme
utilisé, personne ne peut trouver les failles ?


Le problème n'est AMHA pas prit par le bon bout. Il faut se mettre à la
place de la personne qui voudrait activer le logiciel sans votre
consentement.
Quelqu'un qui a quelques connaissances en informatiques va tracer le
déroulement du programme jusqu'au test qui dit : "Si après décodage la
clé semble bonne alors j'active le logiciel sinon j'affiche que c'est
pas bon".
Et il va simplement modifier 1 octet pour le changer en "Si après
décodage la clé *ne* semble *pas* bonne alors j'active le logiciel sinon
j'affiche que c'est pas bon".
Et là n'importe quelle clé invalide va permettre l'utilisation du logiciel.

Alors effectivement ce n'est pas à la portée du premier clampin venu,
mais il suffit d'un pour que le patch qui inverse le test soit dispo
pour tous sur le net. Et les revendeurs pourront s'en donner à coeur joie.
Encore plus beau : faire un saut pour zapper la vérification et activer
directement.

Je crois que ce n'est pas la peine d'essayer de protéger le programme.

Amicalement,
--
Mister Jack (MJ)
"Linux c'est pas pour les manchots !"


Avatar
Imochon
Tout d'abord, essies de trouver un lecteur de news qui publie correctement,
parce que le fil de discussion est illisible.
Dsl j'utilise outlook express :/



Le problème n'est AMHA pas prit par le bon bout. Il faut se mettre à la
place de la personne qui voudrait activer le logiciel sans votre
consentement.
Enfin un qui a compris lol



Et il va simplement modifier 1 octet pour le changer en "Si après décodage
la clé *ne* semble *pas* bonne alors j'active le logiciel sinon j'affiche
que c'est pas bon". Et là n'importe quelle clé invalide va permettre
l'utilisation du logiciel.
mais tout ca se passe dans le code non ? Donc faut les sources non ?



Alors effectivement ce n'est pas à la portée du premier clampin venu, mais
il suffit d'un pour que le patch qui inverse le test soit dispo pour tous
sur le net. Et les revendeurs pourront s'en donner à coeur joie. Encore plus
beau : faire un saut pour zapper la vérification et activer directement.
l'application n'a pas une si grande portée enfin je me le souhaite ;o)
C'est seulement pour eviter a certains revendeurs de tenter de m'avoir c'est


tout :)

Je crois que ce n'est pas la peine d'essayer de protéger le programme.
Pourquoi donc ? Si c'est bien fait ..




Avatar
Imochon
Il s'agit donc du numéro de série "constructeur" du HD ?

exactement



Et donc "ton système" s'apparente à ce que Micro$$$$$oft utilise pour
"sérialiser" ses productions ou que certains éditeurs de logiciels tel
Norton® ou Cegid® Etc ... utilisent pour se garantir (autant que faire se
peut) d'une installation multiple ... Et cela pour une raison simple, je ne
veux pas avoir à téléphoner à l'éditeur chaque fois que mon HD rend son âme
misérable a HAL® ou que ma carte ethernet éternue 2 ou 3 transistors dans
la sciure pour quémander un aure code en jurant sur l'honneur que je peux
lui expédier les épaves en guise de preuves (toutefois très relatives
d'ailleurs les fameuses preuves en question) ...

C'est exactement le meme système. mais ne comprends tu pas le débat
actuel sur le piratage ? Ne comprends tu pas que certains entrepreneurs et


jeunes entrepreneurs dépensent des sous et prennent des risques ?Ce n'est
pas pour que leur logiciel ou travail de facon plus générale soit copié.
enfin c'est mon avis sur la chose ..

Alors, sauf si ton "merveilleux" logiciel par toi réputé unique au monde,
(puisque nécessitant une protection anti-piratage hautement sophistiquée)
et capable de, par exemple, me fournir (à moi tout seul, hein) le prochain
tirage de l'euro million, je crains fort que le nombre d'acheteurs
potentiels de ton soft mirobolant ne soit plus proche de zéro que le
l'infini ...

pas saisi cete pointe d'humour .. Mon application doit elle etre unique
forcement pour faire l'objet d'une protection ? et ben ...



Merci qd mm pour avoir pris ton temps pour me repondre


Avatar
Mister Jack
Salut !

Imochon wrote:
Et il va simplement modifier 1 octet pour le changer en "Si après décodage
la clé *ne* semble *pas* bonne alors j'active le logiciel sinon j'affiche
que c'est pas bon". Et là n'importe quelle clé invalide va permettre
l'utilisation du logiciel.


mais tout ca se passe dans le code non ? Donc faut les sources non ?


Pas besoin des sources. Certaines personnes travaillent très bien avec
le code compilé. Demandez à Arnold, je crois qu'il maîtrise.

Retour en charte : même avec des moyens crytographiques performants, un
système peut être faible s'il les utilise mal, ou si un élément du
système est faible.
Dans votre cas le moyen "cryptographique" sert à déclencher une
action... et on peut se permettre de la déclencher par des moyens
détournés. Conclusion : le moyen cryptographique est inutile.

Je crois que ce n'est pas la peine d'essayer de protéger le programme.


Pourquoi donc ? Si c'est bien fait ..


Si c'est bien fait... Les bonnes façons de faire c'est un peu ce qu'a
fait Valve Software avec la version téléchargeable de Half-Life². Les
gens ont pu télécharger le jeu sur le net, mais pas l'exécuter avant la
date officielle de lancement.
A cette date le logiciel a téléchargé quelques informations qui lui ont
permit de s'auto-débloquer. L'ensemble des données téléchargées étaient
inutilisables avant d'avoir le code puisqu'elle étaient chiffrées, et
probablement aussi qu'il en manquait quelques octets bien choisis.

Cette méthode est beaucoup plus efficace, puisque des moyens
cryptographiques connus et reconnus peuvent être utilisés de manière
fiable pour arriver au résultat voulu.

Cordialement,
--
Mister Jack (MJ)
"A quoi bon mettre 30 cadenas sur une porte en cartons ???"


Avatar
Imochon
Pas besoin des sources. Certaines personnes travaillent très bien avec le
code compilé. Demandez à Arnold, je crois qu'il maîtrise.

Pour revenir a mon cas, si mon logiciel ne s'adresse qu'a des revendeurs
connaisseurs mais pas cryptologues, peuvent ils craquer mon logiciel avec la
solution précité (activation par telephone) avec seulement des sorties ?

++ merci
1 2 3