概述

整体结构

网络安全

密码体制

对称密钥密码体制

对称密钥就是指加密和解密使用的密钥是同一个
比较有名的加密算法就是DESAES

DES 数据加密标准

步骤

  1. 对明文分组,每一组都为64位的二进制数据
  2. 对每一个分组的数据进行加密
  3. 拼接所有分组,得到整个密文

特点

  • 保密性取决于对密钥的保密性,因为算法是公开的
  • 密钥的长度为64位,其中实际的密钥长度只有55位,8位用于奇偶校验
  • 56位的DES已经被认为是不安全的:经过这么多年的相关研究与计算机的发展,破译DES已不是难事

三重DES

把一个64位明文用一个密钥加密,再使用另一个密钥解密,然后再使用第一个密钥加密,得到最终的密文。即:

AES 高级加密标准

DES的取代方案,其使用的加密算法为Rijindael算法。

特点

  • 一对一
    再有第三方就不保密了,所以只能一对一。
  • 双向通信
    由于双方使用同一个密钥加密和解密,所以数据可以双向安全传输。
  • 密钥的传输和分配存在难度
    1. 事先约定密钥:
      会给密钥的管理和更换带来极大的不便
    2. 使用信使传送密钥:
      不适用于高度自动化的计算机网络
    3. 使用密钥分配中心KPC
      使网络成本增加
  • 仍旧在使用
    因为公钥密码体制也存在一定的缺陷,并不能完全替代对称密钥密码体制

DESAES对比总结

密码体制 传输方向 端点数量 缺点
对称密钥 双向 一对一 密钥分配存在困难
公钥 单向 多对一 算法开销大

公钥密码体制

产生原因:

  1. 对称密钥在传输和分配上的问题
  2. 数字签名的需求

密钥组成

假设使用的的公钥为操作为 “解密” 的计算操作,操作为 “加密” 的计算操作

公钥 PK:

  • 向公众公开,用于对数据加密

  • 无法用于解密使用同一个公钥加密的数据

  • 无法逆向求出对应私钥

私钥 SK:

  • 自己保留,用于对数据进行解密

  • 可以用于解密使用公钥加密过的数据:

特点

  • 多对一
    公钥具有公开的性质,私钥只有自己才保有,所以其他用户都可以使用公钥加密数据并传输。
  • 单向保密通信
    因为如果反过来,在发送给别人时,使用私钥加密,则所有知道公钥的都可以解密该数据,则不具有保密性。所以只有“别人”向“自己”发时才具有保密性。
  • 开销大
    因为要求计算出的私钥和公钥满足上面说过的特性。

数字签名

数字签名在网络中的作用,就好比盖章、亲笔签名在实际生活中的作用,都是用于确保和证明消息的真实性

流程

  1. 发送方是用自己的私钥对报文进行(私钥解密时的计算操作)运算加密,得到密文
  2. 接受方使用的公钥对密文进行(公钥加密时的计算操作)运算解密,得到原报文

特点

  1. 报文鉴别:其他人无法伪造报文
    只有发送方有自己的私钥
  2. 报文完整性:可以确保收到的报文未被篡改
    接收方在收到加密后的报文后进行解密,并对报文内容的可读性进行判断,如果传输时的密文被篡改,则解密后无法得到具有可读性的报文,即解密后得到乱码
  3. 不可抵赖性:发送方不可否认对报文的签名
    对于接收方来说,可以拿到密文和发送方的公钥,可将这二者交由第三方进行公证
    由于第1、2两点性质、以及公钥性质的存在,又且仅有发送方的报文能被正常解密,就连接收方自己都无法伪造(公钥无法解密被公钥自己加密的数据)

鉴别

鉴别,是指对通信的对象、通信的内容进行确认。
相似的概念:
授权:确认过程是否被允许
加密:通过加密运算,确保数据安全

报文鉴别

对通信的消息内容进行确认,常用的方法就是密码散列函数

密码散列函数

  1. 长度固定,且较短

  2. 单向函数,是一种多对一的映射:
    即对于函数的计算结果,存在多个满足

MD5

MD:Message Digest,报文摘要

流程

  1. 求余,并追加在报文之后
  2. 在报文和余数之间填充()一个1和若干个0),让最终的长度为512的整数倍
  3. 追加和填充之后的数据在进行复杂的分块运算

特点

  • 结果的每一位和原来数据的每一位都有关
  • 该算法已经存在破解的方法

SHA

MD5类似,但长度为160位,比MD5128多了25%

特点

  • MD5更安全
  • 计算更慢
  • 相关的版本有多个
    SHA-1:已被证明安全性未达到设计标准,逐渐被后面两个版本取代
    SHA-2
    SHA-3[W-SHA3]

    MD5SHA对比总结

散列算法 散列值长度 安全性 计算效率
MD5 128 偏低 较高
SHA 160 较高 较低

密钥分配

当今的网络环境中,密钥需要频繁更换以保证可靠性。所以密钥的分配是密钥管理中最大的问题。

对称密钥的分配

密钥分配中心 KDC

特点

  • 用户需要在KDC进行登记,登记时安装用于和KDC通信的主密钥
  • KDC中保存了用于KDC和主机之间通信的主密钥,用于KDC与主机之间加密通信
  • KDC提供的用于真正会话双方通信的密钥具有临时性(仅可以使用一次)

流程

  1. 在A和B双方通信前,发送方A先和KDC通信,以加密的方式取得A、B通信的密钥
  2. 再将发送给B
  3. A和B再通过进行通信

Kerberos协议

Kerberos即使鉴别协议,也是KDC

特点

KDC拆为ASTGS两部分:

  • AS负责产生TGS通信的加密密钥
  • TGS负责产生和目标主机会话的密钥

其他参考

百度百科:Kerberos

公钥的分配

CA:认证中心
CA分配的证书用于认证某个公钥是否为某个实体所拥有的(通过向CA查询)

安全协议

网络层

IPsec协议族

工作方式:

  1. 隧道式:在原始IP数据报前后添加若干控制信息,形成新的IP数据报
  2. 传输式:在原始IP数据报的报文段的前后添加若干控制信息,形成新的IP数据报

运输层

SSLTLS

TLSSSL的改进版,也有用SSL表示SSL/TLS

运输层级

  • 在不使用SSL协议时,应用层通过TCP套接字来使用TCP的服务
  • 在使用了SSL协议后,应用层通过SSL套接字来调用SSL子层的服务,SSL子层再通过TCP套接字来使用TCP的服务

安全服务

  1. SSL服务器鉴别
  2. SSL客户端鉴别
  3. SSL会话加密

大致流程

  1. 协商加密算法:浏览器A向服务器B发送自己的SSL版本号和可选的加密算法,B从中选择自己支持的加密算法
  2. 服务器鉴别:B向A发送自己的数字证书,A使用CA发布的公钥进行鉴别
  3. 会话密钥计算:A产生一个用于本次会话加密的随机数作为会话的密钥,并使用B的公钥加密后传输给B
  4. 安全数据传输:双方使用会话密钥进行加密的数据传输