Comment puis-je automatiser le décryptage gpg qui utilise une phrase secrète tout en la gardant secrète?

13

Je suis chargé d'automatiser un déchiffrement gpg à l'aide de cron (ou de tout outil de planification de travaux compatible avec Ubuntu Server). Puisqu'il doit être automatisé, j'ai utilisé, --passphrasemais il se retrouve dans l'historique du shell, il est donc visible dans la liste des processus.

Comment puis-je automatiser le déchiffrement tout en maintenant de bonnes normes de sécurité (de préférence excellentes)?

Un exemple sera très apprécié.

Zakk Coetzee
la source
Des arguments comme celui-ci sont visibles dans psetc sauf si vous avez hidepidactivé /proc, mais un shell exécutant un script (à partir de cron ou autre) n'est pas interactif et ne doit pas écrire d'historique à moins qu'il ne soit mal configuré.
dave_thompson_085

Réponses:

23

Stockez la phrase secrète dans un fichier qui n'est lisible que par l'utilisateur du travail cron, et utilisez l' --passphrase-fileoption pour indiquer gpgd'y lire la phrase secrète.

Cela garantira que la phrase secrète n'est pas visible dans les informations de processus en mémoire. Le niveau de sécurité sera déterminé par le niveau d'accès au fichier stockant la phrase secrète (ainsi que le niveau d'accès au fichier contenant la clé), y compris partout où son contenu finira par être copié (alors faites attention aux sauvegardes), et l'accessibilité hors ligne (retirer le disque du serveur). Que ce niveau de sécurité soit suffisant dépendra de vos contrôles d'accès au serveur contenant le fichier, physiquement et dans le logiciel, et des scénarios que vous essayez d'atténuer.

Si vous souhaitez de grandes normes de sécurité, vous devez utiliser un module de sécurité matériel au lieu de stocker votre clé (et votre phrase secrète) localement. Cela n'empêchera pas la clé d'être utilisée in situ , mais cela l'empêchera d'être copiée et utilisée ailleurs.

Stephen Kitt
la source
+1 pour mentionner le module de sécurité matérielle, la seule solution, vraiment, à cette énigme.
MariusMatutiae
Stephen merci pour la mention du module de sécurité matérielle, je ferai quelques recherches. Merci de m'avoir indiqué dans la bonne direction.
Zakk Coetzee du
@StephenKitt Les clés matérielles sont excellentes lorsque vous travaillez. Quand ils ne le font pas, eh bien ...
Satō Katsura
@ SatōKatsura vrai, bien que je souligne que le Yubikey n'est pas un HSM. (Ce qui ne signifie pas que les HSM ne sont pas vulnérables bien sûr .)
Stephen Kitt
«Si vous voulez de grandes normes de sécurité», vous ne pouvez pas avoir un travail automatisé de décrypter ou de signer quoi que ce soit.
JimmyB
5

L'automatisation du déchiffrement signifie que vous devez stocker la phrase secrète quelque part, ou ne pas utiliser de phrase secrète (sauf si vous utilisez des options supplémentaires comme indiqué dans l'autre réponse soumise par Stephen pendant que je tapais la mienne)! Aucun de ceux-ci ne correspond à votre exigence de bonnes ou de grandes normes de sécurité.

c'est-à-dire que votre exigence n'est pas compatible avec sa sécurisation.

Vous pouvez compter sur des choses comme - vous devez être root, j'ai donné au fichier dans lequel ma phrase secrète est stockée un nom vraiment déroutant, j'ai chiffré les systèmes de fichiers sous-jacents, etc., etc., mais ce sont tous des calques qui sont triviales à contourner une fois que vous êtes root en premier lieu.

L'option qui empêche la phrase secrète de s'afficher dans la liste des processus est --passphrase-file <file-name>.

Cependant, ce n'est pas plus sûr que de simplement retirer la phrase secrète en premier lieu.

EightBitTony
la source
Merci d'avoir expliqué Tony, vous avez donné une meilleure vue sur la question. Un module de sécurité matérielle tel que mentionné par Stephen sera l'objectif principal.
Zakk Coetzee du
@ZakkCoetzee: Comme je l'ai dit dans l'autre réponse, qu'est-ce qui empêche l'attaquant d'utiliser le HSM s'il est root?
Martin Bonner soutient Monica
@MartinBonner Comme dit ci-dessus par Stephen Kitt, cela les empêche d'obtenir la clé, ce qui est certainement mieux que d'obtenir la clé.
Zakk Coetzee
C'est, mais pas beaucoup mieux. Demandez à Diginotar (qui avait sa clé dans un HSM, mais qui a laissé le HSM connecté et avec la carte à puce correspondante dans la fente - afin qu'un attaquant puisse signer un certain nombre de certificats de l'attaquant.)
Martin Bonner soutient Monica