Chinaunix首页 | 论坛 | 博客
  • 博客访问: 331067
  • 博文数量: 106
  • 博客积分: 1115
  • 博客等级: 少尉
  • 技术积分: 806
  • 用 户 组: 普通用户
  • 注册时间: 2006-08-04 08:06
文章分类

全部博文(106)

文章存档

2015年(4)

2014年(48)

2013年(15)

2012年(38)

2011年(1)

我的朋友

分类: 网络与安全

2012-05-26 05:31:49

加密是有时效性的,通常楼主说的这种情况不需要考虑防止别人从内存中把密钥读出来,这种密钥一般是一个session(会话,或者客户端和服务端每次建立连接)换一次,也就是所谓的session key,等到别人截获到session key的时候,就已经失效了。

当 然,这不是足够安全的做法。足够安全的做法就是服务器端产生session key以后,是用PKI的方式来加密sessioin key的,PKI属于非对称加密,非常可靠但效率比较低,session key则是对称加密,效率比较高但安全性较差。用PKI的方式加密session key进行传输,就结合了这两者的优点,既可以保证session key的安全传输到通讯的另一端,然后正常的通讯又都是采用session key进行加解密这种对称的方式。

比如Server有一对密 钥:PublicServer(公钥)/PrivateServer(私钥),Client也有一对密钥PublicClient(公钥) /PrivateClient(私钥),同时假定Server所产生的对称密钥是sessionKey,那么sessionKey的传输到Client的 过程就是这样的:
1. 首先用PrivateServer加密sessionKey
2. 用PublicClient加密步骤1的结果
3. 发送
4. Client接收到后,首先用PrivateClient解密,得到步骤1的结果
5. 再用PublicServer解密步骤4得到的结果,就会得到sessionKey
-------------
6. 然后Client和Server就开始用sessionKey来进行对称方式的加解密了。
在传输的过程中,从理论上而言,几乎没有被破解的可能性。事实上网上银行的数据传输安全机制就是这样的。

当然安全是没有绝对的,一切都是相对的。
阅读(876) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~