2012-06-04 47 views
3

我是Windows 2003服務器上,我需要編寫一個批處理文件使用GnuPG來自動解密。 解密命令需要密碼才能使用私鑰。在批處理中使用密碼短語的最佳做法是什麼?

以下是不完全滿足我一些可行的選擇:

  1. echo thisIsMyPassphrase|gpg.exe --passphrase-fd 0 --output %1 --decrypt %2 這樣的硬編碼密碼看起來並不像一個安全的方法!另外,更改方式也不方便(直接嵌入.cmd文件中)。

  2. 存放在不同的文件中的密碼,並確保只在運行解密過程可以訪問(使用N​​TFS的安全設置)的Windows用戶。
    gpg.exe --passphrase-file X:\passphrase.txt --output %1 --decrypt %2
    我在這裏不太喜歡的是,我們有一個裸體文件只是包含這個高度敏感的信息。奇數維護?容易找到 ? ..

  3. 我不覺得自己存儲在一個環境變量的密碼聽起來不錯(看起來相當暴露)..
    echo %MY_PASSPHRASE%|gpg.exe --passphrase-fd 0 --output %1 --decrypt %2


那麼,什麼是對你最好的意見(或「最不好的」)解決方案來實現這一目標?

+1

關於#2,文件名可能實際上是另一個參數,該文件可能被例如保持在USB閃存驅動器上。但是當然錯誤信息仍然需要處理(恐怕我不能幫助解決這個問題)。 –

+0

#2,我在想存儲Passphrase.txt在網絡的另一臺服務器..使自動化的東西物理解密服務器上是不夠的,解密(在服務器的物理小偷的情況下)。就我而言,使用可移動驅動器並不能真正解決這個問題(因爲它們是物理連接到服務器的),而且我們對服務器機房的物理訪問非常有限。 – Myobis

+1

但是,存儲在單獨的服務器上會打開新的攻擊媒介。有人能夠嗅探網絡流量可能能夠以這種方式獲得密碼。 –

回答

0

我想你第二個(密碼文件)的選擇似乎是爲廣大的使用情況相當合理的做法。並使用Windows 2003加密文件系統可以減輕約物理服務器盜竊關注一些水平。你當然可以通過箍環來進一步混淆密碼,但這只是 - 混淆。您的真正安全性在於NTFS文件系統安全性。

它幾乎可笑提,但「正確」的安全實施是解決方案的成本與數據價值之間的平衡作用,如果數據足夠敏感,你願意拋出一些現金的問題,也有硬件安全模塊(nCipher的浮現在腦海)那可能能夠幫助這類問題。

下面是一個類似的SO討論如果你有興趣的鏈接:Storing passwords for batch jobs

+0

我們最終使用了具有適當文件保留的解決方案#2。感謝您的回答。 – Myobis

相關問題