为了账号安全,请及时绑定邮箱和手机立即绑定

使用 IP 时是否可能存在 MITM

使用 IP 时是否可能存在 MITM

Go
大话西游666 2023-02-14 17:43:52
如果我向我通过 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。


查看完整回答
反对 回复 2023-02-14
  • 1 回答
  • 0 关注
  • 54 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信