跳转至

网络安全2

网络层机密性

网络层机密性(network layer confidentiality)是指在网络层面对两个网络设备(如两台计算机或者两个路由器)之间传输的数据进行加密, 以保护数据的隐私. 发送方设备会加密网络数据包的有效载荷(payload), 这个有效载荷可以是任何上层协议的数据, 例如, TCP/UDP段, ICMP报文, OSPF报文等. 一旦加密, 从一个设备发送到另一个设备的所有实际数据将被隐藏, 这意味着窃听者无法看到传输的具体内容, 例如, 网页, 电子邮件等. 这就像是一个毛毯, 无差别地覆盖了两个设备之间的所有通信.

VPN

虚拟专用网络(VPN)是一种在公共互联网上建立安全, 私密链接, 以低成本实现私有网络功能的技术. 出于安全考虑, 许多机构(如公司, 学校)希望拥有自己的私有网络, 以确保内部通信不被外部窃听. 建立一个真正的, 物理隔离的私有网络成本非常搞, 这需要购买和维护独立路由器, 租用高昂的专线链路, 并建立独立的DNS等基础设施. VPN允许机构的内部流量(例如, 不同办公室之间的通信)直接通过公共互联网传输, 而不是依赖昂贵的物理专线. 为了在不安全的公共互联网上保证私密性, 所有内部数据在进入公共互联网之前都会被加密. 这样, 即使数据被截获, 窃听者也无法读取其内容.

IPsec

四大功能

  • 数据完整性(data integrity): 确保数据在传输过程中没有被篡改或者破坏. 就像给信件加上一个防伪封条, 如果封条破了, 就知道是被动过了
  • 源身份验证(origin authentication): 验证数据包确实是由声称的对方发出的, 而不是由攻击者冒充的, 相当于检查寄信人的身份证
  • 防重放攻击(replay attack prevention): 防止攻击者截获合法的数据包之后, 再次重复发送以达到非法目的(如重复登录, 重复交易等). IPsec会给每个数据包一个唯一的序列号, 确保每个包只被接受一次
  • 机密性(confidentiality): 通过加密数据包的内容, 确保即使数据被窃听, 窃听者也无法读懂其中的信息. 相当于用密码写信

两种协议

IPsec使用两种不同的协议实现了上述功能.

  • AH (Authentication Header): 这个协议主要提供数据完整性和源身份验证, 以及防重放攻击. 注意, AH不提供机密性, 也就是说, 它不加密数据内容, 它只保证数据没被改过, 且来源可靠.
  • ESP (Encapsulation Security Protocol): 这个协议功能更加强大, 是目前最常用的. 它可以单独或者组合提供机密性, 数据完整性, 源身份验证和重放攻击. 因为它能够加密数据(提供机密性), 所以比AH更加全面.

两种工作模式

IPsec有两种主要的工作模式: 传输模式(transport mode)和隧道模式(tunnel mode).

IPsec 传输模式主要用于保护两个终端设备之间通信的内容安全. 在此模式下, 加密由通信的终端电脑直接负责, 它仅对数据包的数据载荷(Payload)部分进行加密, 而包含原始收发地址的IP头部则保持不变. 因此, 网络上的中间人虽然无法解读传输的数据, 但依然可以清楚地看到是哪两个IP地址在进行通信. 这好比将一封用密码写就的信件放入一个地址透明的普通信封中, 信的内容虽被保护, 但通信行为本身是公开的.

IPsec 隧道模式则通过构建一个安全的"虚拟隧道"来同时保护内容和路径隐私. 它将整个原始IP数据包(包括其头部和数据)完整地加密封装, 并为其附加一个全新的, 用于公共网络路由的IP头部. 这种方式彻底隐藏了原始的通信双方, 网络监控者只能看到两个隧道端点(如VPN网关)在通信. 这相当于将一份完整的原始信件(连同其信封)锁入一个不透明的保险箱, 再为这个保险箱贴上全新的快递单据邮寄, 从而实现了对通信行为的全面隐藏.

安全关联

安全关联 (SA) 是 IPsec 通信的基石, 它本质上是两个设备在传输数据前所达成的一份单向安全合同. 这份"合同"详细规定了加密数据所需的所有规则, 例如使用哪种加密算法和密钥. 因为 SA 是单向的, 所以任何一次完整的双向通信都必须建立两个独立的安全关联, 一个用于发送数据, 另一个用于接收数据, 以此确保两个方向的通信都得到安全保障.