Tls
雙向 TLS 是否必須使用客戶端證書?
在單向傳輸層安全性 (TLS) 中,發起連接的客戶端驗證它正在連接的伺服器或實體的身份,但伺服器不一定驗證客戶端身份。
在雙向 TLS 連接中,客戶端和伺服器都驗證彼此的證書(公鑰)以實現相互認證。這裡的問題是,客戶端是否必鬚髮送其證書?如果客戶端發送伺服器知道並驗證的憑據(例如令牌/API 密鑰)以驗證身份,這不是相互身份驗證和雙向 TLS 嗎?我確實明白證書是比令牌/秘密更好的證明身份的方法。
嚴格來說,沒有“雙向 TLS”這樣的規範。這是一種非正式的表達方式。這意味著基於 PKI 的具有相互身份驗證的 TLS 連接。
如果您使用其他任何東西進行客戶端身份驗證,而不是 TLS/SSL 證書,那麼它就不是雙向 TLS。我建議使用其他詞,因為不恰當的措辭會導致所有相關人員的誤解和錯誤期望:客戶、開發人員、測試人員、審計人員等。
對於您的問題:
客戶是否必鬚髮送其證書?
是的。否則它不是“雙向 TLS”。
如果客戶端發送伺服器知道並驗證的憑據(例如令牌/API 密鑰)以驗證身份,這不是相互身份驗證和雙向 TLS 嗎?
它不是“雙向 TLS”。這並不意味著對於特定目的它是更好或更壞。這只是意味著我們不能將其稱為“雙向 TLS”。