Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Insecure TLS Configuration - Default Skip of Certificate Verification #11

Open
sy2339226 opened this issue Jun 14, 2024 · 0 comments
Open

Comments

@sy2339226
Copy link

Description:
在项目infraboard/mcube中,我发现了一个潜在的安全问题,涉及到TLS配置中证书验证的默认跳过行为。这种配置使得系统容易受到中间人攻击(Man-in-the-Middle Attack),因为TLS连接的加密和认证功能被削弱。

具体来说,在文件github.com/infraboard/mcube/client/rest/tls.go的第24行,当前的实现允许TLS连接默认情况下跳过服务器证书的验证。虽然这可能简化了开发或测试环境的设置,但在生产环境中,这种行为是极其危险的,因为它允许未授权的第三方拦截或篡改传输中的数据。

Solution Suggestion:
为了提高安全性,我建议修改此默认配置,强制进行证书验证。这意味着TLS客户端必须检查服务器提供的证书是否有效,包括验证其是否由受信任的证书颁发机构签发,以及证书的公钥是否与服务器声称的身份相匹配。这样可以确保与远程服务之间的通信是加密且经过身份验证的,从而保护数据的完整性和机密性。

Additional Context:
在现代互联网应用中,TLS证书验证是维护网络通信安全的基础。绕过这一机制不仅违反了最佳实践,也可能导致严重的安全漏洞。因此,强烈建议将证书验证设为强制性的,并提供明确的文档说明如何在必要时(如在可控的测试环境中)禁用此功能。

此外在mcube/crypto/cbc/cbc.go中,sha1Hash2 (key []byte) []byte只有32位的校验位,略少,sha1算法也有一些弱,使用cbc模式存在侧信道构造padding oracle攻击的风险,可能会导致密钥泄露,如果想要实现认证加密可以考虑使用aes-gcm,现在tls1.2中已经不推荐cbc模式的套件使用了

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant