报文加解密原理_SSL的加密原理

预备知识

我们在了解ssl的加密原理之前,首先要系统地了解密码学的基本原理,以及密码学的发展历程,产生的相应的机制。之后才能彻底弄懂为什么ssl是网络安全中最为重要的一种应用。

密码学的原则

密码学的漫长历史可以追溯到古罗马的凯撒时代,本文这里不做赘述,密码技术的本质其实就是使得发送方可以伪装数据,可以使入侵者不会从截取到的信息获得任何有帮助的信息,接收方可以从伪装的数据中,获得初始的数据。

从上述的本质,密码学发展到今日,衍生了很多种名词和机制,例如:密钥,公钥,对称密钥系统,公开密钥系统,加密算法,解密算法,这些网络安全机制层出不穷。我们下面来了解一下:

对称密钥密码体制

密码算法最基本的思想雏形就是使用明文的一种形式去取代另一种形式。参与加密通信的双方,都需要共同分享者加密算法的秘密(用于加密和解密的对称密钥)。这是最简单的一种机制,但问题在于,这个共享的秘密需要在外人不知道的情况下,通信双方事先知道。这样在网络中,无疑增加了一种负担,所以我们需要用更新颖的机制来解决这种问题。

公开密钥密码体制

其实相当简单,发送方使用加密方公开的公钥去加密一种明文,另一方面,接收方有着属于自己的私钥,这个私钥外人其实并不知道。(只有发送方知道)接收方通过自己的密钥,可以解析出被公钥加密过的明文。

报文完整性

报文完整性其实是一个同等重要的话题,也称报文鉴别,主要有有着两个目的,确认报文是否由真正的发送方发出,报文是否中途遭到篡改。

密码散列函数

密码散列函数就是找到两个任意不同的报文x和y,使得H(x) = H(y),是不可能成立的函数 H 存在。我们通常使用MD5散列算法或者SHA-1作为散列函数。

报文鉴别码(MAC)

在通信双方发送报文,确认是否建立的健康安全的通信的过程中,发送方将源来的报文m加上一串比特字符s,使用散列函数进行封装H(m + s),传给接收方,接受方通过解析散列函数,得到m和s,依次来确认报文的正确,和通信的安全,无人篡改。其中H(m + s),我们称之为报文鉴别码(MAC)。

SSL原理

密码技术使可以加强TCP运输层的安全性的,我们需要运用到的应用就是我们本文所说的ssl技术。TCP的这一个强化版本,我们称之为安全套接字。我们在TCP的三次握手之上,在进行ssl的握手,从而建立完整的加密流程机制。

其实ssl加密之后的TCP传输,我们可以大致看作为握手过程、密钥导出以及数据传输三个阶段,特别注意的是在数据传输的阶段,ssl将数据流分割为记录,每个记录附加一个MAC用于完整性检查,然后用密钥加密该“记录+MAC”。

SSL的握手

SSL的握手机制非常关键,相当于整个ssl的安全体系的核心:发送端发送其支持的密码算法的列表,连同一个客户的不重数。

从发来的列表中,接受端选择一个对称算法,一种公钥算法和一种MAC算法。将其的选择以及连同的不重数和证书一起返回。

发送端验证该证书,提取公钥,生成一个前主密钥(PMS),用服务器的公钥为其加密,将加密的PMS返回给接受端。

使用相同的密钥导出函数,接收端和发送各自独立地计算出主密钥(通过PMS和不重数),将主密钥切片生成两个密码(对称密码)和两个MAC密钥。

发送端发送所有握手报文的一个MAC

接收端发送所有握手报文的一个MAC(防止握手建立的报文被篡改)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值