Mi aplicación llega a varios servicios web, como Twitter y Flickr. Utiliza claves API de esos servicios, y me gustaría ofuscarlos en mis binarios. (No estoy realmente preocupado por la piratería ni nada, solo necesito mantener estas claves en secreto.)Cómo proteger una clave API en una aplicación .NET
¿Cuál es la mejor manera de hacerlo?
Si los almaceno como const SecureString, ¿eso los mantiene fuera de la memoria? La descripción de MSDN dice que el texto "se borra de la memoria de la computadora cuando ya no es necesario", pero ¿no es una constante en la memoria?
¿Dotfuscator lo ocultará en mi ensamblaje? (Suponiendo que puedo obtenerlo en work.)
No se puede. Si un atacante malintencionado quiere su clave de API, ofuscar su binario no impedirá que accedan a él. Alguien más no sabría qué hacer con la clave de todos modos. –
Creo que SecureString empeoraría la situación. Ya que es un gran cartel que dice "Mírame, soy tan secreto".SecureString protege contra cosas como el intercambio de una clave en el disco, pero no contra un uso malicioso. – CodesInChaos
Y simplemente interceptar su pedido de http (s) a twitter también debería ser trivial. – CodesInChaos