分享方式:


什麼是憑證關聯?

憑證關聯是一種安全性技術,其中在建立安全工作階段時,系統只會接受已授權,或稱「已關聯」的憑證。 任何使用不同憑證建立安全工作階段的嘗試,都會被拒絕。

憑證關聯歷史

憑證關聯原本是設計來防止中間人 (MITM) 攻擊的方法。 憑證關聯最早是在 2011 年因 DigiNotar 憑證授權單位 (CA) 的入侵而變得熱門,在該事件中,攻擊者成功針對包括 Google 在內的數個知名網站建立萬用字元憑證。 之後,Chrome 已更新成會「關聯」Google 網站的最新憑證,並且會拒絕呈現不同憑證的任何連線。 即使攻擊者找到讓 CA 核發詐騙憑證的方法,Chrome 仍然會將其視為無效,並拒絕連線。

雖然 Chrome 和 Firefox 等網頁瀏覽器是首批實作此技術的應用程式,其使用案例的範圍也迅速擴大。 物聯網 (IoT) 裝置、iOS 和 Android 行動應用程式,以及不同的軟體應用程式集合皆開始使用此技術來防禦中間人攻擊。

過去數年來,憑證關聯被認為是良好的安全性做法。 隨著公開受信任 CA 所採用之核發方法的透明化,也改善了對公開金鑰基礎結構 (PKI) 環境的監督。

如何處理應用程式中的憑證關聯

一般而言,應用程式包含授權憑證或憑證屬性的清單,包括主體辨別名稱、指紋、序號和公開金鑰。 應用程式可能會針對個別分葉或端實體憑證、次級 CA 憑證,甚至是根 CA 憑證進行關聯。

如果您的應用程式明確指定可接受的 CA 清單,您可能需要定期在憑證授權單位變更或過期時更新關聯的憑證。 若要偵測憑證關聯,建議您採取下列步驟:

  • 如果您是應用程式開發人員,請在原始程式碼中搜尋下列任何關於 CA 變更或過期的參考。 如果有相符項目,請更新應用程式以包括遺漏的 CA。

    • 憑證指紋
    • 主體辨別名稱
    • 一般名稱
    • 序號
    • 公開金鑰
    • 其他憑證屬性
  • 如果您的自訂用戶端應用程式與 Azure API 或其他 Azure 服務整合,而您不確定該應用程式是否使用憑證關聯,請洽詢應用程式廠商。

憑證關聯限制

憑證關聯的做法已變得廣為受到爭議,因為其具有不可接受的憑證靈活度成本。 其中一個特定的實作:HTTP 公開金鑰關聯 (HPKP),已經完全淘汰

由於憑證關聯的執行方式並不存在單一 Web 標準,因此我們無法提供偵測其使用方式的直接指導方針。 雖然我們不會建議不要使用憑證關聯,但選擇使用此方法的客戶應該注意其限制。

下一步