Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1648716
  • 博文数量: 292
  • 博客积分: 10791
  • 博客等级: 上将
  • 技术积分: 2479
  • 用 户 组: 普通用户
  • 注册时间: 2010-03-20 21:06
文章分类

全部博文(292)

文章存档

2011年(31)

2010年(261)

分类: LINUX

2010-06-13 10:04:00

要了解ssh则需要理解现代密码学当中的非对称密钥及认证中心处理机制等基础概念。这里阐述一下我的理解。 
  首先说明一下处理机制: 
  1.非对称密钥就是一对密钥-公钥和私钥。 
  2.私钥由系统中没个人自己持有,一般保存在自己的电脑里或u盘里。 
  3.公钥则在网络上传递,就是可以传递给通信中的对方,也就意味这可以被黑客截获。 
  4.用某个人的私钥加密的数据只有用那个人的公钥解密,同样用公钥加密的数据也只有用私钥解密。 

  这样我们在信息处理中的应用一般的流程可以是这样: 
  假设我们有两个消息方a和b 
  1.a要b发消息,首先得到或者由b传递给a一个b的公钥。 
  2.然后a用b的公钥加密消息然后传递给b。 
  3.b用自己的私钥解密消息得到明文。 

  然而这个流程还是有一定的问题,首先对消息加密本身没有问题,但是会被另一种攻击,就是有一个人在中间截获了消息后,然后自己用b的公钥加密一个消息传给b。 
  所以这样就需要对身份认证的一个机制了,CA认证服务器就是通过给系统内的用户发证书的形式来做身份认证。还要一种认证方式是通过消息摘要。一般流程如下: 
  1.a要给b发消息,先对消息用不可逆加密算法(如md5算法)对消息生成一个消息摘要,对消息摘要用自己的私钥加密。 
  2.然后用b的公钥对消息本身加密。然后连同消息摘要一起发给b。 
  3.b可以用a的公钥解密消息摘要,可以确定这个消息摘要是a的,然后在通过自己的私钥去解密消息,然后通过md5算法生成消息摘要,如果和前面的消息摘要一样,则可证明这个消息是a发的。 

  当然,在真正的现实应用中流程可以会更复杂(要不怎么那么长时间呢,呵呵)。但是基本原理这样。
阅读(3194) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~