Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Sécurité - reverse engineering (rendre difficile son utilisation) [ Archives / Au secours ] (jockos)

mercredi 10 décembre 2003 à 19:10:28 | Sécurité - reverse engineering (rendre difficile son utilisation)

jockos

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


mercredi 10 décembre 2003 à 19:43:24 | Re : Sécurité - reverse engineering (rendre difficile son utilisation)

BruNews

Administrateur CodeS-SourceS
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...

mercredi 10 décembre 2003 à 19:51:33 | Re : Sécurité - reverse engineering (rendre difficile son utilisation)

jockos

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+

jeudi 11 décembre 2003 à 09:12:36 | Re : Sécurité - reverse engineering (rendre difficile son utilisation)

garslouche

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

jeudi 11 décembre 2003 à 10:24:23 | Re : Sécurité - reverse engineering (rendre difficile son utilisation)

jockos

"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

jeudi 11 décembre 2003 à 11:51:05 | Re : Sécurité - reverse engineering (rendre difficile son utilisation)

garslouche

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

jeudi 11 décembre 2003 à 12:06:08 | Re : Sécurité - reverse engineering (rendre difficile son utilisation)

jockos

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...

jeudi 7 juillet 2005 à 11:39:04 | Re : Sécurité - reverse engineering (rendre difficile son utilisation)

rtrembleau

euh ...
juste un truc, j'ai besoin, dans mon appli de savoir si un document est signé ou pas ... je fais comment ?

jeudi 7 juillet 2005 à 12:12:56 | Re : Sécurité - reverse engineering (rendre difficile son utilisation)

jockos

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


jeudi 7 juillet 2005 à 13:05:40 | Re : Sécurité - reverse engineering (rendre difficile son utilisation)

rtrembleau

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...


1 2

Cette discussion est classé dans : objet, rendre, classe, difficile, privatekey


Répondre à ce message

Sujets en rapport avec ce message

Pointeur et objet ET collection d'objet [ par MrKribou ] En fait je savais pas trop quoi mettre comme titre pour pas copier :pBon je vous explique mon probleme (j'ai pas le source de ce probleme sous la main CObject [ par ifren ] salutj'ai un petit probleme,bon j'ai une classe data qui herite de la classe CObject, jusque la normalj'ai un tel codeData::Data(): // Copie de l'obje Comment faire un tableau d'objet ?? [ par vinvay ] Voilà mon problème : j'ai une classe avec deux constructeurs, un qui ne fait rien et l'autre qui initialise une variable de cette classe.Je souhaite f vector et objet de classe [ par cppdupdup34 ] voila mon pbclass tutu {...};int main{...vector prout;tutu objet;prout.push_back(objet);et la ...492 C:\Dev-Cpp\include\c++\bits\stl_vector.h instant est-ce que l'adresse d'un objet est la meme que les membres ? [ par rick_moins_moins ] Bonjour,je souhaiterais savoir si l'adresse d'une instance de classe est la meme que l'adresse d'une donnee membre de cette classe ? Classe liste chaînée générique [ par marik7335 ] Salut à tous,   Je souhaite gérer un parc de véhicules contenant des motos et des voitures. Pour se faire, j'ai donc implémenter trois classes : une Les types [ par emmanuel9 ] Bonjour à tous, J'ai un objet TextBox par exemple et je voudrais savoir si il hérite de la classe Object ? (c'est un cas d'école), comment faire cela Objet COM [ par 0xYg3n3 ] Bonsoir, Voila je ne sais pas si je vais arriver a me faire comprendre. Je me demandais si un objet qui n'a pas initialiser d'interfaces COM peut qu classe heritage [ par abdoulax ] Bonjours, Je suis bloqué surun probleme d'heritage, voici la problématique : Nous avons un objet soit carré, triangulaire ou rond. Mais cette objet e Urgent svppp : Utilisation de <list> [ par najla1986 ] j'ai une classe message, qui comme membre a, entre autre, un objet *expediteur.Lorsque je veux envoyer une occurence de cette classe sur ma liste, par


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Téléchargements



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, 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
Temps d'éxécution de la page : 0,203 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.