在创建客户端服务器连接时,在客户端使用客户端证书有什么好处?“AuthenticateAsClientAsync”。
1.只有我们能确定这个客户是已知客户吗?
1.当服务器将数据发送回客户端时,它是否增加了额外的加密?
1.不需要客户端证书的缺点是什么
我找不到关于这个的细节
关于这个项目的更多细节:这是我第一次在我自己的SslStream上工作。我从来没有直接处理过它。我有一个客户端,通过套接字连接连接和发送更新。我已经创建了一个以几种方式工作的POC。服务器总是提供一个安全证书
sslStream.AuthenticateAsServer(x509Certificate, EnableCertificate, SslProtocols.Tls12, false);
字符串
但我已经使它的工作是不需要客户端提出一个有效的证书。这一切都工作。
1条答案
按热度按时间wfveoks01#
只有我们能确定这个客户是已知客户吗?
客户端证书是身份验证的一种形式。还有其他方式,如密码。客户端证书的优点是它们更强大:秘密永远不会被交换。相反,拥有秘密的证据(私钥)是通过对服务器定义的数据进行签名来完成的。此外,即使在TLS级别,它也能抵抗中间人,即,如果存在某个TLS拦截公司代理或类似的监视业务的话,则将不再成功。
当服务器将数据发送回客户端时,它是否增加了额外的加密?
不,这只是关于身份验证。TLS提供的加密应该已经足够了。
不需要客户端证书的缺点是什么
这取决于使用的是什么。如果需要强身份验证,但只做了弱身份验证(简单密码),那么这显然是一个缺点。
使用客户端证书也有其缺点。它们需要管理,可能需要不时更换,需要以安全的方式交付给客户端。这种管理可能会增加复杂性。
服务器始终提供一个证书,
正确的服务器身份验证是必不可少的,以确保加密不是由攻击者完成的,而是由预期的服务器完成的。客户端身份验证(无论是证书还是密码)是一个不同的用例:需要找出客户端是谁,以便在应用程序中应用正确的访问控制。