Luc*_*orr -1 security ssl networking go
如果我向通过 IP 引用的 API 服务器发出 TLS 请求,证书验证是否仍然可能阻止各种 MITM 攻击?
背景信息(如果它澄清了问题):我正在使用没有与其关联的域名的静态 IP 向 REST API 发出 TLS 请求。为了在 Go 中实现此功能,我必须InsecureSkipVerify: true,
在 HTTP 客户端的传输层进行设置。这是否会降低我的请求的安全性?我认为确实如此,但我真的不知道为什么。
正如@James 指出的那样,这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")
Run Code Online (Sandbox Code Playgroud)
在这里,我们拨打一个 IP 地址,执行 TLS 握手,但127.0.0.1
它不是将主机证书与 进行比较的默认行为,而是验证它是否匹配myhostname
。
归档时间: |
|
查看次数: |
240 次 |
最近记录: |