首页 新闻 会员 周边 捐助

还是关于WCF安全上的问题

0
[已解决问题] 解决于 2017-01-04 19:01

现在我的方式是,服务器有一个X509证书,使用Username方式对客户端认证,基本功能也实现了,但是心中一直有疑惑

下面这段话是网上看的资料

在跨Windows域分布的系统中,用户名密码认证还是比较常用的,要实现用户名密码认证,就必须需要X509证书,为什么呢?因为我们需要X509证书这种非对称密钥技术来实现WCF在Message传递过程中的加密和解密,要不然用户名和密码就得在网络上明文传递!详细说明就是客户端把用户名和密码用公钥加密后传递给服务器端,服务器端再用自己的私钥来解密,然后传递给相应的验证程序来实现身份验证。

这里说的很直白,我基本也是这么理解的,但是问题是,客户端使用公钥加密后发往服务器使用私钥解密,可是服务器执行完毕后,返回给客户端的数据呢,这些数据又是通过什么做的加密解密?客户端并没有证书,私钥应该只存在于服务器上吧?

MSky的主页 MSky | 菜鸟二级 | 园豆:436
提问于:2017-01-04 10:31
< >
分享
最佳答案
0

 

客户端和服务端先协商一个 KEY,客户端和服务端各保存一份,之后的消息都通过这个 KEY 加解密。而服务器的 X509 证书则是用来在协商阶段保证 KEY 在传输阶段不被泄露。

奖励园豆:5
Launcher | 高人七级 |园豆:45050 | 2017-01-04 16:56

 明白了!

MSky | 园豆:436 (菜鸟二级) | 2017-01-04 19:01
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册