我打算写一个加密的信使,所以我在网上搜索。但是,大多数代码和教程都没有讨论这个想法:
对于密钥交换,我们有以下步骤:
1.当Alice安装程序时,Alice(客户端)有bob的证书(服务器)
Alice生成公钥和私钥
2. Alice使用存储在证书中的Bob公钥加密她的公钥,然后将其发送到服务器(Bob)。
3. Bob接收加密的客户端密钥,使用他的私钥对其进行解密,然后启动消息传递会话。
问题是:此解决方案的效果如何,是否足以抵御攻击?
答案 0 :(得分:0)
您可以使用Transport Layer Security protocol TLS,而不是发明自己的证书交换方案。 TLS通信以握手开始。
来自here的图片和TLS说明。
在每次握手中都不必发送公钥证书,因为它们可能在另一方面已知。公钥证书通常也可以从颁发证书颁发机构下载。