Je développe une application intranet (C#) qui utilise des données (locales au serveur web) que nous aimerions garder privées. Ces données sont cryptées (AES) à l'aide d'un référentiel de données existant. Nous ne pouvons pas totalement empêcher l'accès physique à la machine. De toute évidence, nous n'aurons jamais une sécurité parfaite ici. Cependant, nous voulons rendre aussi difficile que possible l'accès non autorisé aux données.Comment masquer une clé de chiffrement dans une application .NET?
La question est de savoir comment stocker la clé au mieux. Le cryptage basé sur un ID spécifique à une machine est une option, mais cette information serait facilement accessible à quiconque exécutant un outil de diagnostic sur la machine.
Le codage dans l'application est une option (c'est une application unique). Cependant, les assemblys .NET sont assez faciles à décompiler. Alors, serait-il préférable de l'obscurcir, d'utiliser un lanceur de chiffrement, de le compiler?
Ou y at-il une option qui me manque? Pour que nous soyons clairs, je sais que c'est une cause perdue si quelqu'un est déterminé, mais nous cherchons à le rendre aussi dur que possible dans les limites.
Voici comment je l'ai fait dans le passé. –
Si vous avez accès à la machine, ne pouvez-vous pas écrire une application qui fait référence aux sections cryptées et qui vous donnera le texte en clair? Je pensais que c'était seulement sécurisé si vous n'aviez pas accès à la machine. – user74824
@yahoo: vous avez raison. – NotMe