如果我向我通过 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 关注
- 74 浏览
添加回答
举报
0/150
提交
取消