Question

J'ai un doute sur la façon de stocker un mot de passe pour une utilisation dans mon application. Je dois chiffrer / déchiffrer des données à la volée, de sorte que le mot de passe doit être quelque part. Options serait d'avoir du mal codé dans mon application ou le charger à partir d'un fichier.

Je veux chiffrer un fichier de licence pour une application et l'une des étapes de sécurité implique l'application d'être en mesure de déchiffrer la licence (d'autres étapes suivent après). Le mot de passe est ne sait jamais à l'utilisateur et seulement à moi comme e n'a pas vraiment besoin!

Ce qui me préoccupe est avec les pirates en passant par mon code et de récupérer le mot de passe que j'ai stocké là-bas et l'utiliser pour pirater la licence casser la première barrière de sécurité.

À ce stade, je ne considère pas l'obscurcissement de code (éventuellement je vais), donc c'est un problème.

Je sais que toute solution qui stocke les mots de passe est un danger pour la sécurité, mais il n'y a pas d'autre solution!

Je considérais l'assemblage du mot de passe de plusieurs pièces avant vraiment besoin, mais à un moment le mot de passe est complet pour un débogueur et un bien lieu d'arrêt est tout ce qui est nécessaire.

Quelles sont les approches gars-vous (et galles), utilisez lorsque vous avez besoin de stocker codées en dur vos mots de passe dans votre application?

Vive

Était-ce utile?

La solution

Mon opinion personnelle est le même que celui GREGS ci-dessus: il est une perte de temps. L'application sera piraté, peu importe combien vous essayez de l'éviter. Cependant ...

Votre meilleur pari est de réduire le piratage occasionnel.

Considérez que vous avez deux catégories d'utilisateurs. L'utilisateur normal et le pirate. Le pirate va aller très loin pour casser votre application. L'utilisateur normal veut juste utiliser votre application pour obtenir quelque chose. Vous ne pouvez pas faire quoi que ce soit sur le pirate.

Un utilisateur normal ne va pas savoir quoi que ce soit sur le code de craquage ( « euh ... ce qui est un éditeur hexadécimal? »). S'il est plus facile pour ce type de personne pour acheter l'application que de ce pirate, ils sont plus susceptibles d'acheter.

Il semble que les solutions que vous avez déjà considérées seront efficaces contre l'utilisateur normal. Et c'est tout ce que vous pouvez faire.

Autres conseils

Décider maintenant combien de temps / effort que vous voulez consacrer à la prévention de la piraterie. Si quelqu'un est déterminé, ils vont probablement obtenir votre application fonctionne de toute façon.

Je sais que vous ne voulez pas l'entendre, mais il est une perte de temps, et si votre application a besoin d'un mot de passe hardcoded alors c'est un défaut.

Je ne sais pas qu'il y ait une approche pour résoudre ce problème qui dissuaderait un pirate informatique de manière significative. Garder le secret un secret est l'un des grands problèmes de cryptographie.

Une approche que je l'ai fait dans le passé était de générer un identifiant unique lors de l'installation, il obtiendrait le SN du disque dur et MCU et l'utiliser dans une structure complexe, l'utilisateur envoie ce numéro pour notre système automatisé et nous répondre en arrière avec un autre bloc de cela, l'application va maintenant décrypter et comparer ces données à la volée lors de l'utilisation.

Oui, je fonctionne mais il encore le mot de passe alors plus difficile, nous avons quelques couches de protection (par exemple. Il existe des techniques qui empêche un pirate informatique de niveau moyen pour comprendre notre système de sécurité).

Je voudrais simplement vous recommander de faire un système très complexe et essayer de pirater vous-même, si le démontage peut conduire à un chemin facile. Ajouter quelques appels au hasard à des sous-routines aléatoires, faites très alleatory, essayez de simuler l'utilisation des clés de Registre et variables globales, transformer la vie de pirate dans un enfer alors il finira par abandonner.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top