岳 峰,段政伟
(中国电波传播研究所,河南 新乡 453002)
近些年,得益于无线移动通信技术和智能手机技术的不断发展,移动互联网变成人们网上冲浪的主场地[1]。 移动互联网环境下,不断衍生出大量新型的应用程序,这些应用与移动终端相结合,为用户提供各种个性化的服务。 人们的衣、食、住、行无一不和手机产生紧密的联系。 然而,互联网是把双刃剑,使得很多自制力差的用户无法抵抗各种外部诱惑,网络赌博、网络借贷、沉迷网游、迷恋网络聊天等不良现象屡见不鲜[2]。 此外,智能手机越来越强大的功能也使得手机在无形中变成泄密源。 在用户有意识或者无意识地使用手机过程中,照片、位置信息、身份信息、文档信息等都有可能作为泄密信息上传到互联网中,严重威胁国家安全[3]。 基于此,严格的手机使用管理流程也在各大营区执行并发展起来。 然而,这些传统管理方法烦琐低效,难以达到无人值守的程度。
本文介绍的营区手机管控平台利用虚拟基站伪装为运营商的通信基站与受控手机进行信令交互[4],并建立链接,阻止受控手机正常上网。 基站和手机进行信令交互时,基站并不是直接使用手机号作为手机的身份,而是利用国际移动用户识别码(International Mobile Subscriber Identification Number,IMSI)[5]。 因为IMSI 可以作为SIM 卡唯一性的标识,所以营区手机管控平台本质上就是对IMSI 的管控。 该平台以网页的形式向管理者提供一个友好的操作界面,帮助管理者分层次、细粒度地管理用户的手机。
1.1.1 IDEA
IDEA 作为JAVA 语言的集成开发环境,定位为一个“智能的Java IDE”,能够使JAVA 程序员快捷地编写和修改代码,相比Eclipse 提供更多的系统资源,拥有更强的项目结构支持,能大幅提高编程效率。
1.1.2 MySQL
MySQL 是一个开源免费的关系型数据库管理系统,具有体积小、功能齐全、速度快、成本低等特点,广泛流行于各互联网企业、高校等机构。
1.2.1 SpringBoot
SpringBoot 是一个轻量级的JavaEE 编程框架[6],以Spring 为基础,能够简化开发者在开发过程中的烦琐配置工作,让开发者将更多的精力专注于业务开发本身。 因此,SpringBoot 的出现大大提高了Java Web应用程序的开发效率[7]。
1.2.2 WebSocket
WebSocket 从属于超文本标记语言(HyperText Markup Language,HTML5)规范的一部分,能够在服务器和浏览器之间建立一个持久性全双工通道[8]。 传统的网页请求模式为浏览器发起请求,服务器响应请求返回数据至浏览器,而WebSocket 的出现打破这种常规,允许服务器主动向浏览器及时推送数据。WebSocket 被广泛应用于实时状态监控、实时聊天系统、可视化展示系统等场景。
1.2.3 UDP
用户数据包协议(User Datagram Protocol,UDP)通信是利用Socket(套接字)一种实现方式,处于应用层和传输层之间,可以用来进行进程间通信[9]。 和传输控制协议(Transmission Control protocol,TCP)通信方式相比,UDP 传输速度快,延迟小,额外通信资源消耗小,适用于通信环境质量好的场景。
1.2.4 ECharts
ECharts 是一个功能齐全、性能稳定、操作方便的数据可视化Web 组件,能够在应用系统中以饼图、柱状图、折线图等形式更加直观地展示信息数据[10]。
本系统基于虚拟基站对目标IMSI 的信号控制,提供一个营区手机管控操作平台。 平台的主要目标是让营区手机管理者轻松高效地对用户的手机进行管控。 本平台将营区所有IMSI 分为3 个管控等级,高等级IMSI 可以永久正常使用网络,不受虚拟基站干扰;中等级IMSI 按自定义时段可以正常使用网络,其他时段无法使用;低等级IMSI 始终无法使用网络,对其信号执行永久干扰模式。 手机管理者将所有用户的IMSI 进行管控等级分类,即可达到无人值守的手机管理目标。
本系统的硬件网络结构如图1 所示,所有设备均通过交换机连接在同一局域网内,系统平台程序部署在Web 服务器上。 用于辐射虚拟基站信号的天线分布于营区的各个楼层,以达到信号的无盲区覆盖。 本平台软件利用UDP 通道和管控设备程序进行数据交互,既可以获取其采集的IMSI 数据,又能读写受管控IMSI 名单,并对管控设备进行参数配置。
图1 网络结构
如图2 所示,营区手机管控平台共包括五大功能模块,分别为登录模块、侦码数据查询模块、黑白名单管理模块、数据可视化模块和后台管理模块。
图2 功能模块
2.3.1 登录模块
使用者在平台登录页面输入用户名、密码和用户类别进行登录操作,如果登录信息正确,页面跳转至平台主界面;如果认证失败,则显示错误提示。
2.3.2 侦码数据查询模块
该模块提供对采集的IMSI 历史数据的查询功能,为使用者提供的筛选条件包括IMSI 号码、姓名、单位和时间区间等。 该模块能够快速将采集到的IMSI 号码标记为黑名单或白名单。
2.3.3 黑白名单管理模块
该模块用于管理白名单的IMSI 号码信息,提供手动和Excel 导入两种方式和增删改查等基本功能。白名单是所有用户已登记的IMSI 号码,管控级别为高等级或者中等级。 该模块提供对IMSI 管控等级切换功能,即高等级变为中等级,中等级变为高等级,并且为每个白名单提供手动管控和取消管控按钮。 此外,管理者还可以一键将白名单切换为黑名单。 该模块用于管理黑名单的IMSI 号码信息,提供手动和Excel 导入两种方式和增删改查等基本功能。 黑名单是未登记的但经常被设备采集到的陌生IMSI,它在管控系统中赋予的权限最低,永久不能使用网络。 同样,该模块也提供一键切换白名单功能。 该模块为管理者提供管控计划表。 管控计划表的适用对象是白名单中的中等级IMSI,管理者可以自定义允许中等级IMSI 正常使用的时间段。 管理者可以按照日期、星期等条件添加计划条目,平台的后台程序将自动按照计划表实时调整中等级IMSI 的管控状态。
2.3.4 数据可视化模块
该模块以柱状图的形式展示一定时间段内采集到的IMSI 号码的频次排序,方便管理者分析出经常出现在营区的陌生IMSI 号码。 该模块以饼图的形式展示出白名单、黑名单以及其他未标记的陌生的IMSI号码的数量、比例。 该模块以柱状图的形式展示一定时间段内采集到的IMSI 号码运营商分布情况。
2.3.5 后台管理模块
该模块实现管控设备参数配置、参数查询、运行状态显示等功能。 由于平台程序和管控设备程序是通过UDP 通道交互信息的,无法直接将信息推送到前台页面,因此在平台中利用WebSocket 协议,实现将管控设备程序的UDP 信息实时推送到平台页面上,快速反馈给管理者。 同样,平台也利用WebSocket 协议对管控设备运行状态进行实时监控。 该模块支持设备自定义管理。 营区管理范围较大时,使用者可以采用增加管控设备的方式进行扩容。 该功能可以在不改变平台程序的情况下灵活地对管控设备执行增加和删除操作,从而避免硬编码问题。 该模块支持登录平台的用户信息管理。 该模块支持利用日志记录用户操作。
本系统使用MySQL 数据库软件作为存储数据的工具,主要包含的实体对象有IMSI 信息实体、白名单信息实体、黑名单信息实体、计划表信息实体、用户信息实体等,实体联系如图3 所示。 (1)IMSI 信息实体。 它是系统中存储的IMSI 历史信息,是手机管理的重要基础数据。 (2)白名单信息实体。 它是用户已登记在册的手机卡信息,平台利用其权限等级属性将白名单分级,该属性是对IMSI 进行分层次管控的核心。 (3)黑名单信息实体。 它是营区内被采集频率较高的陌生IMSI 号码,需要管理者对其进行标记。(4)计划表信息实体。 针对白名单的中等级别IMSI号码,管理者可以设置其能够使用手机进行上网的时间段,而其他时段则无法联网。
图3 数据库实体
在移动互联网的大趋势下,智能手机成为用户不可或缺的必需品。 但类似误入网贷陷阱、沉迷游戏、泄露国家机密等现象的发生给手机管理者带来诸多隐患。 为此,本文提出一个基于SpringBoot 开发的营区手机管控平台。 营区手机管控平台基于B/S 架构,管理者无需安装操作软件,使用浏览器即可完成管理工作。 平台中的数据可视化工具自动完成海量数据的分析和提取,帮助管理者更加精准地对陌生手机号码进行定位。 营区手机管控平台创造性地建立了一个多层次、细粒度的手机管理模型,帮助管理者高效地完成营区手机管理工作。