Chiffrement des chaînes
Babel Obfuscator peut chiffrer les chaînes écrites en ligne dans le code à l’aide d’algorithmes de chiffrement des chaînes intégrés. En plus de ces algorithmes intégrés, Babel permet d’implémenter des algorithmes personnalisés au moyen de code externe ou de plugins. Vous pouvez ainsi créer vos propres méthodes de chiffrement, adaptées à vos besoins.
Configurer le chiffrement des chaînes
Configurer le chiffrement des chaînes avec Babel Obfuscator consiste à choisir un algorithme de chiffrement et à le mettre en place pour votre application. Babel prend en charge d’emblée les algorithmes XOR, HASH et STREAM. Vous pouvez sélectionner l’un des trois dans Babel Desktop, avec les options de la ligne de commande ou dans votre fichier de projet MSBuild. Si aucun ne convient, vous pouvez implémenter des méthodes de chiffrement personnalisées.
Que vous choisissiez les algorithmes intégrés ou une implémentation personnalisée, le chiffrement des chaînes renforce la sécurité de votre application en protégeant les chaînes sensibles contre une interception ou une manipulation directes.
Vous déployez sur des hôtes en mode FIPS ? Les algorithmes XOR et HASH déchiffrent les chaînes à l’exécution au moyen du fournisseur cryptographique de la plateforme : un conteneur exécuté sur un hôte en mode FIPS sans fournisseur FIPS OpenSSL certifié peut donc ne pas démarrer. Voir Conformité FIPS pour la cause et le correctif. L’algorithme STREAM n’est pas concerné : son déchiffreur est entièrement managé et n’appelle jamais le fournisseur cryptographique de la plateforme.
Chiffrement des chaînes const
Babel Obfuscator a une limite : il ne peut pas chiffrer les chaînes constantes (const), car elles sont compilées dans les métadonnées de l’application, ce qui les rend directement accessibles au CLR à l’exécution. Pour que ces chaînes puissent être chiffrées, elles doivent être converties en champs static readonly (en C#) ou Shared ReadOnly (en VB.NET). Babel Obfuscator peut alors traiter et chiffrer ces chaînes, ce qui renforce la sécurité de votre application en protégeant des informations sensibles qui seraient sinon exposées en clair.
// Strings declared const cannot be encrypted
public const string Connection = "Server=myServerAddress;Database=myDB;...";
// To encrypt, convert the above declaration to static readonly
public static readonly string Connection = "Server=myServerAddress;Database=myDB;...";
Babel Desktop
Dans Babel Desktop, sélectionnez l’assembly sur le canevas du projet et choisissez l’algorithme (xor, hash, stream ou custom) de StringEncryption dans le groupe Chiffrement du code du panneau des propriétés. La liste ne propose que les algorithmes inclus dans votre licence. Pour custom, les méthodes EncryptString et DecryptString doivent être définies dans votre code.
Dans cette section
- Algorithmes standard : les algorithmes intégrés XOR, HASH et STREAM, la manière d’activer chacun d’eux et un comparatif pour vous aider à choisir.
- Algorithme personnalisé : implémentez vos propres méthodes
EncryptString/DecryptStringpour chiffrer les chaînes avec l’algorithme de votre choix.