如果我向我通過 IP 引用的 API 服務器發出 TLS 請求,證書驗證阻止的 MITM 攻擊類型是否仍然可能?背景信息,如果它澄清了問題:我正在向 REST API 發出 TLS 請求,該請求的靜態 IP 沒有與之關聯的域名。為了使它在 Go 中工作,我必須InsecureSkipVerify: true,在我的 HTTP 客戶端的傳輸層設置。這會降低我的請求的安全性嗎?我會假設它確實如此,但我真的不知道為什么。
1 回答

慕的地6264312
TA貢獻1817條經驗 獲得超6個贊
正如@James 所指出的,這IP
是 TLS 握手的一個無關組件。
雖然標準程序是:
撥號主機名/端口
DNS查找主機名獲取IP
帶 IP 的 TLS 握手
揭示主機名證書身份
驗證證書名稱與主機名匹配
使用InsecureSkipVerify: true
跳過最后一步 - 通常只在開發/測試期間使用。
但是,您可以在最后一步中使用不同的名稱來匹配證書身份:利用tls.ConfigServerName
中的字段:
tc = &tls.Config{
ServerName: "myhostname", // certificate identity
RootCAs: rootca,
// InsecureSkipVerify: true // <- avoid using this
}
d := tls.Dialer{
Config: tc
}
conn, err := d.Dial("tcp", "127.0.0.1:8080")
在這里,我們正在撥打一個 IP 地址,執行 TLS 握手,但不是將主機證書與 進行比較的默認行為127.0.0.1,而是驗證它是否匹配myhostname。
- 1 回答
- 0 關注
- 91 瀏覽
添加回答
舉報
0/150
提交
取消