Sécurité - reverse engineering (rendre difficile son utilisation)
jockos
Messages postés321Date d'inscriptiondimanche 22 octobre 2000StatutMembreDernière intervention14 mai 2005
-
10 déc. 2003 à 19:10
rtrembleau
Messages postés13Date d'inscriptionmercredi 11 mai 2005StatutMembreDerniè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) ?
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 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...
jockos
Messages postés321Date d'inscriptiondimanche 22 octobre 2000StatutMembreDernière intervention14 mai 20052 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... :(
garslouche
Messages postés583Date d'inscriptionmardi 26 novembre 2002StatutMembreDernière intervention29 mai 20151 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
jockos
Messages postés321Date d'inscriptiondimanche 22 octobre 2000StatutMembreDernière intervention14 mai 20052 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
Vous n’avez pas trouvé la réponse que vous recherchez ?
jockos
Messages postés321Date d'inscriptiondimanche 22 octobre 2000StatutMembreDernière intervention14 mai 20052 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...
rtrembleau
Messages postés13Date d'inscriptionmercredi 11 mai 2005StatutMembreDerniè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...
rtrembleau
Messages postés13Date d'inscriptionmercredi 11 mai 2005StatutMembreDerniè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