WPA3_wpa3好还是wpa2好[通俗易懂]

WPA3_wpa3好还是wpa2好[通俗易懂]1.概述WPA3在WPA2的基础上,增强了个人和企业网络中的安全保护

1.概述

WPA3在WPA2的基础上,增强了个人和企业网络中的安全保护。WPA3包括下面几种认证方式:

  • WPA3: Simultaneous Authentication of Equals (SAE).
  • WPA3: 192‑bit cryptographic strength security protocol defined in Commercial National Security Algorithm (CNSA) Suite-B.
  • Enhanced Open Feature: Opportunistic Wireless Encryption (OWE).
  • Easy Connect: Simplified onboarding through Device Provisioning Protocol (DPP).

SAE:对小型网络使用的WPA-Personal进行了优化,加强密钥交换时的安全性。SAE协议中攻击者每次都需要先Commit消息给AP,然后接收到AP的Confirm消息后才能确认自己猜测的密码是否正确。不能通过把其中某一次的交互信息抓取下来,后不与AP交互,反复的猜测密码是否正确,这样就大大增加了攻击者的激活成功教程时间,所以SAE抵御字典攻击。前向保密(Forward secrecy),防止攻击者记录会话的加密传输,然后在将来获得了密码来对其进行解密。

Suite-B:针对企业环境使用的WPA-Enterprise改进了加密标准,将密码算法提升至192位。

OWE:增强开放式网络的安全性,为每位用户提供单独的加密,以保证用户设备与接入点间的通信安全。

DPP:一种适用于WPA2和WPA3网络的新型连接协议,用户可以通过扫描QR码的形式将没有显示界面的设备添加至网络。

2. SAE

2.1认证原理

认证原理如下图所示。与WPA2相比,多了下图中的红框部分。
sae认证原理
在SAE协议中有两种消息:commit和confirm。

在SAE中,两边都可以发起认证,或者有可能两边同时发起认证,即红框处commit消息可以是AP先发起,也可以是STA先发起,或者同时发起。SAE Auth结束后,AP和STA拥有共享的PMK。

SAE使用离散对数加密来实现身份验证和密钥协商。双方根据定义的有限循环组(Finite cyclic groups)导出临时的公钥和私钥。其中有限循环组有Finite Field Cryptography (FFC) 和Elliptic Curve Cryptography (ECC)两种。

在开始协议消息交换之前,需要先生成PWE(password element)和两个加密值(secret value)rand和mask。
首先,选择一个组,如果STA正在向对方发起SAE,则选择最优的组;如果STA正在响应对方,则选择来自接收到的SAE Commit中的组。然后使用两个STA的标识和配置的密码为该组生成PWE(具体取决于该组是ECC还是FFC)。在生成PWE之后,每个STA再生成加密值rand和临时加密值mask。PWE生成的原理如下图所示:
PWE生成原理
在讲具体的SAE消息交换前,先说明一下SAE为FFC和ECC组定义的三种算术运算符:
element operation(元素运算):由两个元素来产生第三个元素。
scalar operation(标量运算):由整数(称为标量)和一个元素生成第二个元素。
inverse operation(逆运算):由一个元素生成第二个元素。

这里使用的约定是用大写粗体斜体表示group elements,用小写斜体表示scalar values。
元素运算采用两个元素X和Y来产生第三个元素Z,表示为Z = elem-op(X,Y);
标量运算采用标量x和元素Y来产生第二个元素Z,表示为Z = scalar-op(x,Y);
逆运算采用元素X来产生第二个元素Z,表示为Z = inverse-op(X)。

1.构造SAE commit消息
SAE Commit消息由一个scalar和一个element组成,如下所示:
commit-scalar = (rand + mask) mod r
COMMIT-ELEMENT = inverse(scalar-op(mask, PWE))
其中r为在组中的顺序(order)。

2.处理对端的SAE Commit message
收到对端的SAE Commit消息后,首先需要验证scalar和element。
验证成功后,先生成一个共享的加密元素K:由来自对端Commit消息中的scalar和element以及自己的加密值生成,如下:
K = scalar-op(rand, (elem-op(scalar-op(peer-commit-scalar, PWE), PEER-COMMIT-ELEMENT)))

如果共享的加密元素,K,是组里面identity element(FFC组的1和ECC组的无穷点),STA将会拒绝对端的认证。否则计算出一个加密值k,如下:
k = F(K)

接着经过下面的步骤计算出KCK(key confirmation key)和PMK(pairwise master key):
keyseed = H(<0>32, k)
kck_and_pmk = KDF-Hash-512(keyseed, “SAE KCK and PMK”,
(commit-scalar + peer-commit-scalar) mod r)
KCK = L(kck_and_pmk, 0, 256)
PMK = L(kck_and_pmk, 256, 256)
PMKID = L((commit-scalar + peer-commit-scalar) mod r, 0, 128)

3.构造SAE Confirm message
SAE Confiem消息由KCK,send-confirm counter,发送的SAE Commit消息的scalar和element,接收到的SAE Commit消息中的scalar和element计算生成,如下:
confirm = CN(KCK, send-confirm, commit-scalar, COMMIT-ELEMENT, peer-commit-scalar, PEER- COMMIT-ELEMENT)

4.处理对端的SAE Confirm message
接收到对端的SAE Confirm消息后,计算出verifier。该verifier由KCK,接收到的SAE Confirm消息中的send-confirm,接收到的SAE Commit消息中的scalar和element,以及发送的SAE Commit消息中的scalar和element计算而来,如下:
verifier = CN(KCK, peer-send-confirm, peer-commit-scalar, PEER-COMMIT-ELEMENT,commit-scalar, COMMIT-ELEMENT)

接着对比接收到的SAE Confirm消息中的confirm与计算出的verifier。如果相同,STA将会接受对端的认证,否则STA将会拒绝对端的认证,并删除PMK。

2.2数据包截图

SAE RSN AKM:
SAE RSN AKM
SAE + WPA2 mixed mode beacon,RSN中包含了WPA2的AKM和SAE的AKM:
在这里插入图片描述
SAE only Beacon,RSN中只有SAE的AKM:
在这里插入图片描述
SAE Commit:
在这里插入图片描述
SAE confirm:
在这里插入图片描述

2.3 hostapd配置

  1. WPA2 or WPA3
interface=ath16
bridge=br0
logger_syslog=-1
logger_syslog_level=2
logger_stdout=-1
logger_stdout_level=2
ctrl_interface=/var/run/hostapd
ctrl_interface_group=0
ssid=xxxx
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wme_enabled=0
ieee8021x=0
eapol_version=2
eapol_key_index_workaround=0
wpa=2
wpa_group_rekey=3600
wpa_pairwise=CCMP
ieee80211w=1
wpa_key_mgmt=WPA-PSK  SAE
wpa_passphrase=12345678

2.WPA3 only

interface=ath16
bridge=br0
logger_syslog=-1
logger_syslog_level=2
logger_stdout=-1
logger_stdout_level=2
ctrl_interface=/var/run/hostapd
ctrl_interface_group=0
ssid=xxx
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wme_enabled=0
ieee8021x=0
eapol_version=2
eapol_key_index_workaround=0
wpa=2
wpa_group_rekey=3600
wpa_pairwise=CCMP
ieee80211w=2
wpa_key_mgmt=SAE 
wpa_passphrase=12345678

3.OWE

3.1背景

很多地方都提供互联网接入服务,例如,咖啡店,机场和酒店。因为分发密码(或使用其他身份验证的解决方案)不方便或不现实,所以在大多数情况下,是以OPEN的方式的提供的。 这使得他们的数据传输容易受到嗅探攻击,例如,相邻酒店房间中的某人运行Wireshark来监视他们的数据传输等。

此外,许多企业(例如,咖啡店和酒吧)提供免费的Wi-Fi来吸引客户进入和留下。由于这些企业不是互联网服务提供商,因此他们通常不会把网络配置得特别复杂。此外,客户也不喜欢仅仅为了上网而进行太复杂的配置。这样就产生了一种流行的部署方式,把PSK贴在墙上,桌子上或菜单上,认为这样可以保护数据传输免受嗅探和简单的攻击。这种看法是错误的,因为每个人都知道PSK,攻击者可以通过观察到4步握手记录STA和AP使用的加密密钥。如果攻击者来不及观察4步握手,他还可以发出伪造的“deauthenticate”帧,让 STA或AP重置802.11状态机并再次进行4步握手,从而确定加密密钥。

通过使用OWE,STA和AP在连接过程中执行Diffie-Hellman密钥交换,并使用产生的成对秘密进行4步握手,而不是使用公共的PSK进行4步握手。

OWE不需要特殊的配置,却提供了比OPEN和使用公共PSK加密方式更高级别的安全性。 OWE对网络提供者和最终用户来说也更容易使用,因为不需要共享和维护公共的PSK。

3.2认证原理

1.Cryptography
OWE支持Elliptic Curve Cryptography (ECC) 和 Finite Field Cryptography (FFC)。OWE使用hash算法来生成secret和secret identifier。 特定的hash算法取决于为Diffie-Hellman选择的组。

2.OWE Discovery
AP使用Authentication and Key Management (AKM) suite selector来广告对OWE的支持。该AKM如下图所示,已经加入到了RSN(Robust Security Network)的元素中 ,AP在beacons和probe response帧中都会包含该元素。
在这里插入图片描述

3.OWE Association
相关的元素(element)信息将会以TLV的形式添加到association requests and responses中。
每个元素都有一个“Element ID”(包括Element ID extension),一个长度和一个值字段。

OWE将Diffie-Hellman参数元素添加到association requests and responses中。STA在association request中添加它的公钥, AP在association response添加它的公钥。
在这里插入图片描述

其中:

  • group 为两个字节的整数,以小端模式存放。
  • public key是字符串表示对应的Diffie-Hellman key。
  • Element ID, Length, Element ID Extension 都是单字节的整数。

4.PMK生成
通过下面的步骤生成PMK:
z = F(DH(x, Y))
prk = HKDF-extract(C | A | group, z)
PMK = HKDF-expand(prk, “OWE Key Generation”, n)
其中,x为private key,Y为对端的public key。C是STA的Diffie-Hellman public key,A是AP的Diffie-Hellman public key,group是两个字节的Diffie-Hellman Parameter Element。

PMKID生成方式如下:
PMKID = Truncate-128(Hash(C | A))
其中C是STA在association request时发送的Diffie-Hellman public key,A是AP在association response发送的Diffie-Hellman public key。

5.整体原理图
OWE的认证过程如下如所示,STA首先与AP执行Open System Authentication,然后STA (Re)Association Request帧中提供一个临时的Diffie-Hellman public key,AP在(Re)Association Response帧中回复一个Diffie-Hellman public key,这样STA和AP就完成了Diffie-Hellman public key交换并产生出PMK。后面为4步握手过程。
在这里插入图片描述
5.Transition-mode
用户设备是慢慢的更新换代的,为了同时兼任旧的OPEN的设备和支持新的OWE的设备,所以引入了OWE transition-mode,就像WPA-Personal认证方式一样,会提供一种可以兼任旧设备的认证方式一样,如AUTO(WPA or WPA2)。

OWE过渡模式中需要配置两个SSID,一个用于OPEN的STA,一个用于OWE的STA,用于OWE的SSID还将设置为hidden。以OPEN方式开启的SSID在其Beacon和Probe Response帧中会包含transition-mode相关的element information和对应OWE SSID的信息,这样当OWE的STA扫描OPEN SSID时就获取到了OWE SSID的信息。接着OWE STA就会直接与OWE SSID通信。Transition-mode element如下图所示:
在这里插入图片描述

3.3数据包截图

only OWE mode,beacon中关于OWE的RSN信息,可参考3.2.2 OWE Discovery节:
在这里插入图片描述
Probe response中的owe RSN AKM,与上图相同:
在这里插入图片描述
Association request中包含的OWE element信息,参考3.2.3 OWE Association节:
在这里插入图片描述
Association response 的owe element信息,各个元素信息同上图:
在这里插入图片描述
owe-transition mode,open的SSID发出的beacon中包含的关于OWE SSID的信息,如下图,可参考3.2.6 Transition-mode:
在这里插入图片描述
owe-transition mode,open的SSID发出的probe response中关于OWE的信息,各个字段含义同上图:
在这里插入图片描述

3.4 hostapd配置

对于OWE,AP现在有两种配置方式:
1.stand-alone
该方式下,只允许STA使用OWE方式来连接AP。配置如下:

interface=ath16
bridge=br0
logger_syslog=-1
logger_syslog_level=2
logger_stdout=-1
logger_stdout_level=2
ctrl_interface=/var/run/hostapd
ctrl_interface_group=0
ssid=owe
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wme_enabled=0
ieee8021x=0
eapol_version=2
eapol_key_index_workaround=0
wpa=2
wpa_group_rekey=3600
wpa_pairwise=CCMP
owe_groups=19
ieee80211w=2
wpa_key_mgmt=     OWE

2.transition-mode
[ath16 config]

interface=ath16
bridge=br0
logger_syslog=-1
logger_syslog_level=2
logger_stdout=-1
logger_stdout_level=2
ctrl_interface=/var/run/hostapd
ctrl_interface_group=0
ssid=owe
macaddr_acl=0
auth_algs=1
owe_transition_ifname=ath17
wpa=2
wpa_pairwise=CCMP 
owe_groups=19
ieee80211w=2
wpa_key_mgmt=     OWE

[ath17 config]

interface=ath17
bridge=br0
logger_syslog=-1
logger_syslog_level=2
logger_stdout=-1
logger_stdout_level=2
ctrl_interface=/var/run/hostapd
ctrl_interface_group=0
ssid=open
macaddr_acl=0
auth_algs=1
owe_transition_bssid=12:34:36:12:34:56
owe_transition_ssid="owe"
owe_transition_ifname=ath16
wpa=0

4.suite-B

4.1数据包截图

使用EC2 certificate时:
在这里插入图片描述
从图中可以看到Cipher Suite为TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384。
ECDHE_ECDSA:为key establishment and authentication算法。ECDHE(Elliptic Curve Diffie Hellman Ephemeral)密钥协商算法,ECDSA表示证书是用椭圆曲线数字签名算法。
AES_256_GCM:为data encryption算法。
SHA384:为key derivation and key confirmation算法。

使用RSA 3K DHE\ECDHE certificate时:
在这里插入图片描述
从图中可以看到Cipher Suite为TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384。
ECDHE_RSA:为key establishment and authentication算法,ECDHE(Elliptic Curve Diffie Hellman Ephemeral)密钥协商算法,RSA指证书签名算法。
AES_256_GCM:为data encryption算法。
SHA384:为key derivation and key confirmation算法。

4.2 hostapd配置

AP配置

logger_syslog=127
logger_syslog_level=2
logger_stdout=127
logger_stdout_level=2
ctrl_interface=/var/run/hostapd-wifi1
auth_server_addr=192.168.0.108
auth_server_port=1812
auth_server_shared_secret=12345678
eapol_key_index_workaround=1
ieee8021x=1
wpa_pairwise=GCMP-256
auth_algs=1
wpa=2
ssid=Suite-B
bridge=br-lan
ieee80211w=2
group_mgmt_cipher=BIP-GMAC-256
wpa_key_mgmt=WPA-EAP-SUITE-B-192

STA配置

EC2 certificate

network={
ssid="Suite-B"
proto=RSN
key_mgmt=WPA-EAP-SUITE-B-192
pairwise=GCMP-256
group=GCMP-256
group_mgmt=BIP-GMAC-256
eap=TLS
identity="Anything"
ca_cert="/data/cert/ec2-ca.pem"
client_cert="/data/cert/ec2-user.pem"
private_key="/data/cert/ec2-user.key"
private_key_passwd="wifi"
ieee80211w=2
}

RSA 3K DHE\ECDHE certificate

network={
ssid="Suite-B"
proto=RSN
key_mgmt=WPA-EAP-SUITE-B-192
pairwise=GCMP-256
group=GCMP-256
group_mgmt=BIP-GMAC-256
eap=TLS
identity="Anything"
ca_cert="/data/cert/rsa3072-ca.pem"
client_cert="/data/cert/ rsa3072-user.pem"
private_key="/data/cert/ rsa3072-user.key"
private_key_passwd="wifi"
phase1="tls_suiteb=1"
ieee80211w=2
}

radius server配置,环境:Operating system: Ubuntu Kylin 16.04 LTS – 64 bit,Hostapd version: hostapd v2.7-devel

EC2 certificate

ssid=test-suite-b
channel=6
wpa=2
wpa_key_mgmt=WPA-EAP-SUITE-B-192
rsn_pairwise=GCMP-256
group_mgmt_cipher=BIP-GMAC-256
ieee80211w=2
ieee8021x=1
openssl_ciphers=SUITEB192
eap_server=1
radius_server_clients=/home/anlio/auth_serv/hostapd.radius_clients
eap_user_file=/home/anlio/auth_serv/eap_user.conf
ca_cert=/home/anlio/auth_serv/ec2-ca.pem
server_cert=/home/anlio/auth_serv/ec2-server.pem
private_key=/home/anlio/auth_serv/ec2-server.key

RSA 3K DHE\ECDHE certificate

ssid=test-suite-b
channel=6
wpa=2
wpa_key_mgmt=WPA-EAP-SUITE-B-192
rsn_pairwise=GCMP-256
group_mgmt_cipher=BIP-GMAC-256
ieee80211w=2
ieee8021x=1
eap_server=1
tls_flags=[SUITEB]
radius_server_clients=/home/anlio/auth_serv/hostapd.radius_clients
eap_user_file=/home/anlio/auth_serv/eap_user.conf
ca_cert=/home/anlio/auth_serv/rsa3072-ca.pem
server_cert=/home/anlio/auth_serv/rsa3072-server.pem
private_key=/home/anlio/auth_serv/rsa3072-server.key

今天的文章WPA3_wpa3好还是wpa2好[通俗易懂]分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/69482.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注