活动介绍
file-type

深入探讨Wpa_supplicant与WPA资料

下载需积分: 9 | 1.71MB | 更新于2025-03-03 | 116 浏览量 | 0 下载量 举报 收藏
download 立即下载
标题和描述中提到了“wpa_supplicant”,这是一个广泛使用于Linux和UNIX系统中,用于管理无线网络连接的开源软件。Wpa_supplicant支持多种安全协议,包括WEP、WPA和WPA2,并且可以与各种认证服务器如RADIUS进行通讯。它在无线网络安全中扮演了重要角色,提供了对于802.1X、PSK以及EAP认证方法的支持。 关于wpa_supplicant,有以下几个重要的知识点需要详细了解: 1. WPA和WPA2:WPA全称是Wi-Fi Protected Access,而WPA2是其升级版,两者都是为了提高无线网络的安全性。WPA通过TKIP(Temporal Key Integrity Protocol)增强了数据加密,并改进了认证过程。WPA2则进一步加强了安全性,使用了更强大的加密方法AES(Advanced Encryption Standard)。WPA2通常被认为是比WPA更安全的选择。 2. 802.1X认证:这是一种网络认证框架,用于为无线网络提供更为安全的接入控制。它允许客户端与认证服务器进行交互,使用多种认证方法确保只有授权的用户能够连接到网络。802.1X认证通常与EAP(Extensible Authentication Protocol)配合使用。 3. EAP认证方法:EAP是一种协议,允许无线网络设备与认证服务器之间进行更复杂的认证交互。EAP有多种不同的类型,比如EAP-TLS、EAP-TTLS、PEAP等,每种类型有其特定的安全特性和应用场景。 4. PSK(Pre-Shared Key):这是一种简单的认证方式,用户只需要知道预共享的密钥即可进行网络认证。这种方式适合家庭或者小型办公网络使用,因为它不需要复杂的认证服务器配置。 5. wpa_supplicant的配置:wpa_supplicant通过配置文件来指定它应该如何操作。配置文件中定义了网络的具体参数,如SSID(网络名称)、认证类型、加密方式以及PSK密钥等。 6. wpa_supplicant的命令行操作:除了配置文件方式外,wpa_supplicant也可以通过命令行进行操作。常见的命令包括启动和停止wpa_supplicant服务、扫描可用网络、请求新的认证等。 7. wpa_supplicant的界面:wpa_supplicant可以通过命令行界面与用户交互,也可以通过图形界面如NetworkManager来与用户进行交互。NetworkManager可以看作是wpa_supplicant的前端,简化了网络连接的管理和配置过程。 8. 安全性和隐私:由于wpa_supplicant涉及敏感数据的处理(如密码、密钥等),它在设计时就考虑了安全性。因此,在使用wpa_supplicant时需要注意保护好配置文件的安全,防止未授权访问。 9. 跨平台支持:虽然wpa_supplicant主要针对Linux和UNIX系统,但也有其他平台的实现,如Windows上的第三方工具。这使得wpa_supplicant能够在多种操作系统上提供无线网络的安全管理。 10. 与无线网卡的兼容性:并不是所有的无线网卡都支持wpa_supplicant。因此,在安装或升级wpa_supplicant之前,需要确认无线网卡是否兼容,以及是否需要安装额外的驱动程序或固件。 通过以上知识点,我们可以看出wpa_supplicant是一个在无线网络安全配置中非常重要的软件。它为各种认证方式和加密协议提供了强大的支持,同时也要求管理员和用户对配置和安全性有一定了解,以确保无线网络的安全性。

相关推荐

filetype

diff --git a/wpa_supplicant-2.9_standard/wpa_supplicant/events.c b/wpa_supplicant-2.9_standard/wpa_supplicant/events.c index a075284..4351d8a 100644 --- a/wpa_supplicant-2.9_standard/wpa_supplicant/events.c +++ b/wpa_supplicant-2.9_standard/wpa_supplicant/events.c @@ -4057,13 +4057,29 @@ static void wpa_supplicant_event_assoc(struct wpa_supplicant *wpa_s, wpa_s, WLAN_REASON_DEAUTH_LEAVING); return; } -#ifdef CONFIG_MLD_PATCH - if (wpa_drv_get_mlo_info(wpa_s) < 0) { - wpa_dbg(wpa_s, MSG_ERROR, "Failed to get MLO connection info"); - wpa_supplicant_deauthenticate(wpa_s, - WLAN_REASON_DEAUTH_LEAVING); - return; - } + +#ifdef CONFIG_SAE +#ifdef CONFIG_DRIVER_NL80211_SPRD + /* process SAE PMK & PMKID */ + if (wpa_key_mgmt_sae(wpa_s->key_mgmt) && + wpa_s->sme.sae_pmksa_caching == 0) { + const u8 *pmk = wpa_get_vendor_ie(data->assoc_info.resp_ies, + data->assoc_info.resp_ies_len, SPRD_SAE_CNN_RES); + if (!pmk) { + wpa_dbg(wpa_s, MSG_ERROR, "SPRD SAE fatal error: no PMK found"); + wpa_supplicant_deauthenticate( + wpa_s, WLAN_REASON_DEAUTH_LEAVING); + return; + } + wpa_hexdump(MSG_INFO, "SPRD SAE auth results-1:", pmk, 2 + 4 + PMK_LEN + PMKID_LEN); + pmk += 6; /* skip vendor IE header: 1 id + 1 len + 4 OUI */ + wpa_hexdump(MSG_INFO, "SPRD SAE auth results-2:", pmk, PMK_LEN); + wpa_hexdump(MSG_INFO, "SPRD SAE auth results-3:", pmk + PMK_LEN, PMKID_LEN); + wpa_printf(MSG_INFO, "SPRD SAE completed - SET PMK for 4-way handshake"); + /* 32 bytes PMK + 16 bytes PMKID from CP2 SAE auth */ + wpa_sm_set_pmk(wpa_s->wpa, pmk, PMK_LEN, pmk + PMK_LEN, bssid); + } +#endif #endif if (data && wpa_supplicant_event_associnfo(wpa_s, data) < 0) return;

filetype

patch -p1 < /home/lhl/ga-sig/sig/device/soc/spreadtrum/patches/third_party/wpa_supplicant/0001_wpa_supplicant_add-sae-support.patch patching file wpa_supplicant-2.9_standard/src/ap/ap_config.h Hunk #1 succeeded at 252 (offset 6 lines). patching file wpa_supplicant-2.9_standard/src/ap/beacon.c Hunk #1 succeeded at 2661 with fuzz 2 (offset 808 lines). patching file wpa_supplicant-2.9_standard/src/ap/drv_callbacks.c Hunk #1 succeeded at 60 with fuzz 1 (offset 5 lines). Hunk #2 succeeded at 558 (offset 181 lines). Hunk #3 succeeded at 899 (offset 198 lines). Hunk #4 succeeded at 962 (offset 203 lines). patching file wpa_supplicant-2.9_standard/src/ap/ieee802_11.c Hunk #2 succeeded at 542 (offset 60 lines). patching file wpa_supplicant-2.9_standard/src/ap/ieee802_11.h Hunk #1 succeeded at 155 (offset 30 lines). patching file wpa_supplicant-2.9_standard/src/common/ieee802_11_defs.h Hunk #1 succeeded at 1434 (offset 61 lines). patching file wpa_supplicant-2.9_standard/src/common/sae.h patching file wpa_supplicant-2.9_standard/src/common/wpa_common.c Hunk #1 succeeded at 1738 (offset 245 lines). patching file wpa_supplicant-2.9_standard/src/common/wpa_common.h Hunk #1 succeeded at 487 with fuzz 2 (offset 27 lines). patching file wpa_supplicant-2.9_standard/src/crypto/tls_openssl.c Hunk #1 succeeded at 2724 (offset 131 lines). patching file wpa_supplicant-2.9_standard/src/drivers/driver.h Hunk #1 succeeded at 4388 (offset 441 lines). Hunk #2 succeeded at 4399 (offset 441 lines). Hunk #3 succeeded at 4712 (offset 453 lines). patching file wpa_supplicant-2.9_standard/src/drivers/driver_nl80211.c Hunk #1 succeeded at 12134 (offset 1170 lines). Hunk #2 succeeded at 14326 (offset 1484 lines). Hunk #3 succeeded at 14368 with fuzz 2 (offset 1489 lines). patching file wpa_supplicant-2.9_standard/src/drivers/driver_nl80211.h Hunk #1 succeeded at 374 with fuzz 2 (offset 41 lines). patching file wpa_supplicant-2.9_standard/src/drivers/driver_nl80211_capa.c Hunk #1 succeeded at 260 (offset -1 lines). Hunk #2 succeeded at 275 (offset -1 lines). Hunk #3 succeeded at 284 (offset -1 lines). patching file wpa_supplicant-2.9_standard/wpa_supplicant/driver_i.h Hunk #1 succeeded at 787 (offset -14 lines). patching file wpa_supplicant-2.9_standard/wpa_supplicant/events.c patch: **** malformed patch at line 603: diff --git a/wpa_supplicant-2.9_standard/wpa_supplicant/p2p_supplicant.c b/wpa_supplicant-2.9_standard/wpa_supplicant/p2p_supplicant.c