我有一組內部使用的域名,我不希望它們洩漏給外界(因為這會讓攻擊者了解內部網路的佈局)。給定證書透明度似乎它的勢頭正在增強,對於擁有私有域名的最佳方式的普遍共識是什麼?自簽名證書?外卡證書?還有別的事嗎?
答案1
我有一組內部使用的域名
對於僅供內部使用的情況,您可以設定私人 CA,在內部系統上安裝其證書,並自行頒發內部證書。
如果你的內部使用伺服器以某種方式在外部使用,除非外部客戶端為您的憑證新增例外,否則它們將無法運作。這不會阻止外部攻擊者發現內部域並對其進行攻擊。在這種情況下,請使用通配符憑證。使用自簽名或內部 CA 憑證會惹惱外部用戶,並且無法保護您免受攻擊者(如大多數 DRM 架構)。
答案2
如果洩漏主機名稱是您的威脅模型的一部分,那麼 CT 可能不是此類洩漏的唯一來源。想想電子郵件標頭、日誌、監控、編譯器…許多工具最終可能會將系統名稱(無論是主機名稱還是憑證的一部分)洩漏到可公開存取的空間中。相反,要研究希望他們保密的根本原因。
如果它們沒有什麼秘密的話,你就不必隱藏它們。如果他們確實透露了一些信息,那通常是因為您使用這些名字來
- 幫助管理員導航您自己的網路或
- 幫助同事記住要輸入的 URL。
- 在商業運營之前對系統進行內部測試
對於這三個問題,都有更好的解決方案。 1. 的主要問題是,經過多次變更後,系統名稱通常會與系統角色不符。 2. 的主要問題是,您的同事無論如何都不應該手動輸入 URL - 想想拼字錯誤的網域類型詐騙。代號解決3.
建議:使用一致但隨機的方案命名您的內部伺服器。透過完全不同的方式傳達系統<>角色關係。您通常會透過同事的名字而不是角色來稱呼他們 - 對您的內部伺服器也這樣做。
我們的內部 wiki 託管在lake.example.org
。 Lake 沒有任何意義,它只是與cube.example.org
(日誌集合)有足夠的不同。但邪惡的攻擊者只知道有 8 個內部域,這對組織的規模來說並不奇怪。如果他想了解更多,他必須來拜訪我們並閱讀姓名標籤。
答案3
這似乎是一個非常簡單的決定,除非我遺漏了一些東西。
如果您認為透過憑證透明度公開的資料隱私比由公共信任的 CA 簽署憑證的便利性更有價值,您可以:
- 不要使用證書(對於現代軟體來說這是不明智且不可行的)
或者
- 運行您自己的 CA 並處理設定客戶端信任它的不便。