Skip to content

Latest commit

 

History

History
180 lines (142 loc) · 10.4 KB

File metadata and controls

180 lines (142 loc) · 10.4 KB
  • 什么是网络安全?

    • 入侵者可能采取的行动
      • 窃听
        • 嗅探、截获分组,比如利用 Wireshake 就可以做到。
      • 修改、插入或删除报文内容
        • 截获分组并修改分组内容再转发。
      • 身份冒充
        • 劫持会话,冒充通信者双方任意一方的身份。
    • 安全通信需要具备的特性
      • 1、机密性
        • 通信内容被加密,只有发送方和接收方能理解该内容,那么即使被窃听也不要紧。
      • 2、报文完整性
        • 如果通信内容被篡改,那么接收方可以觉察到这种篡改。
      • 3、端点鉴别
        • 发送方可以确认接收方就是他想通信的那个人;接收方能确认接收到的消息的确来自发送方所声称的身份。
      • 4、运行安全性
        • 检查可疑活动分组,排除被病毒感染和分组攻击的可能性。
  • 密码学

    • 对称加密

      • 中心思想 : 发送双方需要先协商共享的密钥。

      • 术语

        • 密文 : 加密后的明文
        • 明文 : 未经加密的通信内容
        • 加密算法 : 使用密钥加密的具体逻辑
        • 密钥 : 明文到密文的映射关系
        • 对称密钥系统 : 发送方和接收方共享相同的密钥
    • 对称加密方法

      • 凯撒密码
      • 单码替代码
      • 多码替代码
      • 块密码
      • 块密码链接
    • 入侵者的攻击方法 : 根据入侵者所拥有的信息进行区分

      • 唯密文攻击 : 入侵者只能截获密文,也不了解明文内容。统计分析词频有助于唯密文攻击。

      • 已知明文攻击 : 入侵者知道(明文,密文)的一些匹配。

      • 选择明文攻击 : 入侵者能够选择某一明文报文并得到对应的密文形式。

    • 非对称加密

      • 中心思想 : 发送双发不用协商用来加密的密钥,所有人都可以获得某个通信实体的公钥,而私钥只由该通信实体保管,不为其他任何人所知,用公钥加密的密文只能由对应的私钥解密,而用私钥来加密的密文只能由对应的公钥解密。

      • 术语

        • 公钥 : 所有人都可以获取的密钥
        • 私钥 : 只由自己保管不能被任何人所获知的密钥
      • RSA 算法

        • Bob 如何生成 RSA 的公钥呢?

          • 1、选择两个大素数 p 和 q
          • 2、计算 n = pqz = (p - 1)(q - 1)
          • 3、选择小于 n 的一个数 e,且使 e 和 z 互质,e 即为公钥。
          • 4、求一个数 d,使得 ed mod z = 1,d 即为私钥
          • 5、公钥 : (n, e),私钥 : (n, d)
        • 公钥加密

          • 必须满足 m < n,则 c = m^e mod n
        • 私钥解密

          • m = c^d mod n
        • 会话密钥

          • 软件实现 DES 比 RSA 快 100 倍,硬件实现 DES 比 RSA 快 100 ~ 10000 倍,因此实际上加密报文都使用对称密钥,具体流程是先使用非对称加密安全分发对称密钥,然后使用对称密钥加密报文。
        • RSA 工作原理

          • 加密后的报文为 c = m^e mod n
          • 即证明 c^d mod n = m
          • 证明过程:
            • c^d mod n

            • = (m^e mod n)^d mod n

            • = m^ed mod n

            • = m^(ed mod z) mod n ,因为我们选择了 ed mod z = 1,所以

            • = m^1 mod n

            • 因为 m < n 所以 c^d mod n = m mod n = m

            • 上面的推导中使用了数论结果:如果 p 和 q 是素数,且有 n = pqz = (p - 1)(q - 1),那么 x^y mod n = x^(y mod z) mod n,在这里 x = m 以及 y = ed

    • 报文完整性鉴别

      • 报文鉴别码 (MAC)
        • 鉴别密钥参与 hash 运算
      • 数字签名
        • 计算 hash
        • 私钥加密 hash,公钥解密 hash
        • 公钥认证 : 需要公钥基础设施 PKI 支持
    • 端点鉴别

      • 双方都共享一个密钥,使用加密不重数来防止重放攻击
      • ⚠️相互鉴别时会遭受中间人攻击 (见习题)。
    • 安全电子邮件 PGP

      • 同时提供机密性,完整性和端点鉴别

      • A 和 B 使用 PGP 涉及的加密过程如下:

        • A 使用摘要算法得到摘要 hash,将 m 和 hash 拼在一起得到 P1 = (m + hash),然后使用 Ks 加密 P1 得到 Ks(P1),接着使用 B 的公钥加密 Ks 得到 Kb+(Ks),然后把两个包拼在一起得到 P2 = Ks(P1) + Kb+(Ks),A 将 P2 传输给 B。

        • B 收到 P2 进行解密操作,首先使用自己的私钥 Kb- 解密得到 Ks,然后用 Ks 解密得到 m + hash,接着 B 执行和 A 相同的摘要算法得到 hash',用两个摘要比较,若相同说明报文没有遭到篡改。

    • SSL

      • 建立 SSL 连接如下所示:

        • TCP 三次握手
        • 客户端发送不重数,支持的加密套件,Session ID
        • 服务器发送不重数,选择的加密套件,包含公钥的证书
        • 客户端发送使用公钥加密的 PMS
        • 现在客户端和服务器共享了 PMS,分别独立地使用该 PMS 导出 4 个密钥,Eb, Mb, Ea, Ma
        • 接下来使用这 4 个密钥进行数据的传输
      • SSL 记录项格式如下

        类型 版本 长度 数据 MAC
        • 其中 数据 + MAC 使用 Eb 加密,MAC 使用了 Mb 参与了 MAC 的计算
      • ⚠️ 为了防止 SSL 记录项数据流的顺序性和完整性,客户端和服务器端分别维护了 SSL 的发送序号和接收序号,在计算 MAC 时使用了序号参与了 MAC 的计算。

    • IPsec

      • SA (安全关联):

        • SA 在逻辑上是单向的,如果既要让 R1 -> R2 使用 IPsec 也要反过来,那么需要创建两个 SA。
        • 某台 IPsec 使能的路由中的 SA 包含下列状态信息。
          • SA 的 32 比特标识符,成为安全参数索引 (SPI)
          • SA 初始接口 (IP 地址) 和目的接口 (IP 地址)
          • 将使用的加密类型(例如,具有 CBC 的 3DES)
          • 加密密钥
          • 完整性检查的类型(例如,具有 MD5 的 HMAC)
          • 鉴别密钥
      • IPsec 数据报格式如下图所示:

        • 在初始 IPv4 数据报后面附上 “ESP 尾部” 字段。
        • 使用 SA 规定的密钥和算法加密该结果。
        • 在上面👆的加密量前添加一个 "ESP 首部" 字段。得到的包称为 "enchilada"
        • 使用 SA 规定的摘要算法和密钥生成覆盖整个 enchilada 的鉴别 MAC
        • 将该 MAC 附加到 enchilada 的后面形成载荷。
        • 最后,生成一个新的 IPv4 首部字段,该新首部附加到载荷之前。
        • 在新 IPv4 首部中上层协议被填写为 50,表示这是一个需要被当作 IPsec 处理的 IP 数据报。
      • SAD 安全关联数据库,总部网关路由器中存储了所有 SA 的状态信息。

      • SPD 安全策略库,指示了哪些 IP 数据报需要使用 SA 加密 (该策略一般是源和目的 IP 地址以及上层协议的函数),以及使用哪个 SA 加密。

      • IKE 大型 VPN 在地理上分散的部署要求一个自动的机制来生成 SA。IPsec 使用 IKE 协议来进行这项工作。

        • 首先使用 Diffie-Hellman 在路由器之间生成一个双向的 IKE SA。该 IKE SA 在这两台路由器之间提供了一个鉴别的和加密的信道。
        • 使用第一步的 IKE SA 信道,两侧协商 IPsec SA 算法和密钥。然后在两侧生成每个方向的一个 SA。
        • 因为在第二个阶段不涉及任何公钥密码,因此 IKE 能够以相对低的计算成本在两个 IPsec 实体间生成大量 SA。
  • Diffie-Hellman 密钥协商

    • 步骤和如何遭受中间人攻击,见习题
  • 防火墙

    • 防火墙分为三类 : 传统分组过滤器,状态分组过滤器,应用程序网关

    • 传统分组过滤器 : 基于下列因素决定数据报允许通过还是丢弃。

      • IP 源或目的地址
      • 在 IP 数据报中的协议类型字段 : TCP、UDP、ICMP、OSPF 等
      • TCP 或 UDP 的源或目的端口。
      • TCP 标志比特: SYN、ACK 等。
      • ICMP 报文类型。
      • 数据报离开和进入网络的不同规则
      • 对不同路由器接口的不同规则
      • 如下图所示就是一张传统分组过滤器的策略表
    • 状态分组过滤器 : 跟踪多条 TCP

      • 上面的传统分组过滤器允许来自外部的任何源端口为 80 的 ACK 为 1 的分组,但是这样的分组能够被试图用异常分组来绘制内部系统结构,执行 Dos 攻击。而状态分组过滤器通过跟踪 TCP 连接来解决这个问题。
      • 状态分组过滤器通过观察三次握手来观察一条新连接的开始
      • 状态分组过滤器当看到 FIN 分组时观察到连接的结束
      • 如下图所示是一个状态分组过滤器的策略表
    • 应用程序网关 : 深度检测分组中的应用层字段。

      • 必须搭配网关来使用,先设置网关策略以使得只允许来自应用程序网关的流量外出,这样迫使所有内部流量都必须先经过应用程序网关,也就使得所有外出流量都会被应用程序网关检查。
      • 如下图所示是应用程序网关的工作方式