2010-11-04 54 views
0

方案只加載第三方應用程序服務器

我想設計它加載來自第三方供應商的插件組件的服務器信任組件。第三方供應商需要在實施插件程序集時遵循一些合同。第三方插件程序集需要被複制到服務器的指定部署文件夾。服務器將動態加載插件程序集。 服務器只需加載來自信任來源的那些程序集。

可能的解決方案

作爲解決方案之一,該服務器可以依靠數字證書技術。服務器應只加載那些用受信任的根證書頒發機構進行數字簽名的程序集。我打算從下面的圖導出測試用例:

alt text

葉節點(在紫色突出顯示)表示可能的測試用例。

我需要的想法/反饋如下:

  • 無論是基於數字證書的上述機制是夠用了上述情況?
  • 除數字證書技術之外,還有哪些其他替代方案?
  • 是否有任何未被考慮過的測試案例(基於上圖)?

謝謝。

+0

您應該檢查失效機制 - 根CA應該包含指向列出禁止證書的服務的鏈接。 – mpapis 2010-11-12 22:56:34

回答

1

只是一些隨機的想法。

儘管不是唯一的方法(例如,我可以使用具有特定密鑰的HMAC,或者僅使用公鑰算法(如RSA或DSA)),但這可能是最好的以最少的努力達到您想要的目標。

當然,我會假設你會在這種情況下充當CA,並且任何第三方都可以獲得從你簽名的證書?如果沒有,並且只是說Verisign證書等,則可能需要考慮檢查證書的密鑰使用情況和增強的密鑰使用字段,以確保它適用於對二進制文件進行簽名(例如,使用SSL證書來阻止某人) 。

正如在上面的評論中指出的那樣,你想要檢查任何證書撤銷列表,儘管這可能在簽名與未簽名中被覆蓋。您可能還希望在完全未簽名的文件,已簽名但不正確的文件(例如,公鑰不匹配)和已簽名但無效的文件(例如,該簽名不會由可信機構加蓋時間戳,並且證書已過期或CRL內容。

你也排除簽署證書是CA的可能性嗎?這是一件愚蠢的事情,但從技術上講,這樣做沒有任何問題。你甚至可以跳過整個CA的東西,讓第三方生成自己的自簽名證書,並將其發送給服務器的管理員,服務器將其添加到有效證書列表中以供使用。CA的唯一原因是它們應該檢查想要的人的細節,這取決於您計劃使用該系統的方式,而不是必要的。

+0

你可能會考慮一個OCSP來處理撤銷,我沒有直接使用,但我認爲它是一種解決CRL問題的新方法。 – Justin 2010-11-17 04:22:37

相關問題