2016-03-07 180 views
0

我的一個java類將連接到另一個服務器,並使用rest服務進行一些操作。 Java類需要 - 用戶名和密碼才能連接到遠程服務器。在其他機器上,我們使用oracle cwallet.sso來存儲憑據,但這不是當前機器的選項。我正在考慮在加入一些鹽的屬性文件中存儲加密的密碼。我還需要將密鑰和鹽串存儲到某個安全的地方。我們有沒有其他的RHEL密碼管理方式,比如cwallet,或者有什麼建議,應該是實現這個目標的最佳方式?存儲敏感信息

請注意,我將使用shell腳本調用此類。

感謝

+0

這是你打算使用的嗎? – OscarSan

回答

2

這是棘手的,因爲如果有人得到訪問您的服務器已經在遊戲結束。因此,解決方案不僅僅是加密數據,因爲它不會做太多,但是您需要深入的安全性。

把這個放在上下文中,你可以讓密碼加密,不管什麼......當攻擊者訪問服務器時,他將無法讀取任何這些文件(即使使用加密的密碼)除非他能夠成爲運行該應用程序的用戶。如果他設法做到這一點,他只需要做一次內存轉儲,然後捕獲密碼(這並不困難)。

所以真實世界的解決方案是:

  • 只允許一人有限數量的登錄服務器上。
  • 只允許更小的數字成爲運行應用程序服務器的用戶。
    • 這一羣人誰可以讀取/更新的項目屬性文件
  • 禁用任何類型的備份對包含機密文件。

同樣,加密文件上的密碼可能會給你一種安全感,但如果按照上述步驟操作,任何人都可以讀取該文件,也可以讀取該應用程序的內存內容。即使有人正確地做了事情並將密碼存儲在一堆非法內存中,一些Linux工具也可以讀取整個過程的內存映射,所以遊戲結束了。

在這種情況下使用加密只是增加了默默無聞的保護。

+0

我同意沒有什麼是安全的。 Infra /安全團隊將確保有限的訪問權限。作爲程序員,我正在尋找一些關於我們可以實現安全性的最佳方式的建議。 –

+0

在服務器上使用雙因素身份驗證。仔細控制誰有第二個因素,就是很容易忘記取消授權。如果第二個因素是短信或電子郵件,請使用公司發佈的電話。硬標記是最好的,您可以跟蹤用戶的序列號。您可以借出令牌並將其退回,但不能借用密碼。 – zaph