Plusieurs idées ... La cryptographie à clé publique est la réponse la plus flexible.
Obfuscation (pour le code seulement)
Pour les parties du code que vous souhaitez masquer, pouvez-vous les insérer dans un projet différent, les compiler et ne réintégrer que le code compilé, pas le code source? Ce n'est pas un cryptage et ne convient pas au cryptage de mots de passe ou de clés. Les utilisateurs peuvent toujours désosser leur code compilé, mais ils n’obtiennent pas le code source.
Dépôt GIT privé
Faut-il que ce soit un dépôt git public ?
Stockage sur serveur
Pouvez-vous stocker ces informations dans un fichier protégé dans le répertoire de base du compte d'utilisateur sous lequel l'application est exécutée? Je copierais la manière dont ssh fait cela avec ~ / .ssh / id_rsa et un chmod de 600. À défaut, une variable d'environnement pourrait être utilisée. Il vous faut quelque part sur le serveur pour stocker une sorte de clé, sinon vous ne pouvez rien protéger.
Cryptographie symétrique (juste pour vous)
Si vous êtes le seul développeur, vous pouvez placer une clé sur le serveur, disposer de la même clé sur votre machine et utiliser un schéma de chiffrement symétrique pour protéger certaines données, telles qu'un mot de passe ou un certificat. Partager une clé symétrique avec des amis devient compliqué.
Cryptographie asymétrique (pour plusieurs développeurs)
Si d'autres développeurs ont besoin de vérifier des éléments secrets dans un référentiel git public, une cryptographie à clé publique / clé privée (asymétrique) a été créée pour ce genre de chose. Installez une clé privée sur votre serveur (ne la copiez pas dans le contrôle de source!) Et générez une clé publique à partir de celle-ci. Cryptez vos données secrètes à l'aide de la clé publique du serveur. Seul le serveur peut déchiffrer ces données à l'aide de sa clé privée. Vous pouvez même vérifier la clé publique dans le contrôle de source afin que d'autres personnes puissent chiffrer des données à l'aide de la même clé publique et que seul le serveur puisse la déchiffrer.
Outil
Openssl est probablement le seul outil de cryptographie dont vous aurez besoin. N'écrivez pas votre propre algorithme de cryptographie ou votre propre implémentation d'un algorithme publié.
Pensées de clôture
Si le "serveur" est un serveur Web qui utilise https, vous devriez déjà avoir un fichier de clés sécurisé sur le serveur sur lequel stocker la clé privée. cette. Peut-être ont-ils des indices sur la façon dont les autres résolvent le défi auquel vous êtes confrontés?