H3C Portal 上网认证的 Android 客户端

本文仅供学习交流之用

现在,许多的单位和学校都采用了 H3C 的 Portal 认证模式来控制用户的上网行为。H3C 提供了原生 Windows 版本的 iNode 智能客户端 和 Java 版本的 iNode DC,但是却没有手机 Android 版的客户端。经过几天的分析,其实整个认证过程并不复杂。通过分析客户端与服务器的通信过程,我们不难发现认证的大致流程如下图:


1. 客户端以 UDP 的方式向 Portal 服务器发送验证信息,验证成功后将自身的IP、MAC、操作系统版本、机器名等信息发送给服务器登记。(具体代码在此就不写出来了)


2. 如果部署了安全检查服务器(EAD),第 1 步返回的信息中会带有 EAD 服务器的地址和端口。这时向 EAD 请求安全检查,检查内容主要包括有:补丁检查、病毒库检查、注册监控、软件黑(白)名单、EAD在线重认证、防多网卡等。但是 Android 里面既没有补丁、也没有病毒库,所以只能针对这些检查伪造一些成功的检查结果发送给 EAD。


3. 一切就绪之后,每隔半个小时发送一次心跳包以保持用户在线。


针对上述流程,编写出的 Android 客户端效果(截图)如下:

1. 没有认证之前始终会定位到 Portal 页面


2. 在客户端中填入账号,即可向服务器发送联网申请



3. 成功登录后就能正常上网了



由此可见,H3C 的 iMC 中的 EAD 服务器虽然能够要求客户端验证杀毒软件、补丁、黑白名单等项目,但是验证的结果却是由客户端程序来决定的。这使得整个认证过程就退化为对用户名和密码的验证。黑客一旦获得了用户名和密码,完全可以向 EAD 服务器发送伪造的安全信息,EAD 也就形同虚设了。



测试版 iNode For Android 下载(支持 Android 2.0 以上系统):点击下载        

现在只做了个 Activity 界面的,运行久了会被新运行的其它程序挤掉。将来再试试做一个通用的、后台 Service 版的。

你可能感兴趣的:(C/C++,和,Python)