基于ARM的无线局域网安全监测系统设计与开发_第1页
基于ARM的无线局域网安全监测系统设计与开发_第2页
基于ARM的无线局域网安全监测系统设计与开发_第3页
基于ARM的无线局域网安全监测系统设计与开发_第4页
基于ARM的无线局域网安全监测系统设计与开发_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本科毕业设计(2013届)题目基于ARM的无线局域网安全监测系统设计与开发学院专业班级学号学生姓名指导教师完成日期摘要近几年来,网络技术发展日新月异,正向着更快、更稳定和更安全的方向发展。其中以无线技术为依托的无线网络的发展尤其引人注目。无线接入技术在国内外得到了迅速的发展,无线接入技术的产品目前已经得到了广泛应用。但是,由于无线网络的特殊性,攻击者无须物理连线就可以对其进行攻击,使WLAN的安全问题显得尤为突出。本次设计实现了一个基于ARM嵌入式平台的非法ACCESSPOINT检测系统。文章将详细叙述基于ARM11的嵌入式LINUX系统平台的搭建工作,如何编写基于LINUX的WIFI字符驱动,如何利用ARM的外设WIFI模块实现对非法AP的检测与报警。选择ARM平台的原因是目前在便携式嵌入式设备中ARM是其中比较出色的一个(目前基本上占据了手持终端市场)。LINUX是一个开放源代码的系统,几乎支持所有主流的CPU,移植性相当好,十分利于开发,大大地缩短了开发的周期。关键词无线局域网;嵌入式LINUX;ARM;非法APABSTRACTNOWDAYS,THENETWORKTECHNOLOGYHASARAPIDDEVELOPMENTANDISBECOMINGFASTER,MORESTABLEANDSAFERWIRELESSLANTECHNOLOGYASTHEBASISOFTHEDEVELOPMENTOFWIRELESSNETWORKSISPARTICULARLYNOTEWORTHYWIRELESSACCESSTECHNOLOGYATHOMEANDABROADHASBEENRAPIDDEVELOPMENTOFWIRELESSACCESSTECHNOLOGYPRODUCTSHASBEENWIDELYUSEDHOWEVER,DUETOTHESPECIALNATUREOFTHEWIRELESSNETWORK,THEATTACKERSCANATTACKTHENETWORKWITHOUTAPHYSICALCONNECTION,SOWLANSECURITYPROBLEMISPARTICULARLYPROMINENTTHEAIMOFTHISDESIGNISTODETECTROGUEACCESSPOINTWITHANARMBASEDEMBEDDEDPLATFORMTHEARTICLEWILLDESCRIBEINDETAILABOUTTHEARM11EMBEDDEDLINUXSYSTEMPLATFORMSIMPLEMENTATION,HOWTOWRITETHEWIFICHARACTERLINUXBASEDDRIVE,HOWTOUSEARMPERIPHERALSWIFIMODULEONROGUEAPDETECTIONANDALARMSELECTTHEARMPLATFORM,FORARMISAGOODPORTABLEEMBEDDEDDEVICESBASICALLYOCCUPIEDTHEHANDSETMARKETLINUXISANOPENSOURCESYSTEMANDSUPPORTSALMOSTALLCPUS,TRANSPLANTATIONISQUITEGOOD,ISVERYCONDUCIVETOTHEDEVELOPMENT,GREATLYSHORTENTHEDEVELOPMENTCYCLEKEYWORDSWIRELESSLAN;EMBEDDEDLINUX;ARM;ROGUEAP目录1引言111背景112目的及意义113主要研究内容42系统开发平台521系统平台选择522嵌入式LINUX平台搭建63系统分析与设计1431系统设计思路1432系统需求分析1633系统设计174系统功能实现1841文件功能模块分析1842传输与接收功能模块分析2043报警功能模块分析2344系统总体功能分析255系统测试3251文件获取测试3252文件发送测试3353文件接收测试3354目标区域IP显示测试3455短信报警测试346总结与展望35致谢36参考文献3711引言11背景20世纪90年代以来,网络技术的应用直接影响着亿万人的生活方式。尤其在近几年,随着智能化、信息化的快速发展,物联网技术应用于各个领域,其中对信息的传输以射频技术为主,无线局域网络WLAN是相当便利的数据传输系统,它利用射频技术,取代铜线所构成的有线网络,能够利用简单的存取架构,使用户透过它可以达到“信息随身化、便利走天下”的境界,所以WLAN技术无疑是一个比较理想的选择。如今,在大规模的企业、学校中,使用无线局域网技术解决数据传输的问题,相比于其他方案有着巨大的优势,导致其迅速得到普及。WIRELESSLAN的优点安装部署灵活性好;即插即用,接入方便;自由移动;应用前景广。最有前景的INTERNET接入网技术2005年,有超过80的笔记本电脑配有WLAN接口;ISP在机场、大型会议中心、商业中心、甚至咖啡店等热点场所提供WLAN接入;很多城市正在大力建设无线城市,在大力普及WLAN。像杭州,2012年已经在很多地段覆盖了免费的WIFI,人们可以很方便的通过手持终端上网。图11传统的WLAN的架构12目的及意义随着无线局域网WLAN广泛应用于大学校园、各类展览会、公司内部乃至2家用网络等场合。由于无线网络的特殊性,攻击者无须物理连线就可以对其进行攻击,使WLAN的安全问题显得尤为突出。对于大部分公司来说,WLAN通常置于防火墙后,黑客一旦攻破防火墙就能以此为跳板,攻击其他内部网络,使防火墙形同虚设。与此同时,由于WLAN国家标准WAPI的无限期推迟,IEEE80211网络仍将为市场的主角,但因其安全认证机制存在极大安全隐患,无疑让WLAN的安全状况雪上加霜。WLAN的流行主要是由于它为使用者带来方便,然而正是这种便利性引出了有线网络中不存在的安全问题。比如,攻击者无须物理连线就可以连接网络,而且任何人都可以利用设备窃听到射频载波传输的广播数据包。因此,着重考虑的安全问题主要有针对IEEE80211网络采用的有线等效保密协议WEP存在的漏洞,进行破解攻击。恶意的媒体访问控制MAC地址伪装,这种攻击在有线网中同样存在。对于含AP模式,攻击者只要接入非授权的假冒AP,就可登录欺骗合法用户。攻击者可能对AP进行泛洪攻击,使AP拒绝服务,这是一种后果严重的攻击方式。此外,对移动自组网模式内的某个节点进行攻击,让它不停地提供服务或进行数据包转发,使其能源耗尽而不能继续工作,通常称为能源消耗攻击。非法AP是指未经授权而接入有线网络的80211无线接入点WIRELESSACCESSPOINT。其大多数为内部人员所安装的未经授权的AP。非法AP一般不为网络管理员所知,而且往往没有进行任何安全策略的配置,不遵守本地网络中的安全协议,这就导致无线网络毫无安全性可言,极易受到攻击。具体的,其危害性主要表现在如下几个方面1恶意攻击者黑客在攻击无线网络时无需获得有线网络物理通道,也无需通过受防火墙和网关保护的企业局域网网络边界,它可直接通过接入企业网络内部任何一个未设置安全策略的AP或安全性较弱的AP进入内部网络。这样,他们就与那些已授权使用内部网络的合法用户一样,对整个网络有一定的访问权限。入侵者能够做合法用户能做的任何事情,从而乘机进入企业有线网络,窃取企业机密信息或发起恶意攻击。考虑到无线局域网如此脆弱的安全性,许多涉及机密信息的关键机构或金融公司都不在其内部网络中铺设无线局域网,并且会禁用无线局域网。然而,即使在这样的网络中,非法设备也是一个需要机构内部网络管理人员重视的问题,例如由内部人员安装的未经授权的AP,虽然他们是没有恶意企图的,但却在无意中为恶意攻击者访问内部网络提供了有利机会,这对企业网安全必造成严重的威胁。2恶意窃听者非法AP的另一个威胁来自于恶意窃听者。考虑一个已授权的无线终端周围3存在非法AP的情况,由于80211无线网卡在自动选择AP时,会选择在其信号覆盖范围内信号强度最强的AP接入,因而,当非法AP的信号强度超过这个无线终端周围的已授权AP时,该无线终端就可能会在用户并不知晓的情况下自动切换至非法AP。由于非法AP大多都是没有进行任何安全配置的,机构内部人员通过该AP通信时,其信息皆以明文传输。此时,当网络中存在恶意窃听者时,其敏感信息将因明文传输而泄密,这对于企业和个人的信息安全来说都是非常危险的。3信号干扰非法AP使用者在安装非法AP时,一般是不会考虑其所在信道是否与相邻AP存在频谱相交的问题的,然而,在无线局域网中,如果距离较近的相邻AP各自所在信道是相交信道时,就会发生频谱干扰,WLAN中的通信质量随之降低。因而,非法AP的存在很可能对与之相邻的己授权AP的服务质量造成不良影响,干扰正常通信。由以上的分析可以看出,非法AP现已成为无线安全中的重要问题。为了更好的保护无线局域网的网络安全,非法AP检测已成为网络管理的重要内容之一,并得到了学术界和工业界的重视,提出了一些检测方法。图12非法AP示例图当企业内部网络中有用户未经授权私自安装无线接入点,即非法AP时,就会在无意中为恶意攻击者提供入侵企业内部网络的后门,给内网安全造成极大的威胁。为了使无线局域网远离非授权访问,非法AP检测已成为机构内网管理的重要内容之一。由此可见,检测出无线局域网中的非授权AP是保证这个无线局域网内部用户能够进行安全的数据通信的必要前提。4图13分布式入侵检测系统13主要研究内容131嵌入式LINUX的移植通过搭建ARM嵌入式LINUX系统,学习嵌入式LINUX开发的流程,了解并且编写硬件相关驱动代码,深入了解LINUX内核相关知识,学习安装交叉编译工具,并且按照项目要求配置、裁剪、编译内核,将二进制ZIMAGE文件烧写到ARM11开发板上,完成开发平台的搭建。1驱动程序的编写由于本项目要使用到WIFI模块,要编写其驱动程序,方便系统在软件层次就可以操作此模块。2内核的配置将编写好的驱动程序添加到LINUX内核源代码中,配置内核。3内核的编译与烧写到开发板。安装好交叉编译工具,修改相关的配置,编译内核,然后将其移植到ARM11开发板上。132非法ACCESSPOINT的检测1通过侦听数据包来检测所有正在使用的AP的ESSID和STA。2发现AP后,根据合法AP认证列表(ACL)判断该AP是否合法,如果列表中没有列出该新检测到的AP的相关参数,就可以判定是非法AP。3检测到非法AP,得到非法AP列表。133SOCKET文件传输建立SOCKET连接,将此文件传输服务器控制台,启动报警模块,通知管理5员处理相关问题。2系统开发平台21系统平台选择说起嵌入式平台,目前主流的有ARM和FPGA。FPGA主要用于逻辑控制领域,实现硬件上对数据的处理,包括数据加密解密、数据包的过滤、图像处理等等,可以搭载软核如NIOS、MICROBLAZE、OPENRISC等来实现比较简单的系统控制。但是对于实现较为复杂的,系统指令处理速度要求比较高的系统,FPGA则达不到要求。ARM处理器是一款哈佛架构RISC的处理器,其低功耗、高性能,集成许多IP核,可以应用于众多领域,使ARM处理器迅速得到普及。最新的CORTEXA系列的芯片,主频可以达到15GHZ以上,满足了许多嵌入式设备对数据处理的要求,ARM的芯片主要包括微处理器、微控制器、DSP、JAVA应用系统、浮点运算处理等等,可以解决众多领域的问题。本次设计采用S3C6410微处理器,由ARM1176处理器,几个多媒体协处理器和各种外设IP组成。ARM1176处理器是通过64位AXI总线连接到几个内存控制器上的。这样做是为了满足带宽需求。它为25G和3G通信服务提供优化的H/W性能,采用了64/32位内部总线架构,该64/32位内部总线结构由AXI、AHB和APB总线组成,大大提升了系统性能。嵌入式操作系统具有通用操作系统的基本特点,但是其有实施高效性、硬件的相关依赖性、软件固态化以及应用的专用性等等较为突出的优点。当今,嵌入式系统所搭载的操作系统平台大致如下(1)WINCE。其是微软开发的一个开放的、可升级的32位嵌入式操作系统,是基于掌上型电脑类的电子设备操作系统。WINCE用户界面很出色,和桌面版的WINDOWS基本一致。WINCE具有模块化、结构化和基于WIN32应用程序接口以及与处理器无关等特点。WINCE上编程可以像WINDOWS上一样,基本没差别。最新版本是WINCE70是微软NET最新家庭成员,可以使NET开发者快速地进行开发。(2)VXWORK。其是美国WINDRIVER公司开发的一种嵌入式实时操作系统RTOS,是嵌入式开发环境的关键组成部分。良好的持续发展能力、高性能的内核以及友好的用户开发环境,在嵌入式实时操作系统领域占有一席之地。凭借其优良的性能被应用于军事、航空航天领域。然而其开发成本、维护成本过高,支持的硬件数量有限。6(3)LINUX。其最早创立于1991年,短短十几年的发展。LINUX已经成为一个功能强大、稳定性可靠的操作系统。嵌入式LINUX是标准LINUX在嵌入式系统上的移植,继承了标准LINUX的优良特征,是近年来发展的热点。嵌入式LINUX的热点有开放源代码。LINUX最大的特点是源代码公开并且遵循GPL协议,人们可以任意修改以满足自己的应用。其大量优秀的开发工具,同样遵循GPL协议。高性能、可裁剪的内核。内核设计十分优秀,运行时所需的资源少,而且稳定有效。独特的模块机制可以将用户的模块动态地插入内核或者卸载,能够应付复杂的任务需求。优秀的网络功能。LINUX支持所有标准的网络协议,并且很容易移植到目标系统。基于LINUX系统的众多优势,本次设计采用LINUX系统。22嵌入式LINUX平台搭建221交叉编译环境的搭建交叉编译的任务主要是在一个平台上生成可以在另一个平台上执行的程序代码。不同的CPU需要有不同的编译器。交叉编译如同翻译一样,它可以把相同的程序代码翻译成不同的CPU对应语言。图21交叉编译模型本文使用的主机操作系统是CENTOS,先安装标准的C开发环境,由于LINUX安装默认是不安装的,所以需要先安装一下,终端输入命令YUMINSTALLGCCGLIBGCC1LIBGMAKEGDB本文使用的是开发板自带的交叉编译器,即CROSS432交叉编译器,只需将ARMLINUX432BARBZ2解压TARXVJFARMLINUX432BARBZ2创建目录/USR/LOCAL/ARM并将解压好的CROSS432拷贝到此目录下。7MKDIR/USR/LOCAL/ARMCPCROSS432/USR/LOCAL/ARMR设置PATH环境变量,使其可以找到其交叉编译工具链,然后运行VI/BASHRC添加如下内容EXPORTPATH/USR/LOCAL/ARMARMLINUX334/BINPATH。执行SOURCE/BASHRC。至此交叉编译环境搭建完毕。可以在终端中输入ARMLINUXGCC432V查看所安装的交叉编译器是否安装及其查看其版本。图22交叉编译器信息222主机控制目标板的方式控制口采用串口,下载安装CKERMIT工具。在根目录下建立配置文件KERMRC。内容如下SETLINE/DEV/TTYUSB0SETSPEED115200SETCARRIERWATCHOFFSETHANDSHAKENONESETFLOWCONTROLNONEROBUSTSETFILETYPEBINSETFILENAMELITSETRECPACK1000SETSENDPACK1000SETWINDOW5保存退出,重新启动终端,以根用户运行KERMIT,就可以自动与目标板连接。8图23串口信息223UBOOT的配置与编译UBOOT,全称UNIVERSALBOOTLOADER,是遵循GPL条款的开放源代码项目。从FADSROM、8XXROM、PPCBOOT逐步发展演化而来。其源代码目录、编译形式与LINUX和内核很相似,其实,很多UBOOT源码就是相应的LINUX内核源代码的简化,尤其是一些设备的驱动。UBOOT源代码可以从SOURCEFORGE获得。UBOOT的优势开放源码;支持多种嵌入式操作系统内核,如LINUX、NETBSD,VXWORKS,QNX,RTEMS,ARTOS,LYNXOS;支持多个处理器系列,如POWERPC、ARM、X86、MIPS、XSCALE;较高的可靠性和稳定性;高度灵活的功能设置,适合UBOOT调试、操作系统不同引导要求、产品发布等;丰富的设备驱动源码,如串口、以太网、SDRAM、FLASH、LCD、NVRAM、EEPROM、RTC、键盘等;较为丰富的开发调试文档与强大的网络技术支持;本文的目标板是S3C6410,要对下载的UBOOT源码UBOOT201003TARBZ2做一定的修改。具体步骤如下1解压后进入BOARD/SAMSUN目录下,建立新文件夹SMDK6410,将SMDK6400里的所有文件复制到SMDK6410中,进入SMDK6410文件夹将SMDK6400C更名为SMDK6410C,并且打开此文件,将里面的6400全部改为6410。打开MAKFILE,将里面的6400改为6410。2进入到NAND_SPL/BOARD/SANSUNG/,新建SMDK6410,复制SMDK6400内容到SMDK6410,将MAKEFILE文件里面的6400全部改成6410。3进入到UBOOT201003根目录,打开MAKEFILE,将CROSS_COMPILE改成为CROSS_COMPILEARMLINUX,然后替换6400为6410。4修改启动代码。打开CPU/ARM1176/STARTS,根据芯片文档,在对应的位置进行修改。5修改INCLUDE/CONFIGS/SMDK6410H添加IFDEFCONFIG_ENABLE_MMUDEFINEVIRT_TO_PHYSXVIRT_TO_PHY_SMDK6410XELSEDEFINEVIRT_TO_PHYSXXDEFINENAND_DISABLE_CENFCONT_REG|1DRVNAMEDRVNAMEDRVDRVBUS/设置DRIVER的BUS为SDIO_BUS_TYPERETURNDRIVER_REGISTERSTATICSTRUCTBUS_TYPESDIO_BUS_TYPENAME“SDIO“,DEV_ATTRSSDIO_DEV_ATTRS,MATCHSDIO_BUS_MATCH,UEVENTSDIO_BUS_UEVENT,PROBESDIO_BUS_PROBE,REMOVESDIO_BUS_REMOVE,PMSDIO_PM_OPS_PTR,STATICSTRUCTBUS_TYPESDIO_BUS_TYPENAME“SDIO“,DEV_ATTRSSDIO_DEV_ATTRS,MATCHSDIO_BUS_MATCH,UEVENTSDIO_BUS_UEVENT,PROBESDIO_BUS_PROBE,REMOVESDIO_BUS_REMOVE,PMSDIO_PM_OPS_PTR,SDIO设备驱动移植1修改SD卡驱动使内核支持SD卡修改文件ARCH/ARM/MACHS3C6410/MACHSMDK6410CSTATICSTRUCTPLATFORM_DEVICESMDK6410_DEVICES_INITDATA2修改ARCH/ARM/MACHS3C6410/MACHSMDK6410C添加INCLUDEINCLUDE13INCLUDESTATICSTRUCTS3C64XX_MCI_PDATASMDK6410_CFG_INITDATAGPIO_DETECTS3C6410_GPG10,SET_POWERNULL,OCR_AVAILMMC_VDD_32_33,3在SMDK6410_INIT中添加S3C64XX_MCI_SET_PLATDATA配置内核使其支持MARVEL无线SDIOWIFI。进入LINUX内核根文件,运行MAKEMENUCONFIG,得到图形界面,按照下面的修改并保存。DEVICEDRIVERSNETWORKDEVICESUPPORTWIRELESSLANMARWELL8XXXLIBERTASWLANDRIVERSUPPORTMARWELLLIBERTAS8385/8686/8688SDIO80211B/GCARDSNETWORKINGSUPPORTWIRELESSCFG80211WIRELESSCONFIGUREATIONAPICOMMONROUTINESFORIEEE80211DRIVERS225LINUX内核的编译按照项目的需求,定制内核。本项目主要用到无线WIFI与以太网相关功能,在此基础上,裁剪内核,节省内存资源。修改内核目录树根下的MAKEFILE,指明处理器类型与交叉编译器。找到此位置修改MAKEFILE中的内容如下ARCHARMCROSSCOMPILEARMLINUX保存退出,执行MAKEZIMAGE,大概经过十分钟左右就可以完成内核的编译,在根目录下会有ZIMAGE镜像文件生成。下载到目标板上,启动的过程中,可以看到SDIOWIFI加载的相关信息。图24SDIO_WIFI驱动加载信息14226根文件系统制作理论上说一个嵌入式设备如果内核能够运行起来,如果不需要运行用户进程,不需要文件系统。文件系统简单的说就是一种目录结构,由于LINUX的设备在系统中是以文件的形式存在,将这些文件进行分类管理以及提供和内核交互的接口,就形成一定的目录结构也就是文件系统,文件系统是为用户反映系统的一种形式,为用户提供一个检测控制系统的接口。CRAMFS是LINUX的创始人LINUSTORVALDS参与开发的一种只读的压缩文件系统。它也基于MTD驱动程序。CRAMFS文件系统以压缩方式存储,在运行时解压缩,所以不支持应用程序以XIP方式运行,所有的应用程序要求被拷到RAM里去运行,但这并不代表比RAMFS需求的RAM空间要大一点,因为CRAMFS是采用分页压缩的方式存放档案,在读取档案时,不会一下子就耗用过多的内存空间,只针对目前实际读取的部分分配内存,尚没有读取的部分不分配内存空间,当我们读取的档案不在内存时,CRAMFS文件系统自动计算压缩后的资料所存的位置,再即时解压缩到RAM中。其制作工具可以从HTTP/SOURCEFORGENET/PROJECTS/CRAMFS/上下载,编译后可以获得MKCRAMFS和CRAMFSCK两个工具。下载交叉编译BUSYBOX形成ROOTFS,执行/MKCRAMFSROOTFS/ROOTFSCRAMFS可以生成CRAMFS文件系统153系统分析与设计31系统设计思路在开发此系统之前,需要了解的是IEEE80211B无线局域网协议,了解无线网络中数据包的发送与接收的过程。IEEE80211B无线局域网与我们熟悉的IEEE8023以太网的原理很类似,都是采用载波侦听的方式来控制网络中信息的传送。不同之处是以太网采用的是CSMA/CD(载波侦听/冲突检测)技术,网络上所有工作站都侦听网络中有无信息发送,当发现网络空闲时即发出自己的信息,如同抢答一样,只能有一台工作站抢到发言权,而其余工作站需要继续等待。如果一旦有两台以上的工作站同时发出信息,则网络中会发生冲突,冲突后这些冲突信息都会丢失,各工作站则将继续抢夺发言权。而80211B无线局域网则引进了冲突避免技术,从而避免了网络中冲突的发生,可以大幅度提高网络效率。WIFI是一种可以将个人电脑、手持设备(如PDA、手机)等终端以无线方式互相连接的技术。WIFI是一个无线网路通信技术的品牌,由WIFI联盟WIFIALLIANCE所持有。目的是改善基于IEEE80211标准的无线网路产品之间的互通性。此次毕业设计所要做的是一个基于WIFI项目。这需要我们去了解WIFI的架构及其工作原理。1WIFI网络结构站点(STATION),网络最基本的组成部分。基本服务单元(BASICSERVICESET,BSS)。网络最基本的服务单元。最简单的服务单元可以只由两个站点组成。站点可以动态的联结(ASSOCIATE)到基本服务单元中。分配系统(DISTRIBUTIONSYSTEM,DS)。分配系统用于连接不同的基本服务单元。分配系统使用的媒介(MEDIUM)逻辑上和基本服务单元使用的媒介是截然分开的,尽管它们物理上可能会是同一个媒介,例如同一个无线频段。接入点(ACCESSPOINT,AP)。接入点即有普通站点的身份,又有接入到分配系统的功能。扩展服务单元(EXTENDEDSERVICESET,ESS)。由分配系统和基本服务单元组合而成。这种组合是逻辑上,并非物理上的不同的基本服务单元物有可能在地理位置相去甚远。分配系统也可以使用各种各样的技术。关口(PORTAL),也是一个逻辑成分。用于将无线局域网和有线局域网或其它网络联系起来。16这儿有3种媒介,站点使用的无线的媒介,分配系统使用的媒介,以及和无线局域网集成一起的其它局域网使用的媒介。物理上它们可能互相重迭。IEEE80211只负责在站点使用的无线的媒介上的寻址(ADDRESSING)。分配系统和其它局域网的寻址不属无线局域网的范围。IEEE80211没有具体定义分配系统,只是定义了分配系统应该提供的服务(SERVICE)。整个无线局域网定义了9种服务5种服务属于分配系统的任务,分别为,联接(ASSOCIATION)、结束联接(DIASSOCIATION)、分配(DISTRIBUTION)、集成(INTEGRATION)、再联接(REASSOCIATION)。4种服务属于站点的任务,分别为,鉴权(AUTHENTICATION)、结束鉴权(DEAUTHENTICATION)、隐私(PRIVACY)、MAC数据传输(MSDUDELIVERY)。2WIFI工作原理WIFI的设置至少需要一个ACCESSPOINT(AP)和一个或一个以上的CLIENT(HI)。AP每100MS将SSID(SERVICESETIDENTIFIER)经由BEACONS(信号台)封包广播一次,BEACONS封包的传输速率是1MBIT/S,并且长度相当的短,所以这个广播动作对网络效能的影响不大。因为WIFI规定的最低传输速率是1MBIT/S,所以确保所有的WIFICLIENT端都能收到这个SSID广播封包,CLIENT可以借此决定是否要和这一个SSID的AP连线。使用者可以设定要连线到哪一个SSID。作为一个WIFI检测设备。首先,应该要使WIFI设备正常工作,这一点通过对其驱动的编写与编译就可以实现,开机时加载无线网卡就可以实现。其次,要对所检测的区域实现实时监控,检测出非法AP写入特定的文件。再次,无线接入点检测系统与服务器建立SOCKET连接,将无线接入点检测系统所得到的非法AP列表文件,还有所有的AP以及它们的MAC地址文件,通过有线网络传输到服务器。最后,作为整个系统的附加功能,服务器接收到非法AP列表文件、所有的AP以及MAC地址文件这两文件后,发送报警短信给管理员,通知管理员启动相应的应急方案。综合以上各项的了解与分析后,在设计必须着重考虑扫描、传输、报警各个部分的协调关系,保证系统的稳定运行。32系统需求分析信息安全方面的产品设计应该着重于实践,仔细观察以实际生活中,各项技术所暴露出来的BUG及其危害。从其中发掘出商业信息,按照社会的需求开始系统的设计,初步达到解决这一问题,在后期暴露的问题,可以通过对系统进行功能的添加与升级,解决BUG。本次设计总体规划符合我们系统设计定的目标和要求。主要模块功能在一般的WLAN中可以初步实现对非法AP的检测。1780211协议提供的无线安全性能可以很好地抵御一般性网络攻击,但是仍有少数黑客能够入侵无线网络,从而无法充分保护包含敏感数据的网络。下面将对软件功能的每一部分,做详细的考虑。AP扫描检测部分,我们准备实现三部分功能。第一步,扫描并且记录整个区域所有AP及其详细的信息。第二步,删除文件中的一些内容,只留下有效的ESSID和MAC信息。第三步,把处理过的文件与事先约定好的合法AP列表文件中AP对比,找出其中的非法AP。对于文件传输系统来说,我们采用目前TCP网络通信普遍采用SOCKET机制,通常也称作“套接字“,用于描述IP地址和端口,通过使用套接字来达到进程间通信目的编程就是网络编程。网络编程的工作主要就是使信息在发送端通过规定好的协议进行组装包,在接收端按照规定好的协议把包进行解析,从而获取出对应我们所需要的信息,达到通信的目的。这中间最关键的就是数据包的组装,过滤,捕获和分析,当然最后还需要再做一些处理。因此双方通信采用TCP/IP协议,用IP地址来寻找对方,完成网络编程的各个环节。从而能够使双方能过建立通信。对于短信报警,我们采用的GSM模块是西门子的TC35。GSM模块主要通过UART串口与处理器通信,所以在硬件上只需要将串口的两个引脚与处理器的串口连接,因为LINUX平台都提供有串口驱动,所以只需要编写应用程序访问相应的串口设备,然后通过发送AT指令控制GSM模块即可,就可以将报警信息发送到管理员手机。图31短信模块电路33系统设计系统设计主要采用C与SHELL混编实现。图32所示。18图32系统图1非法AP列表文件的获取本部分的设计,获取AP信息后,对比合法AP列表文件,如果都合法,就一直检测,直到有非法AP存在,进而将非法AP写入文件。2IP地址的正确以及显示连接信息向服务器传输文件之前,先检查服务器IP是否正确,正确后开始连接,连接后显示出检测区域设备的IP地址。3文件的传输整个系统由发送端和接受端组成,其中发送端位于ARM开发板上,接受端位于PC上。发送端创建的SOCKET与接受端的SERVERSOCKET进行交互来实现文件传输。4报警系统在接收到非法AP列表文件后,启动报警机制,发送短信。194系统功能实现41文件功能模块分析图41文件处理模块流程图文件功能模块整个系统主要包括查看设备、检测AP、判断文件、对比文件、文件写入,这五大功能。前两个功能采用LINUX开源项目所维护的WIRELESS_TOOLS。解压源代码,修改MAKEFILE文件中的CCARMLINUXGCC432;ARARMLINUXAR;RANLIBARMLINUXRANLIB,编译结束后就会有IWLIST、IWCONFIG、IWPRIV等等几个有关无线的工具,本次设计主要使用的是IWLIST。查看其源代码可知道其用法大概如下IWLIST网卡必要参数。其中必要的参数有SCANNING搜索当前无线网络;FREQUEN显示频道信息;RATE显示连接速度;POWER显示电源模式;TXPOWER显示功耗;RETRY显示重试连接次数网络不稳定查看;AP显示热点信息接下来直接使用SHELL脚本调用IWLIST命令。/BIN/BASH20IWLISTWLAN0SCANNINGTMPTXTSLEEP1IFLSLTMPTXT|AWKPRINT5EQ0THENECHO空ELSEECHO非空FI使用SHELL将扫描到的所有AP信息写入TMPTXT文件中,再采用正则表达式判断文件是否为空。完成上面的步骤后,如果获取了非空的TMPTXT,接下来就要对文件的内容进行处理了,写入TMPTXT文件的内容一般如下WLAN0SCANCOMPLETEDCELL01ADDRESS0019C653B9CEESSID“RATLINUX“MODEMASTERCHANNEL2FREQUENCY2417GHZCHANNEL2QUALITY11/100SIGNALLEVEL66/100ENCRYPTIONKEYONBITRATES1MB/S2MB/S55MB/S11MB/S6MB/S9MB/S12MB/S18MB/S24MB/S36MB/S48MB/S54MB/SEXTRATSF000000056306469FEXTRALASTBEACON1065MSAGO/文件中其他AP的内容此处省略可以明显地看到,此文件中含有大量的没有必要的信息,为论文提高系统运行的速度,有必要对此文件进行一定的处理。继续采用SHELL进行处理AWK/CELL/,/ESSID/TMPTXTAP_LISTTXT以上命令可以实现只要AP的ESSID和MAC地址信息并且写入AP_LISTTXT接下来要实现AP_LISTTXT文件与合法AP文件的对比,找出其中的非法AP并且写入ROGUETXT文件中。代码如下SORTAP_LISTTXTAP_TMP1TXT/对文件内容进行排序SORTLEGALTXTAP_TMP2TXTUNIQAP_TMP1TXTAP_SEARCH_LISTTXT/删除其中重复内容的行COMM1AP_TMP2TXTAP_SEARCH_LISTTXTAP_TMP3TXT/对比两个文件并/且不出现第一个文件中的内容21SEDE/CHINANET/DAP_TMP3TXTAP_TMP4TXTSEDE/CMCC/DAP_TMP4TXTAP_TMP5TXTSEDE/CMCCEDU/DAP_TMP5TXTAP_TMP6TXTSEDE/HDUSEC/DAP_TMP6TXTAP_TMP7TXTSEDE/HDU_WLAN/DAP_TMP7TXTROGUE_APTXT/把非法AP写入ROGUE_APTXTRMRFAP_TMPAP_LIST_TMPAP_LIST_FINALTXTTMPTXTAP_SEARCH_LISTTXT/删除中/间的临时文件SLEEP2IFTESTSROGUE_APTXTTHEN/检测ROGUE_APTXT是否为空EXIT0/非空设置环境变量的值为0ELSEEXIT1/空设置环境变量的值为1FI经过以上这几步,基本上可以实现获取非法AP文件列表以及所检测范围内的所有AP的MAC地址信息,为后面的控制做铺垫。42传输与接收功能模块分析SOCKET接口是TCP/IP网络的API,SOCKET接口定义了许多函数或例程,程序员可以用它们来开发TCP/IP网络上的应用程序。要学INTERNET上的TCP/IP网络编程,必须理解SOCKET接口。SOCKET接口设计者最先是将接口放在UNIX操作系统里面的。如果了解UNIX系统的输入和输出的话,就很容易了解SOCKET了。网络的SOCKET数据传输是一种特殊的I/O,SOCKET也是一种文件描述符。SOCKET也具有一个类似于打开文件的函数调用SOCKET,该函数返回一个整型的SOCKET描述符,随后的连接建立、数据传输等操作都是通过该SOCKET实现的。常用的SOCKET类型有两种流式SOCKET(SOCK_STREAM)和数据报式SOCKET(SOCK_DGRAM)。流式是一种面向连接的SOCKET,针对于面向连接的TCP服务应用;数据报式SOCKET是一种无连接的SOCKET,对应于无连接的UDP服务应用。用到的部分函数如下1为了建立SOCKET,程序调用SOCKET函数,该函数返回一个类似于文件描述符的句柄。原型为INTSOCKETINTDOMAIN,INTTYPE,INTPROTOCOLDOMAIN指明所使用的协议族,通常为PF_INET,表示互联网协议族(TCP/IP协议族);TYPE参数指定SOCKET的类型SOCK_STREAM或SOCK_DGRAM,SOCKET接口还定义了原始SOCKET(SOCK_RAW),允许程序使用低层协议;PROTOCOL通常赋值“0“。222通过SOCKET调用返回一个SOCKET描述符后,在使用SOCKET进行网络传输以前,必须配置该SOCKET。面向连接的SOCKET客户端通过调用CONNECT函数在SOCKET数据结构中保存本地和远端信息。无连接SOCKET的客户端和服务端以及面向连接SOCKET的服务端通过调用BIND函数来配置本地信息。BIND函数将SOCKET与本机上的一个端口相关联,随后你就可以在该端口监听服务请求。3面向连接的客户程序使用CONNECT函数来配置SOCKET并与远端服务器建立一个TCP连接。LISTEN函数使SOCKET处于被动的监听模式,并为该SOCKET建立一个输入数据队列,将到达的服务请求保存在此队列中,直到程序处理它们。如果一个服务请求到来时,输入队列已满,该SOCKET将拒绝连接请求,客户将收到一个出错信息。ACCEPT函数让服务器接收客户的连接请求,在建立好输入队列后,服务器就调用ACCEPT函数,然后睡眠并等待客户的连接请求。4SEND和RECV这两个函数用于面向连接的SOCKET上进行数据传输。SEND函数返回实际上发送出的字节数,在程序中应将SEND的返回值与欲发送的字节数进行比较。SENDTO和RECVFROM用于在无连接的数据报SOCKET方式下进行数据传输。5当所有的数据操作结束以后,你可以调用CLOSE函数来释放该SOCKET,从而停止在该SOCKET上的任何数据操作CLOSESOCKFD你也可以调用SHUTDOWN函数来关闭该SOCKET。本次文件的传输与接收程序设计流程如下图所示。23图42传输与接收图客户端SOCKET建立以及文件传输,在源代码目录/MYCODE/FILE_CHECK/NET_SENTC中部分代码如下STRUCTSOCKADDR_INCLIENT_ADDRBZEROCLIENT_ADDRSIN_FAMILYAF_INETCLIENT_ADDRSIN_ADDRS_ADDRHTONSINADDR_ANYCLIENT_ADDRSIN_PORTHTONS0INTCLIENT_SOCKETSOCKETAF_INET,SOCK_STREAM,0IFCLIENT_SOCKET0PRINTF“LENGSIZEDN“,LENGSIZE24IFSENDCLIENT_SOCKET,BUFFER,LENGSIZE,0/中间代码省略INTMAIN/STRUCTTERMIOSOLD,NEWTERINTFDCHARNUM“管理员手机号码“FDOPENUART0_DEV,O_RDWR|O_NOCTTYIFFD8由此可见,当子进程正常结束时,返回值保存在STATUS的倒数第二个字节里,此时最低字节里的值应为0;当子进程被信号终止时,对应的信号的类型就保存在STATUS的最低字节里。在本次设计中相关代码为INCLUDEINCLUDE/DEFINEFALSE1DEFINETRUE1CHARBUFNULLINTMAIN/WHILEFLAGFALSEPRINTF“TSTARTINGCHECKAPSNN“SPRINTFCMD,“/WLANSH“,BUFINTSTATUSSYSTEMCMDPRINTF“TCHECKAPSOKNN“IFWEXITSTATUSSTATUS1/判断子进程退出时的返回值FLAGFALSEPRINTF“TTHEAPLISTHASNTGOT,WEARETRYINGNN“ELSEIFWEXITSTATUSSTATUS0FLAGTRUEPRINTF“TFINDFILESNN“29BREAKCOUNTIFCOUNT20SLEEP1COUNT0RETURN0SYSTEM会调用FORK产生子进程,由子进程来调用/BIN/SHCSTRING来执行参数STRING字符串所代表的命令,此命令执行完后随即返回原调用的进程。在调用SYSTEM期间SIGCHLD信号会被暂时搁置,SIGINT和SIGQUIT信号则会被忽略。本程序中SYSTEM函数执行WLANSH(可参考本章第一节的内容)脚本后,通过WEXITSTATUSSTATUS获取子进程中EXIT的返回值,从而达到判断非空的文件是否获得。442文件的发送采用主函数读入参数,再调用SOCKET程序实现文件的传输。部分代码如下INTMAININTARGC,CHARARGVIFARGC2PRINTF“USAGE/SFILENAMEN“,ARGV0EXIT1/SOCKET文件传输RETURN0程序运行时,主函数读入可执行程序名和要发送的文件名,如果少于2个,则提示错误。此程序用于文件的发送。编译成功后,在SENDC程序中通过SYSTEM函数调用此程序,代码如下INCLUDE30INCLUDEINCLUDE/DEFINECMD_BUF100CHARSTR120“ROGUE_APTXT“CHARSTR220“LOGTXT“CHARCMDCMD_BUF0CHARBUFNULLINTMAINSPRINTFCMD,“/CHECK“,BUFSYSTEMCMDSPRINTFCMD,“/NET_SENDS“,STR1SYSTEMCMDPRINTF“TTSENDROGUE_APTXTOKN“/SLEEP3SPRINTFCMD,“/NET_SENDS“,STR2SYSTEMCMDPRINTF“TTSENDLOGTXTOKN“RETURN0完成以上程序后,编写MAKEFILE文件,实现对程序的快速编译,需要注意的是命令行必须以TAB开始,MAKEFILE文件的代码如下CCARMLINUXGCC432FILEFILE_CHECKCSENDCALLFILECCFILE_CHECKCOCHECKCCNET_SENTCONET_SENDCCSENDCOSENDDISTCLEANRMRFSENDCHECKLOGTXTROGUE_APTXTCLEANRMRFLOGTXTROGUE_APTXTTMP443文件的接收以及短信报警31接收部分持续监听客户端发过来的请求,直到接收到文件后才推出,并且置返回值。部分代码如下INTFILE_REVCHARSTR/WHILE1STRUCTSOCKADDR_INCLIENT_ADDRSOCKLEN_TLENGTHSIZEOFCLIENT_ADDRINTNEW_SERVER_SOCKETACCEPTSERVER_SOCKET,STRUCTSOCKADDRIFNEW_SERVER_SOCKETINCLUDE/DEFINEUART0_DEV“/DEV/TTYUSB1“DEFINEDELAY_TIME1DEFINEDELAYSLEEPDEFINESTR“WARNINGSOMEROGUEAPSAREFOUND,THELISTANDADDRESSHAVESENDEDTOSERVER“INTMSG_SENDINTFD,CHARNUMINTRETCHARFINAL30,P“R“,CON_STR2“ATCMGS86“STRCPYFINAL,CON_STR2STRCATFINAL,NUMSTRCATFINAL,PIFRETWRITEFD,“ATCSCAR“,90PRINTF“ERRORN“DELAYDELAY_TIMEPRINTF“OKN“IFRETWRITEFD,“ATCMGFR“,90PRINTF“1WRITEERRORN“33DELAYDELAY_TIMEPRINTF“OKN“IFRETWRITEFD,“ATCMGF1R“,100PRINTF“ERRORN“DELAYDELAY_TIMEPRINTF“OKN“;IFRETWRITEFD,FINAL,ST

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论