Mon application touche un certain nombre de services Web, tels que Twitter et Flickr. Il utilise des clés API de ces services, et j'aimerais les masquer dans mes binaires. (Je ne suis pas vraiment inquiet au sujet du piratage ou quoi que ce soit, je dois juste garder ces clés secrètes.)Comment protéger une clé API dans une application .NET
Quelle est la meilleure façon de s'y prendre?
Si je les stocke comme const SecureString, cela les empêche-t-il de mémoire? La description de MSDN indique que le texte est "supprimé de la mémoire de l'ordinateur quand n'est plus nécessaire", mais n'est pas toujours un const dans la mémoire?
Est-ce que Dotfuscator l'obscurcira dans mon assemblage? (En supposant que je peux l'obtenir à work.)
Vous ne pouvez pas. Si un attaquant malveillant veut votre clé API, obscurcir votre binaire ne les empêchera pas d'y accéder. N'importe qui d'autre ne sait pas quoi faire avec la clé de toute façon. –
Je pense que SecureString aggraverait la situation. Puisque c'est un gros signe disant "Regarde-moi, je suis si secret".SecureString protège contre des choses comme l'échange d'une clé sur le disque mais pas contre une malveillance utilisée. – CodesInChaos
Et l'interception de votre requête http (s) sur Twitter devrait être triviale. – CodesInChaos