登录
首页 >  Golang >  Go问答

Golang TLS 密码套件为何未被 nmap 检测到?

来源:stackoverflow

时间:2024-02-12 22:48:28 470浏览 收藏

编程并不是一个机械性的工作,而是需要有思考,有创新的工作,语法是固定的,但解决问题的思路则是依靠人的思维,这就需要我们坚持学习和更新自己的知识。今天golang学习网就整理分享《Golang TLS 密码套件为何未被 nmap 检测到?》,文章讲解的知识点主要包括,如果你对Golang方面的知识点感兴趣,就不要错过golang学习网,在这可以对大家的知识积累有所帮助,助力开发能力的提升。

问题内容

我在 golang 1.19 中创建了一个 web 服务器,并将最低 tls 版本配置为 1.2,并使用一组受限的密码套件:

config := &tls.config{
    certificates: certs,
    minversion:   tls.versiontls12,
    ciphersuites: []uint16{
        tls.tls_rsa_with_aes_256_cbc_sha,
        tls.tls_rsa_with_aes_256_gcm_sha384,
        tls.tls_ecdhe_rsa_with_aes_256_cbc_sha,
        tls.tls_ecdhe_rsa_with_aes_256_gcm_sha384,
    },
}

然后,我将 web 服务器部署到 linux 服务器并运行 nmap。结果出乎意料:

> nmap --script ssl-enum-ciphers -p 443 myserver.mydomain.com

Starting Nmap 6.40 ( http://nmap.org ) at 2023-07-31 07:24 PDT
Nmap scan report for myserver.mydomain.com ()
Host is up (0.00052s latency).
PORT    STATE SERVICE
443/tcp open  https
| ssl-enum-ciphers:
|   TLSv1.2:
|     ciphers:
|       TLS_RSA_WITH_AES_256_CBC_SHA - strong
|       TLS_RSA_WITH_AES_256_GCM_SHA384 - strong
|     compressors:
|       NULL
|_  least strength: strong

Nmap done: 1 IP address (1 host up) scanned in 0.06 seconds

ecdhe 密码套件发生了什么?为什么它们没有出现在 nmap 中?


正确答案


如果客户端在 ClientHello 中缺少 ec_point_formats TLS 扩展,则 Go 版本 1.20 不支持 ECDHE 密码。由于 nmap 脚本不发送此扩展名,因此当使用旧版本的 Go 编译代码时,ECDHE 密码不起作用。在最新版本(尝试过 1.20.6)中,该问题已得到解决,即所有密码均已检测到。

更多信息请参阅 crypto/tls: support ECDHE key exchanges when ec_point_formats is missing in ClientHello extension #49126

今天关于《Golang TLS 密码套件为何未被 nmap 检测到?》的内容介绍就到此结束,如果有什么疑问或者建议,可以在golang学习网公众号下多多回复交流;文中若有不正之处,也希望回复留言以告知!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>