Мое приложение попадает в ряд веб-сервисов, таких как Twitter и Flickr. Он использует ключи API от этих служб, и я хотел бы запутать их в своих двоичных файлах. (Я не очень беспокоюсь о пиратстве или что-то еще, мне просто нужно хранить эти ключи в секрете.)Как защитить ключ API в приложении .NET
Каков наилучший способ?
Если я храню их как const SecureString, делает ли это их память? В описании MSDN говорится, что текст «удален из памяти компьютера, когда он больше не нужен», но не всегда является константой в памяти?
Будет ли Dotfuscator скрывать его в моей сборке? (Предполагая, что я могу получить его до work.)
Вы не можете. Если злоумышленник хочет использовать ваш ключ API, обфускация вашего двоичного файла не помешает им получить доступ к нему. В любом случае кто-то еще не знал бы, что делать с ключом. –
Я думаю, что SecureString сделает ситуацию еще хуже. Поскольку это большой знак: «Посмотри на меня, я настолько тайна».SecureString защищает от таких вещей, как замена ключа на диск, но не на злоумышленное использование. – CodesInChaos
И просто перехватить ваш запрос (т) на твиттер тоже должен быть тривиальным. – CodesInChaos