我們有一個運行在JBoss和Linux上的Java Web應用程序。生產環境數據庫連接參數來自只存在於生產環境應用程序服務器上的配置文件。該配置文件只能由運行應用程序的用戶ID讀取(我們稱之爲用戶appuser),唯一可以登錄到生產環境服務器的人員以及sudo to appuser是我們運營團隊的成員。生產環境本身在所有其他環境中被防火牆擋住。在生產環境中保護密碼
我們希望使這更安全。具體而言,我們希望阻止操作團隊讀取配置文件中當前的數據庫連接密碼和其他密鑰。
另一個需要記住的因素是操作團隊負責構建和部署應用程序。
我們有什麼選擇?該解決方案需要支持手動重新啓動應用程序,並在操作系統重新引導時自動啓動應用程序。
更新
我現在調查(尖亞當斯基對他的建議,大致翻譯成步驟1)解決方案:
寫一個包裝可執行是
setuid
用戶啓動/停止應用程序並擁有JBoss目錄樹中的配置文件和所有內容。使用
jarsigner
在WAR生成後對其進行簽名。戰爭的建設將通過發展來完成。包裝將驗證簽名,驗證WAR沒有被篡改。將部署過程更改爲僅部署帶符號的WAR。包裝器也可以將WAR移動到JBoss deploy目錄中。
注意:任何簽名只有在使用真實證書而不是自簽名時纔有意義。此外,JVM仍然可能被篡改。 –
對,JDK安裝也需要被鎖定,特別是'cacerts'目錄。 – sourcedelica