WiFi 基础(四)—— 连接过程

连接三步骤

  1. 扫描(Probe Request、Probe Response)
  2. 认证(Authentication)
  3. 关联(Association Request、Association Response)

1. 扫描阶段

STA 发送 Probe Req 帧,携带 SSID 表明欲加入的网络,携带 Supported Rates 表明自身的能力。

AP 回复 Probe Rsp 帧,这是 AP 的义务,(AP 允许此 STA 连接的情况下)也携带 Supported Rates 表明自身的能力。

作用:STA 获取 AP 的能力,决定要不要加入该网络;AP 获取 STA 能力,并根据自身情况决定要不要让该 STA 加入自身网络。

打个比方:STA 好比应聘者, AP 好比公司。应聘者投简历表明自己想要进入哪家公司,同时简历上面写上自己的能力。公司收到简历后,考虑还需不需要招人以及该应聘者能力情况,决定要不要准备招收该应聘者。如果准备招收,则公司也将自身的一些能力情况介绍给该应聘者,毕竟双向选择嘛。如果决定不接收,则回复拒绝,当然公司会稍微委婉点:回去等通知。

2. 认证阶段

STA 收到 Probe Rsp 帧,决定要不要加入此网络,若决定加入,则发送 Auth 帧进行身份认证,否则流程结束。

STA 在 Auth 包中表明认证算法类型,0:Open System,1:Shared Key。

Shared Key 方式即代表使用 WEP 加密方式,Open System 方式即代表使用 TKIP/WPA/WPA2 方式。

使用 Shared Key 方式,是真实的身份认证过程,Auth 共有 4 步骤:

  • Auth seq#1:由 STA 发起认证请求,携带认证算法类型:Shared Key

  • Auth seq#2:AP 回复一个挑战明文(challenge text )

  • Auth seq#3:STA 使用预设密钥对挑战铭文进行加密,然后发送给 AP

  • Auth seq#4:AP 收到后,使用密钥对收到的消息进行解密,如果解密成功且明文一致表示认证成功,回复 successful

使用 Open System 方式,表明真正的身份认证放到 EAPOL 阶段,所以 Auth 只有两步骤:

  • Auth seq#1:由 STA 发起认证请求,携带认证算法类型:Open System

  • Auth seq#2:AP 直接回复 successful,因为真正的身份认证会放在 EAPOL 阶段
    在这里插入图片描述
    接上个比方:如果应聘者收到了公司的准备接收意向,则会向公司提出面试申请。公司收到申请后,会发面试试题或者当面面试。应聘者提交答案或者当面回答问题。公司检查答案是否正确,如果正确,则面试通过,同时发放 offer;如果答案不正确,则面试失败,回复不予接收,当然会委婉点。

3. 关联阶段

STA 收到认证通过报文后,决定要加入当前网络,就会发送 Assoc Req 帧。指明要加入的网络的类型、自己的 Listen Interval(聆听间隔,即 STA 多久聆听一次 Beacon 帧,以监听 TIM 信息)和一些能力信息。

AP 收到 Assoc Req 帧后,最终确认 STA 的 Listen Interval 自己能不能接受,能力信息是否匹配,如果一切 OK,回复 Assoc Rsp 帧,携带 AID(Association ID) 和 successful 信息,表明关联成功。否则,回复 Assoc Rsp 帧,携带 failed 信息,表明关联失败,同时 AP 也会从 mac table 中删除此 STA。

接上个比方:如果应聘者收到了 offer,并且也决定要去这家公司,则该应聘者会去公司报到,同时携带自身体检报告。公司接待该应聘者,如果体检报告不合格,公司最终也可以决定不接收该应聘者。如果体检报告合格,公司则会给该应聘者办理入职手续,并且给该应聘者分配一个工号,从此该应聘者便是公司的一员了。

4. EAPOL 阶段

如果采用的是 Shared Key 方式,即 WEP 加密方式,认证已在 Auth 阶段完成,完成上述关联阶段即已正式加入网络,后续可以通过密钥对消息加解密和 AP 进行正常通信了。

如果采用的是 Open System 方式,即 TKIP/WPA/WPA2 方式,在 Auth 阶段其实没有进行身份认证的工作,在 Auth 阶段就决定把身份认证的工作放在当前 EAPOL 阶段了。所以此种方式下,要进行 EAPOL 步骤,常见的就是 4-way handshake,当然还有 2-way-handshake。此处只讨论 4-way handshake,如下
在这里插入图片描述
密钥生成公式如下,详细介绍请查看《WiFi 基础(六)—— 认证和加密原理》
P T K = P R F ( A A , S A , A N o n c e , S N o n c e , P M K ) PTK=PRF(AA, SA, ANonce, SNonce, PMK) PTK=PRF(AA,SA,ANonce,SNonce,PMK)

  • step 1:AP 首先发送 Message 1,包含 ANonce

  • step 2:STA 收到 ANonce,同时也能拿到 AA(Authenticator addr),SA(Supplicant addr)是自己本身的信息,SNonce 又是自己现在生成的信息,PMK 是通过自身密码和 SSID 计算得到的,也是已知信息。此刻,STA 已具备计算 PTK 的所有五元组信息,所有能够计算得到 PTK。然后用 PTK 的 KCK 位对马上要发送的数据包进行计算得到 MIC,并将 MIC 附着在包尾一同发送给 AP

  • step 3:AP 收到Message 2,此时也具备了所有的五元组信息,也成功计算出了 PTK,并用 PTK 的 KCK 位对收到的数据进行计算得到 MIC,计算得到的 MIC 与收到的 MIC 进行对比,如果相等则代表 AP 和 STA 拥有相同的 PTK,进而可以确定两者拥有相同的 PMK,进而可以确定两者拥有相同的密码,AP 向 STA 回复 Message 3,包含被加密的 GTK(用于对广播数据帧和组播数据帧加密) 和 MIC。如果不相等,则身份认证失败,回复认证失败报文。至此,可以完成身份认证的工作。且,身份认证成功之后,数据可以通过 PTK 进行加解密。

  • step 4:STA 收到 被加密了的 GTK,因为手中已有 PTK,所以可以从中解出 GTK。然后 AP 和 STA 安装 PTK 和 GTK,整个认证和密钥交换过程至此结束。

接上个比方:WEP 相当于采用的是社招的方式,前期对招聘者就进行了严格的面试筛选,只有合格的才被录取,入职之后不会再进行淘汰。WPA 则相当于采用的是校招的方式,前期不刷人,想来实习的都可以进来,不过进来后会进行筛选,不合格的一样会被淘汰,并且,进入公司工作后,有更完整的制度、更全方位的考察,更能保证留下来的都是精英(WPA 比 WEP 更加安全)。

  • 22
    点赞
  • 204
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 9
    评论
WiFi Direct或WiFi P2P是一种允许Wi-Fi设备直接相互通信的技术。下面是一个简单的WiFi P2P连接过程的详细解释: 1. 设备发现:在WiFi P2P连接之前,设备之间需要进行发现并建立连接。当一个设备想要建立连接时,它会发送一个服务发现请求(Service Discovery Request)广播消息,告诉其他设备它正在寻找连接伙伴。其他设备可以通过发送服务发现响应(Service Discovery Response)来回应这个请求。如果有一个设备回应了请求,那么连接就可以开始建立。 2. 组建群组:一旦设备发现过程完成,连接的下一步是组建一个群组。在WiFi P2P中,群组有两种类型:临时群组和持久群组。如果设备只是想要进行短暂的连接,那么临时群组就足够了。另一方面,如果设备需要进行长期连接,则应该选择持久群组。 3. 建立连接:一旦群组建立,设备之间就可以开始建立连接。在WiFi P2P中,有两种类型的连接:点对点连接和组连接。点对点连接是指两个设备之间的连接,而组连接是指多个设备之间的连接连接建立后,设备之间就可以直接通信了。 4. 数据传输:连接建立后,设备之间就可以开始进行数据传输。在WiFi P2P中,数据可以通过HTTP,Sockets,FTP等协议进行传输。 5. 断开连接:当数据传输完成后,设备之间的连接可以断开。要断开连接,设备可以发送一个离开群组(Leave Group)消息,告诉其他设备它要离开群组了。其他设备可以通过发送群组成员离开(Group Member Leave)消息来回应这个请求。如果所有设备都已经离开了群组,则群组会被自动解散。 以上就是WiFi P2P连接过程的详细解释。
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Li-Yongjun

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值