SSL 原理

  使用一般的连接方式,是以非加密的形式在网络上传送数据的,这就有可能被非法窃听到,尤其是用于认证的口令信息。为了解决这个安全问题,就必须对传输过程进行加密。

  Secure Socket Layer(SSL)协议最初由Netscape公司发展,现已成为网络用来鉴别网站和网页浏览者身份,以及在浏览器使用者及网页服务器之间进行加密通讯 的全球化标准。由于SSL技术已建立到所有主要的浏览器和WEB服务器程序中,因此,仅需安装数字证书或服务器证书就可以激活服务器功能了。

  RSA公钥加密在计算机产业中被广泛使用在认证和加密。可以从RSA Data Security Inc.获得的RSA公钥加密许可证。公钥加密是使用一对非对称的密码加密或解密的方法。每一对密码由公钥和私钥组成。公钥被广泛发布。私钥是隐密的,不 公开。用公钥加密的数据只能够被私钥解密。反过来,使用私钥加密的数据只能用公钥解密。这个非对称的特性使得公钥加密很有用。

  进行数据通讯的双方,我们把他们定为“甲”和“乙”。使用SSL方式进行数据通讯,一般经过以下步骤:

  第一步、获取公钥。

  乙有一对密钥,一个是公开的,另一个是私有的。甲向乙发送连接请求,乙做出回应,并把他的公钥发送给甲。

甲-->乙:你好。

乙-->甲:你好,这是我的公钥{乙的公钥}。

  第二步、验证身份。

  甲产生一段随机的消息,然后把他发给乙;乙用自己的私钥从随机消息构造一个消息摘要,然后加密它,再把加密后的消息返回给甲。甲接到了这段消息,然后 用乙的公钥来解密。甲使用乙的公钥可以从原消息计算出相同的摘要,通过与解密乙的消息对比,就可以认证乙的身份。一个入侵者应该不知道乙的私钥,因此就不 能正确地加密那段甲要检查的随机消息。

甲-->乙:{随机信息}

乙-->甲:{根据随机信息,用私钥加密得到的信息}

  第三步、交换密码。

  一旦甲认证了乙,他就可以做另外一件事——向乙发送一条只有乙才能解码的消息,消息中包含一个由甲产生的密码。

甲-->乙:{用乙的公钥加密的密码}

  甲向乙发送的密码使用乙的公钥加密了,要解读这个密码的唯一方法就是用乙的私钥来解密上面的消息,除了乙,其他人都无法得到这个密码。甲也知道这个密码,因为这是自己在发送给乙之前产生的。他们都知道这个秘密,所以他们就可以初始化一个对称的密码算法然后开始传输用 该密码加密的消息。

  第四步、传输加密消息。

  甲和乙使用只有他们两者才知道的密码,使用对称密码算法对需要发送信息进行加密。同样,只有他们才能正确解密收到的加密信息,从而实现安全的数据传输。

甲-->乙:{加密消息}

乙-->甲:{加密消息}

作者: huaius   发布时间: 2010-10-09