Sécurité - reverse engineering (rendre difficile son utilisation)

jockos Messages postés 321 Date d'inscription dimanche 22 octobre 2000 Statut Membre Dernière intervention 14 mai 2005 - 10 déc. 2003 à 19:10
rtrembleau Messages postés 13 Date d'inscription mercredi 11 mai 2005 Statut Membre Dernière intervention 1 mars 2007 - 12 juil. 2005 à 14:36
J'ai une classe A et une classe B qui contient un objet A :

class A
{
private:
unsigned char * key;

public:
........
.........
};

class B
{
private:
A privatekey; // ou alors : A * privatekey .... ???
public:
......
};

Dans la classe B, vaut-il mieux que je déclare le champ privatekey comme un pointeur sur la classe A (A *privatekey) ou sans pointeur (A privatekey).

Je voudrais que mon objet privatekey soit le plus difficilement accessible en mémoire vive par un cracker ou hacker...

Qu'est ce qui est le mieux pour rendre son accès difficile avec une logiciel de debuggage ? (mettre un pointeur ou directement l'objet lui même ou procéder autrement) ?

Merci de votre aide....

Jock

10 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
10 déc. 2003 à 19:43
L'objet ou un pointeur, me semble que ne changera pas grand chose car un objet est deja un pointeur vers une zone allouee.
Avec SoftIce y aura aucun probleme pour sauter a l'adresse du pointeur. Te prends pas trop le crane avec cela car si ton prog vaut vraiment la peine d'etre cracke, il le sera.
BruNews, ciao...
0
jockos Messages postés 321 Date d'inscription dimanche 22 octobre 2000 Statut Membre Dernière intervention 14 mai 2005 2
10 déc. 2003 à 19:51
Le problème, c'est que c'est un prog de cryptage (signature numérique plutôt)...
;)

Et que c'est la clé privée de l'utilisateur qui est en mémoire vive.
Cette clé est crypté en mémoire avec le hash du Mot de Passe de l'utilisateur, donc à priori, il n'y a pas de problème.

Cependant, je veux faire quelque chose de vraiment béton et la faille, c'est au moment ou l'utilisateur entre son Mot de Passe pour signer un document (sa clé privée est alors décrypté afin d'être utlisé dans l'algo de signature).
A ce moment, la clé est en clair dans la mémoire vive (un court instant).

Le seul type d'attaque possible serait d'utiliser un debuggeur à distance dans la RAM du PC cible (ce qui est très très très chaud je te l'accorde).
Cependant, je veux faire du béton...

Je crois que je n'ai pas d'autre choix que d'utiliser une carte à puce pour faire les calculs sur la clé privé directement dans la mémoire de la carte à puce... :(

Merci quand même pour ton aide BruNews...

A+
0
garslouche Messages postés 583 Date d'inscription mardi 26 novembre 2002 Statut Membre Dernière intervention 29 mai 2015 1
11 déc. 2003 à 09:12
Ouh là...quel optimisme !
"Le seul type d'attaque possible serait d'utiliser un debuggeur à distance dans la RAM du PC cible"

Tu sais qu'à ce jour aucun algorithme de cryptage est incassable ? Donc clé ou pas clé, quelque'un qui veut vraiment casser ton truc le cassera.

Et j'ajouterais que même si tu arrives à trouver ce fameux algo, le hacker pourrait tout simplement mettre un troyen et voir tout ce que fait l'utilisateur (y compris son mot de passe en clair)

On ne force pas une curiosité, on l'éveille.
.................................................Daniel Pennac
0
jockos Messages postés 321 Date d'inscription dimanche 22 octobre 2000 Statut Membre Dernière intervention 14 mai 2005 2
11 déc. 2003 à 10:24
"Tu sais qu'à ce jour aucun algorithme de cryptage est incassable ? Donc clé ou pas clé, quelque'un qui veut vraiment casser ton truc le cassera."

Evidemment que je le sais...
Cependant, avec une taille de clé suffisante, on arrive à éviter cela, c'est bien pour ça que les gouvernements limitent la taille des clés de cryptage !

Dans les algos, au niveau mathémtique, on se base sur des problèmes difficiles à résoudre (logarithmes discret avec les fonctions elliptiques, difficultés de la factorisation d'un grand nombre premier....).

Je ne fais pas un petit soft juste pour le fun, je fais un soft qui devra être certifié par un CESTI pour la DCSSI (ministère de la défense). C'est pour cela que je dois répondre à des exigences très strictes...

Bien à vous...

Jock
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
garslouche Messages postés 583 Date d'inscription mardi 26 novembre 2002 Statut Membre Dernière intervention 29 mai 2015 1
11 déc. 2003 à 11:51
OK, scuse je croyais que tu étais un "amateur" comme bcp de membres de ce site...

Mais je répète quand même qu'un hacker qui peut attaquer la RAM peut bien plus facilement mettre un hook pour récupérer le mot de passe !

On ne force pas une curiosité, on l'éveille.
.................................................Daniel Pennac
0
jockos Messages postés 321 Date d'inscription dimanche 22 octobre 2000 Statut Membre Dernière intervention 14 mai 2005 2
11 déc. 2003 à 12:06
Tu as entièrement raison..
Un simple keylogger (et un troyen pour envoyer le fichier contenant les frappes clavier) ferait l'affaire...
Et on peut très difficilement éviter cela...
Je vais réfléchir à comment "contrer" un Keylogger...
0
rtrembleau Messages postés 13 Date d'inscription mercredi 11 mai 2005 Statut Membre Dernière intervention 1 mars 2007
7 juil. 2005 à 11:39
euh ...
juste un truc, j'ai besoin, dans mon appli de savoir si un document est signé ou pas ... je fais comment ?
0
jockos Messages postés 321 Date d'inscription dimanche 22 octobre 2000 Statut Membre Dernière intervention 14 mai 2005 2
7 juil. 2005 à 12:12
Quel est le type de ton document signé (format propriétaire ou format standardisé de type PKCS#7 ou CMS) ?

Ta question est extrèmement vague... Donne moi plus de précisions si tu veux que je puisses t'aider...

A+

Jock
0
rtrembleau Messages postés 13 Date d'inscription mercredi 11 mai 2005 Statut Membre Dernière intervention 1 mars 2007
7 juil. 2005 à 13:05
en fait, on bosse sur un soft d'archivage de documents.
Les documents ca peut etre n'importe koi (images TIFF essentiellement mais fichiers doc, xls ... aussi)
Le truc c que j'ai du mal a saisir le principe de la signature, du genre :
qd on a signé une image ou un doc il se passe koi dans ce doc ? on ajoute des infos dans le fichier original ? c plus puissant que ca ?
ce que je voudrais faire c savoir si le doc a été signé et comment recuperer les infos sur le signataire.
Je vais qd meme me renseigner sur les types de fichiers que tu a cité, car je ne savais pas qu'il existait des standards

Merci de ton aide j'espere avoir été un peu plus précis...
0
rtrembleau Messages postés 13 Date d'inscription mercredi 11 mai 2005 Statut Membre Dernière intervention 1 mars 2007
12 juil. 2005 à 14:36
Ok !!
J'ai trouvé, j'ai utilisé la lib CAPICOM de microsoft.
Ca marche plus ou moins bien, en gros, faut avoir signé un truc avec Capicom pour vérifier avec capicom que le fichier a été signé... Mais bon vu que ya pas trop d'autres soluces et qu'on fonctionne sous une archi Windows, pas de soucis!
Merci à tous de votre aide
0
Rejoignez-nous