Conozco los muchos proveedores de criptografía que están disponibles en .NET framework junto con los conceptos básicos de cómo usarlos. Esto es bastante simple.Protección de claves de cifrado en C#
Pero mi preocupación es esta.
Digamos que quiero utilizar estas bibliotecas para encriptar objetos serializados XML para evitar manipulaciones y la posibilidad de que cualquiera pueda ver el contenido de estos archivos.
El problema que siempre me queda es que la clave para descifrar esta información debería almacenarse como una constante en algún lugar de mi aplicación. Esencialmente, hace que todo el ejercicio no tenga sentido.
Entonces, ¿cómo se almacena una clave para un algoritmo de cifrado de forma segura dentro de una aplicación desmontable?
EDIT: Si estoy entendiendo ambas respuestas a continuación correctamente. Lo que esto significa es que, esencialmente, cualquier implementación (para ser segura) requiere que sea de solo lectura o de escritura, pero nunca ambas? ¿Es esto correcto?
Ofuscar XML tanto como sea posible (agregar datos aleatorios + utilizar el esquema de cifrado primitivo ROT13 + etc.) y serializarlo en modo binario o en modo Base64.El objetivo es hacer que la decodificación XML a través del desensamblaje del programa sea lo más difícil posible para que el usuario no invierta tiempo en hacerlo ... –