gpt4 book ai didi

c# - 没有 SSL 的服务器和客户端安全识别

转载 作者:太空宇宙 更新时间:2023-11-03 14:57:04 26 4
gpt4 key购买 nike

我目前正在开发一个使用 TCP/IP 在客户端和服务器之间进行通信的 C# 应用程序。连接后,我将交换基于 session 的 RSA 公钥,然后传递基于 session 的 AES 对称 key 。这一切都很好,意味着我有一个安全的沟通 channel 。

现在的问题是我需要确保服务器和客户端都是我希望与之通信的。在有人建议 SSL/TLS 之前:我没有连接到 Internet 以允许使用根 CA。

在客户端和服务器之间建立安全通道后,我提供一个简单的质询-响应方法是否有效?例如,如果客户端发送一个标识符(GUID?),服务器会将此值与已知客户端进行比较并接受或拒绝它,然后在相反的方向重复相同的操作。由于数据已加密且加密是基于 session 的,因此这是一种有效的验证方法吗?

我明白这些标识符的存储是弱点。

最佳答案

Before anyone suggests SSL/TLS: I'm not connected to the Internet to allow the use of a root CA.

在您重新发明轮子之前:您不需要带有 SSL/TLS 的根 CA,但可以简单地使用带有 key pinning 的自签名证书.通常只使用公共(public)根 CA,因为它可以更好地扩展以仅提供少数公共(public) CA,而不是将所有自签名证书(或其指纹)交换给通信的所有对等方。

除此之外,您的提议似乎假设已经建立了一个安全连接来检查凭据,然后您将使用这些凭据来验证连接是否确实安全。或者简而言之:要提供安全连接,您首先需要安全连接。

关于c# - 没有 SSL 的服务器和客户端安全识别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27982474/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com