lec18 low level network attacks
lec18 low level network attacks
ARP spoofing(ARP 欺骗)
DHCP
DHCP 请求的流程 是指一个设备(客户端)如何通过 DHCP(动态主机配置协议) 向 DHCP 服务器 请求并获取网络配置(如 IP 地址、子网掩码、网关等)的过程。整个流程可以分为以下几个步骤:
1. DHCP Discover(发现阶段)
当 DHCP 客户端 启动并连接到网络时,它还没有配置 IP 地址,通常会使用 0.0.0.0 作为源地址。此时,客户端会向网络广播一个 DHCP Discover 消息,寻找可用的 DHCP 服务器。
- 消息内容:DHCP Discover 消息会包含客户端的 MAC 地址(物理地址)以及一些其他信息(如客户端的主机名等),告诉 DHCP 服务器这是一个新的客户端设备,想要获取 IP 配置。
- 广播方式:由于客户端没有 IP 地址,它会发送一个 广播消息(目标地址:255.255.255.255),因为它不知道哪个 DHCP 服务器可用。
2. DHCP Offer(提供阶段)
当 DHCP 服务器 接收到 DHCP Discover 消息后,它会回复一个 DHCP Offer 消息。这个消息会包含以下信息:
- IP 地址:为客户端分配的 IP 地址。
- 子网掩码:适用于客户端的子网掩码。
- 默认网关:客户端的默认网关地址(如果需要)。
- 租约时间:此 IP 地址租用的时间(租约期)。
- 其他配置:例如 DNS 服务器地址、NTP 服务器等。
DHCP Offer 是由所有收到 DHCP Discover 消息的 DHCP 服务器发出的,因此网络中可能会有多个 DHCP Offer 消息。
3. DHCP Request(请求阶段)
客户端收到一个或多个 DHCP Offer 后,会选择其中一个 DHCP Offer(通常选择第一个收到的),并向该 DHCP 服务器发送 DHCP Request 消息。此消息表示客户端接受该服务器提供的 IP 地址及配置,并请求使用该 IP 地址。
- 消息内容:客户端会在 DHCP Request 消息中明确指定它选择的 DHCP 服务器,并附带之前收到的 DHCP Offer 中的 IP 地址。
- 目标地址:此时,客户端已经知道所选 DHCP 服务器的 IP 地址,所以它将 DHCP Request 消息发送给该服务器,而不是广播。
4. DHCP Acknowledgment(确认阶段)
当 DHCP 服务器 收到客户端的 DHCP Request 消息后,它会向客户端发送一个 DHCP Acknowledgment(确认消息)。这个消息包含的内容与 DHCP Offer 消息相同,确认客户端的 IP 地址分配有效。
- 消息内容:此时,DHCP 服务器确认给客户端分配的 IP 地址是有效的,且租约期开始计时。
- 租约期:服务器会开始记录这个 IP 地址的租用信息,并根据租约期对该 IP 地址进行管理。
5. IP 配置生效
一旦客户端收到 DHCP Acknowledgment 消息,它就可以使用该 IP 地址及其他配置(如网关、DNS 服务器等)开始与网络中的其他设备进行通信。
6. DHCP 租约的更新与释放
- 更新租约:在租约期即将到期时,客户端会发送 DHCP Request 消息,向 DHCP 服务器请求续期。服务器收到后会发送 DHCP Acknowledgment 消息,继续延长租约。
- 释放租约:当客户端不再需要该 IP 地址时(例如,断开网络连接),它会向 DHCP 服务器发送 DHCP Release 消息,释放该 IP 地址供其他设备使用。
总结:DHCP 请求流程
- DHCP Discover:客户端广播请求,寻找 DHCP 服务器。
- DHCP Offer:DHCP 服务器响应,提供可用的 IP 地址和配置信息。
- DHCP Request:客户端选择一个 DHCP 服务器的 Offer,发送请求确认。
- DHCP Acknowledgment:DHCP 服务器确认 IP 地址分配,客户端开始使用该 IP 地址。
图解:DHCP 请求流程
客户端 网络 DHCP 服务器
| 广播(Discover) |
|-------------------------------->|
| 返回(Offer) |
|<--------------------------------|
| 请求(Request) |
|-------------------------------->|
| 确认(Acknowledge) |
|<--------------------------------|
| 配置生效,通信开始 |
关键点总结
- DHCP Discover:客户端广播寻找 DHCP 服务器。
- DHCP Offer:DHCP 服务器提供 IP 地址。
- DHCP Request:客户端请求所选的 DHCP 服务器分配的 IP 地址。
- DHCP Acknowledgment:DHCP 服务器确认并分配 IP 地址。
这个过程使得设备能够自动获取网络配置,避免了手动设置 IP 地址的麻烦。
WPA
在 WPA2 (Wi-Fi Protected Access II)协议中,PSK、PTK 和 GTK 是三个关键的密钥概念,它们用于确保无线网络的 加密 和 安全性。它们各自有不同的作用和生成方式,下面是对这三个密钥的详细解释:
1. PSK (Pre-Shared Key) — 预共享密钥
- 定义:PSK 是一种基于密码的 共享密钥,通常用于 WPA2 的 个人模式(WPA2-Personal) 中。它是用户和路由器之间事先共享的密钥,也可以理解为一个 密码,在 Wi-Fi 连接时,用户设备和路由器需要通过 PSK 进行身份验证。
- 作用:PSK 用于在客户端(设备)和 接入点(AP) 之间的身份验证过程中。客户端和 AP 使用相同的 PSK 来相互验证身份。
- 生成方式:通常由用户设置并手动配置,例如在家庭 Wi-Fi 网络中输入的密码。
- 重要性:PSK 直接影响网络的安全性,因为它决定了双方是否可以正确进行加密和解密。如果 PSK 太简单(如短密码或常见密码),就容易被暴力破解,因此应确保 PSK 的复杂性和长度。
示例:
如果你在路由器设置中选择 "WPA2-Personal" 并输入一个密码(如 "wifi_password123"
),那么这个密码就是 PSK。
2. PTK (Pairwise Transient Key) — 配对瞬态密钥
定义:PTK 是在 WPA2 中由客户端和接入点(AP)通过四次握手过程(4-Way Handshake)动态生成的 会话密钥,用于加密后续的客户端与 AP 之间的通信。
作用:PTK 用于保护 点对点通信 的数据加密。它是 WPA2 中生成的主要加密密钥,确保数据在客户端与 AP 之间传输时的机密性。
生成方式:PTK 是基于以下几个因素计算出来的:
- PSK(预共享密钥,通常是用户设置的密码)。
- ANonce(AP 生成的随机数)。
- SNonce(客户端生成的随机数)。
- MAC 地址:客户端和 AP 的物理地址(即 MAC 地址)。
通过这几个参数,PTK 使用一种密钥派生算法(如 HMAC-SHA1)生成会话密钥,保证每次连接的密钥都是独一无二的。
安全性:PTK 是动态生成的,它不会被公开传输,而是通过握手过程在 AP 和客户端之间私下协商,因此能有效防止密钥被窃取。
PTK 的用途:
- 数据加密:PTK 用于加密数据包(例如,AES 加密),保证数据的机密性。
- 数据完整性:PTK 还可以用于计算消息完整性码(MIC),保证数据在传输过程中没有被篡改。
3. GTK (Group Temporal Key) — 组临时密钥
定义:GTK 是一种用于加密 广播和组播通信(例如,发送给所有设备的数据)的密钥。在 WPA2 中,GTK 是由接入点(AP)生成并分发给所有连接的客户端的密钥。
作用:GTK 主要用于保护传输到多个设备的数据流(即广播和组播数据)。例如,当 AP 向所有设备发送一个广播消息时,它会使用 GTK 对数据进行加密,然后客户端使用相同的 GTK 来解密。
生成方式:GTK 由接入点生成,并通过四次握手过程的一部分发送给每个连接的客户端。GTK 具有较长的有效期,通常只会在网络发生更改时(如设备加入或离开网络时)重新生成。
安全性:GTK 仅在同一 Wi-Fi 网络中有效。它不会在无线信道上进行明文传输,而是通过 加密 进行保护。每当连接状态发生变化时(例如,加入或离开网络),接入点会向客户端广播新的 GTK,确保网络安全。
GTK 的用途:
- 加密广播和组播通信:使用 GTK 对广播数据包(如 ARP 请求、DHCP 请求等)进行加密。
- 多设备加密:GTK 使得多个设备之间可以共享同一个加密密钥,用于加密广播流量,而不需要为每个设备单独生成密钥。
PSK、PTK 和 GTK 之间的关系:
- PSK 是预共享的密钥,通常由用户设置,它在认证和密钥派生过程中发挥作用。PSK 是 WPA2-Personal 模式下的基础,所有其他密钥的生成都依赖于它。
- PTK 是由客户端和 AP 在握手过程中协商生成的 会话密钥,它用于加密客户端与 AP 之间的通信,确保点对点数据的安全。
- GTK 是由接入点生成并分发的 组密钥,用于加密广播和组播流量,使得同一网络上的多个设备可以共享同一个密钥来保护组数据。
总结:
密钥类型 | 描述 | 作用 |
---|---|---|
PSK | 预共享密钥,通常是用户设置的密码,用于认证 | 用于身份验证和密钥派生过程,确保 AP 和客户端之间的安全连接 |
PTK | 配对瞬态密钥,动态生成的会话密钥 | 用于加密客户端与 AP 之间的点对点数据传输 |
GTK | 组临时密钥,由 AP 分发给客户端,用于加密广播数据 | 用于加密广播和组播流量,确保同一网络中的多个设备共享密钥 |
这三个密钥是 WPA2 无线安全协议的核心部分,确保了 无线通信的机密性 和 完整性。