Wi-Fi EAP网络验证过程与Android平台拓展实例(一)

2023-10-25 20:30

本文主要是介绍Wi-Fi EAP网络验证过程与Android平台拓展实例(一),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章参考的是Android 7.1的源码
本文主要研究EAP类型网络的身份验证过程,从而简化Android平台EAP类型网络的身份验证过程。


1. 什么是EAP

  Extensible Authentication Protocol,简称EAP,是一种支持多种验证方式的协议框架,EAP通常运行在链路层例如PPP和IEEE 802。EAP协议是IEEE 802.1x认证机制的核心,它将实现细节交由附属的EAP Method协议完成,如何选取EAP method由认证系统特征决定,这样实现了EAP的扩展性及灵活性(摘自”百度百科”)。这篇文章主要描述的场景是基于Radius服务器的EAP身份认证方式。
  了解本文前,如果您的身边没有EAP网络环境,可以通过路由器和Radius进行搭建。

2. IOS和Android对EAP支持的区别

  下图分别是IOS(左图)和Android(右图)连接EAP-TTLS加密方式网络的设置界面:
  这里写图片描述
  从上图看,IOS系统中,只需要用户输入用户名和密码,但是在Android系统上,则需要用户指定具体的EAP方法(默认使用PEAP),如果选择的EAP方法与AP认证服务器指定的不对应,则无论用户名和密码正确与否都会验证失败。
  我们知道,在未开始连接前,设备是只知道这个AP是EAP加密方式,但不知道具体的EAP方法。那为什么IOS都没有选择具体EAP方法就可以连上这个TTLS加密方式的网络呢?而且,将AP的EAP方法改为PEAP,IOS同样可以连上,这点很奇怪!需要刨根问题追究缘由,则需要抓出认证过程中,IOS与认证服务器的交互包。
  
3. IOS EAP认证过程探究

  设定Radius EAP方法为TTLS,开启Radius服务:

xyzc@xyzc-ul:~$ sudo radiusd -X
FreeRADIUS Version 3.0.16
Copyright (C) 1999-2017 The FreeRADIUS server project and contributors
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
...
Listening on auth address * port 1812 bound to server default
Listening on acct address * port 1813 bound to server default
Listening on auth address :: port 1812 bound to server default
Listening on acct address :: port 1813 bound to server default
Listening on auth address 127.0.0.1 port 18120 bound to server inner-tunnel
Listening on proxy address * port 43060
Listening on proxy address :: port 48623
Ready to process requests

  在搭建了Radius服务的主机上开始抓取tcpdump,并使用IPhone开始连接

xyzc@xyzc-ul:~/ulangch/eap$ sudo tcpdump -i any -w tcpdump-ios.pcap
tcpdump: listening on any, link-type LINUX_SLL (Linux cooked), capture size 262144 bytes

  实验完成后使用wireshark分析IPhone连接过程中抓取Radius服务所在主机的tcpdump。
  如下为tcpdump抓取的Radius协议数据包,这部分即代表了认证过程,192.168.1.1192.168.1.100分别代表了路由器网关IP和Radius服务主机IP。

179 2018-05-14 15:43:19.055587  192.168.1.1 192.168.1.100   RADIUS  201 Access-Request(1) (id=0, l=157)
180 2018-05-14 15:43:19.056882  192.168.1.100   192.168.1.1 RADIUS  124 Access-Challenge(11) (id=0, l=80)
192 2018-05-14 15:43:19.155723  192.168.1.1 192.168.1.100   RADIUS  215 Access-Request(1) (id=1, l=171)
193 2018-05-14 15:43:19.157221  192.168.1.100   192.168.1.1 RADIUS  108 Access-Challenge(11) (id=1, l=

这篇关于Wi-Fi EAP网络验证过程与Android平台拓展实例(一)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:https://blog.csdn.net/qq_14978113/article/details/80306126
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/284987

相关文章

将Mybatis升级为Mybatis-Plus的详细过程

《将Mybatis升级为Mybatis-Plus的详细过程》本文详细介绍了在若依管理系统(v3.8.8)中将MyBatis升级为MyBatis-Plus的过程,旨在提升开发效率,通过本文,开发者可实现... 目录说明流程增加依赖修改配置文件注释掉MyBATisConfig里面的Bean代码生成使用IDEA生

Linux系统配置NAT网络模式的详细步骤(附图文)

《Linux系统配置NAT网络模式的详细步骤(附图文)》本文详细指导如何在VMware环境下配置NAT网络模式,包括设置主机和虚拟机的IP地址、网关,以及针对Linux和Windows系统的具体步骤,... 目录一、配置NAT网络模式二、设置虚拟机交换机网关2.1 打开虚拟机2.2 管理员授权2.3 设置子

揭秘Python Socket网络编程的7种硬核用法

《揭秘PythonSocket网络编程的7种硬核用法》Socket不仅能做聊天室,还能干一大堆硬核操作,这篇文章就带大家看看Python网络编程的7种超实用玩法,感兴趣的小伙伴可以跟随小编一起... 目录1.端口扫描器:探测开放端口2.简易 HTTP 服务器:10 秒搭个网页3.局域网游戏:多人联机对战4.

Android中Dialog的使用详解

《Android中Dialog的使用详解》Dialog(对话框)是Android中常用的UI组件,用于临时显示重要信息或获取用户输入,本文给大家介绍Android中Dialog的使用,感兴趣的朋友一起... 目录android中Dialog的使用详解1. 基本Dialog类型1.1 AlertDialog(

C# WinForms存储过程操作数据库的实例讲解

《C#WinForms存储过程操作数据库的实例讲解》:本文主要介绍C#WinForms存储过程操作数据库的实例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、存储过程基础二、C# 调用流程1. 数据库连接配置2. 执行存储过程(增删改)3. 查询数据三、事务处

JSON Web Token在登陆中的使用过程

《JSONWebToken在登陆中的使用过程》:本文主要介绍JSONWebToken在登陆中的使用过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录JWT 介绍微服务架构中的 JWT 使用结合微服务网关的 JWT 验证1. 用户登录,生成 JWT2. 自定义过滤

opencv图像处理之指纹验证的实现

《opencv图像处理之指纹验证的实现》本文主要介绍了opencv图像处理之指纹验证的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录一、简介二、具体案例实现1. 图像显示函数2. 指纹验证函数3. 主函数4、运行结果三、总结一、

springboot security验证码的登录实例

《springbootsecurity验证码的登录实例》:本文主要介绍springbootsecurity验证码的登录实例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录前言代码示例引入依赖定义验证码生成器定义获取验证码及认证接口测试获取验证码登录总结前言在spring

java中使用POI生成Excel并导出过程

《java中使用POI生成Excel并导出过程》:本文主要介绍java中使用POI生成Excel并导出过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录需求说明及实现方式需求完成通用代码版本1版本2结果展示type参数为atype参数为b总结注:本文章中代码均为

tomcat多实例部署的项目实践

《tomcat多实例部署的项目实践》Tomcat多实例是指在一台设备上运行多个Tomcat服务,这些Tomcat相互独立,本文主要介绍了tomcat多实例部署的项目实践,具有一定的参考价值,感兴趣的可... 目录1.创建项目目录,测试文China编程件2js.创建实例的安装目录3.准备实例的配置文件4.编辑实例的