当我正在阅读有关此内容时,并在尝试使用以下方案时对键进行了混淆。
让我们说:
-A服务器 S1
- 和3个客户, C1,C2,C3
假设C1想要与服务器通信。
服务器如何验证 C1 ?
同样,所有客户都希望与服务器进行通信
所有客户端只有一个公钥可以加密数据吗?
客户如何拥有私钥?
是否由服务器发送?或自我生成?
答案 0 :(得分:1)
I am not very sure whether the OP is asking about SSL in general or the client authentication in SSL. (Note that @zaph is wrong. Client authentication is an optional part of TLS. [2])
In client authentication, client generates its own public and private key pair locally. The client then sends the CSR to a certificate authority to obtain a certificate. This certificate is sent to the server when the server requests it. The server verifies the certificate in the usual way (similar as how browsers verify server certificates). If the client cert is valid, the server can use the identification info present in the cert to determine whether to allow the client or not.
答案 1 :(得分:1)
服务器如何验证C1?
C1将借助服务器证书和基于CA证书中服务器证书中包含的公钥的公钥加密对服务器进行身份验证,该证书直接或间接签署了服务器证书。
所有客户端是否只有一个公钥来加密数据?
不会使用公钥加密数据。相反,每个客户端都在与服务器进行密钥交换,这将产生特定于客户端和服务器之间连接的对称加密(和HMAC)密钥。
有关详细信息,我建议您在security.stackexchange.com上学习How does SSL/TLS work?,这也是更适合提出此类问题的网站。