mTLS
Java
什麼是mTLS(mutual TLS)或是相互 TLS?
2024/04/29 18:48:27
0
2322
在 TLS 中,Server Side 具有 TLS 憑證和公、私密金鑰對,而用戶端則沒有。典型的 TLS 運作方式如下:
-
用戶端連接到伺服器
-
伺服器提供其 TLS 憑證
-
用戶端驗證伺服器的憑證
-
粗體標示):
-
用戶端連接到伺服器
-
伺服器提供其 TLS 憑證
-
用戶端驗證伺服器的憑證
-
用戶端提供其 TLS 憑證
-
伺服器驗證用戶端的憑證
-
伺服器授予存取權限
-
為什麼使用 mTLS?
mTLS 有助於保障用戶端和伺服器之間的流量在兩個方向上都是安全和可信的,提供了額外的安全層給登入組織網路或應用程式的使用者。此外,它還可以驗證不遵循登入過程的用戶端裝置,例如物聯網(IoT)裝置。mTLS 可以預防各種攻擊,包括中間人攻擊、詐騙攻擊、認證填充、暴力攻擊、網路釣魚攻擊和惡意 API 請求。使用 mTLS 可以可靠地預防這些攻擊,保護組織的網路和應用程式。
為什麼網站使用了 TLS 卻沒有在整個網際網路上使用 mTLS?
就日常使用而言,單向驗證已足夠提供保護。在公用網路上,TLS 的目標是:
-
確保人們不造訪詐騙網站
-
保持私人資料通過各種網路的安全和加密
-
確保傳輸資料不被更改。僅驗證伺服器身分的單向 TLS 已可實現這些目標。
此外,將 TLS 憑證分發到所有終端使用者裝置將非常困難。產生、管理和驗證數十億個憑證,幾乎是不可能的任務。
將以 Spring Boot 建立一支示範 API 並做 mTLS 設定示範。
參考來源: