ARP协议的概念和工作原理对学习网络安全知识的初学者来说是首先遇到的几个重要的知识点之一,其中ARP欺骗技术和及其对策更是学习网络安全中的重点与难点,往往难以一下子掌握这些抽象复杂的机理。因此很有必要用详细介始一下网络安全中的ARP协议和欺骗技术相应的对策。

   一,TCP/IP协议之ARP协议的定义

   ARP协议即地址解析协议Address Resolution Protocol,ARP协议是将IP地址与网络物理地址一一对应的协议。负责IP地址和网卡实体地址(MAC)之间的转换。也就是将网络层(IP层,也就是相当于ISO OSI 的第三层)地址解析为数据连接层(MAC层,也就是相当于ISO OSI的第二层)的MAC地址。如果您对网路七层协定有比较清晰的理解的话应该知道各个层级之间都使用其各自的协定。一张ARP的表,用来支持在MAC地址和IP地址之间的一一对应关系。它提供两者的相互转换。

   二,ARP协议的工作原理

   在以太网(Ethernet)中,一个网络设备要和另一个网络设备进行直接通信,除了知道目标设备的网络层逻辑地址(如IP地址)外,还要知道目标设备的第二层物理地址(MAC地址)。ARP协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行。

   当一个网络设备需要和另一个网络设备通信时,它首先把目标设备的IP地址与自己的子网掩码进行"与"操作,以判断目标设备与自己是否位于同一网段内。如果目标设备在同一网段内,并且源设备没有获得与目标IP地址相对应的MAC地址信息,则源设备以第二层广播的形式(目标MAC地址为全1)发送ARP请求报文,在ARP请求报文中包含了源设备与目标设备的IP地址。同一网段中的所有其他设备都可以收到并分析这个ARP请求报文,如果某设备发现报文中的目标IP地址与自己的IP地址相同,则它向源设备发回ARP响应报文,通过该报文使源设备获得目标设备的MAC地址信息。

   如果目标设备与源设备不在同一网段,则源设备首先把IP分组发向自己的缺省网关(Default Gateway),由缺省网关对该分组进行转发。如果源设备没有关于缺省网关的MAC信息,则它同样通过ARP协议获取缺省网关的MAC地址信息。为了减少广播量,网络设备通过ARP表在缓存中保存IP与MAC地址的映射信息。在一次ARP的请求与响应过程中,通信双方都把对方的MAC地址与IP地址的对应关系保存在各自的ARP表中,以在后续的通信中使用。ARP表使用老化机制,删除在一段时间内没有使用过的IP与MAC地址的映射关系。

   还有当传送过来的包要传向一个LAN的主机时,当它到达网关时,网关要求ARP程序找到物理主机或与IP地址相对应的MAC地址。ARP程序在缓存中寻找,如果找到地址,就提供此地址,以便让此包转换成相应的长度和格式,以传送到此主机。如果未找到,ARP程序就在网上广播一个特殊格式的消息,看哪个机器知道与这个IP地址相关的MAC地址。如果一台机器发现那是自己的IP地址,它就发送回应,这样就指出了相应的地址。ARP程序就更新自己的缓存然后发送此包到回应的MAC地址。因为不同协议的相应处理方法不同,所以有不同网络的地址解析请求。也有反向地址解析协议(RARP)供不知道IP地址的主机从ARP缓存中获得IP地址。

   我们还是来通过实验更加深入直观地了解ARP协议的工作原理吧。我们假设有两台主机:A机的IP地址是192.168.0.1,MAC地址是52-54-ab-27-82-83 。

   B机的IP地址是192.168.0.2,MAC地址是52-54-ab-27-82-84 。

   当主机A想与主机B进行通讯时,A机只知道B机的IP地址是192.168.0.2,当数据包封装到MAC层时他如何知道B

   的MAC地址呢,一般的OS中是这样做的,在OS的内核中保存一分MAC地址表,就是我们一中介始到的。用arp -a就可以看见这个表的内容了,例如:

\   C:/>arp -a

   Interface: 192.168.0.X on Interface 0x1000002

   Internet Address Physical Address Type

   192.168.0.1 52-54-ab-27-82-83 dynamic

   其中表内有IP和MAC地址的对应关系,当要过进行通讯时,系统先查看这个表中是否有相关的表项,如果有就直接使用,如果没有系统就会发出一个ARP请求包,这个包的目的地址为ffffffffffff的广播地址,他的作用就是询问局域网内IP地址为192.168.0.2的主机的MAC地址,就像是A在局域网中发信息找一个IP地址为192.168

   .0.2的主机MAC地址,同样A机把自已的MAC地址告诉出去是52-54-ab-27-82-83 ,随后所有主机都会接收到这个包,但只有IP为192.168.0.2的B才会响应一个ARP应答包给主机A,B机会回信息给A机说他的MAC地址是52-54-ab-27-82-84

   ,好这下主机A就知道B的MAC地址了,于时他就可以封包发送了,同时主机A将B的MAC地址放入ARP缓冲中,隔一定时间就将其删除,确保不断更新。

  注意,在这个过程中,如果主机A在发送ARP请求时,假如该局域网内有一台主机C的IP和A相同,C就会得知有一台主机的IP地址同自已的IP地址相同,于时就蹦出一个IP冲突的对话筐。与ARP相对应的还有一个协议RARP:Reverse

   Address Resolution Protocol,

   反向地址解析协议,该协议主要用于工作站模型动态获取IP的过程中,作用是由MAC地址向服务器取回IP地址。
三,如何实现ARP协议的欺骗技术和相应的对策

   1,ARP协议欺骗技术

   当我们设定一个目标进行ARP欺骗时,也就是把MAC地址通过一主机A发送到主机B上的数据包都变成发送给主机C的了,如果C能够接收到A发送的数据包后,第一步属于嗅探成功了,而对于主机A来目前是不可能意识到这一点,主机C接收到主机A发送给主机B的数据包可没有转交给B。当进行ARP重定向。打开主机C的IP转发功能,A发送过来的数据包,转发给C,好比一个路由器一样。但是这就是ARP协议欺骗真正的一步,假如主机C进行发送ICMP重定向的话就麻烦了,因为他可以直接进行整个包的修改转发,捕获到主机A发送给的数据包,全部进行修改后再转发给主机B,而主机B接收到的数据包完全认为是从主机A发送来的。这样就是主机C进行ARP协议欺骗技术,对于网络安全来是很重要的。当然还可以通过MAC地址进行欺骗的。

   2,ARP协议欺骗技术相应对策

   各种网络安全的对策都是相对的,主要要看网管平时对网络安全的重视性了。下面介始一些相应的对策:

   1) 在系统中建立静态ARP表 ,建立后对本身自已系统影响不大的,对网络影响较大,破坏了动态ARP解析过程。静态ARP协议表不会过期的,我们用“arp -d”命令清除ARP表,即手动删除。但是有的系统的静态ARP表项可以被动态刷新,如Solaris系统,那样的话依靠静态ARP表项并不能对抗ARP欺骗***,相反纵容了ARP欺骗***,因为虚假的静态ARP表项不会自动超时消失。当然, 可以考虑利用cron机制补救之。(增加一个crontab) 为了对抗ARP欺骗***,对于Solaris系统来说,应该结合"禁止相应网络接口做ARP解 析"和"使用静态ARP表"的设置

   2)在相对系统中禁止某个网络接口做ARP解析(对抗ARP欺骗***),可以做静态ARP协议设置(因为对方不会响应ARP请求报文) 如:arp -s XXX.XXX.XX.X 08-00-20-a8-2e-ac

  在绝大多数操作系统如:Unix,BSD,NT等,都可以结合"禁止相应网络 接口做ARP解析"和"使用静态ARP表"的设置来对抗ARP欺骗***。而Linux系统,其静态ARP表项不会被动态刷新,所以不需要"禁止相应网络接口做ARP解析"即可对抗ARP欺骗***。

   结尾:本文还较深入和直观地介绍了ARP协议的基本原理与基本工作过程及ARP欺骗技术。以及其对策,如果你有什么更好的ARP欺骗技术的对策,欢迎交流。谢谢。

转载于:https://blog.51cto.com/wgcys/30103

局域网ARP协议和欺骗技术及其对策相关推荐

  1. 局域网arp攻击_arp欺骗与防御

    ARP,地址解析协议,是根据IP地址获取物理地址的一个TCP/IP协议(数据链路层)ARP协议以广播的方式工作,解析范围只限于本地网络,就是说一台主机只能知道与它处在同一网络中的其他主机的MAC地址a ...

  2. 局域网arp攻击_网络安全基础之ARP攻击和防御

    本文转载于 SegmentFault 社区 作者:吴小风 前言 在看这篇文章之前,请大家先看下交换机的工作原理,不知大家有没有想过数据链路层中头部协议数据帧的目的MAC地址是如何获取的呢?这就是今天的 ...

  3. 局域网arp攻击_一篇文章告诉你,什么是ARP协议与ARP欺骗

    1.什么是ARP协议 ARP协议全程地址解析协议(AddressResolution Protocol,ARP)是在仅知道主机的IP地址时确定其物理地址的一种协议.因IPv4和以太网的广泛应用,其主要 ...

  4. 浅析局域网ARP欺骗导致的信息泄露

    生活中大家一块上网,局域网中总会有抢带宽的,还有故意限制别人带宽的,可能很多人都是受害者,被P2P终结者.聚生网管之类的软件限制过,或许还有人用这个限制过别人.ARP欺骗攻击,貌似很陌生的一个名词,却 ...

  5. 局域网arp攻击_图解ARP协议(三)ARP防御篇-如何揪出“内鬼”并“优雅的还手”...

    一.ARP防御概述 通过之前的文章,我们已经了解了ARP攻击的危害,黑客采用ARP软件进行扫描并发送欺骗应答,同处一个局域网的普通用户就可能遭受断网攻击.流量被限.账号被窃的危险.由于攻击门槛非常低, ...

  6. 浮动IP地址(Float IP)与 ARP欺骗技术

    浮动IP地址: 一个网卡是可以添加多个IP的. 就是多个主机工作在 同一个集群中,即两台主机以上.每台机器除了自己的实IP外,会设置一个浮动IP,浮动IP与主机的服务(HTTP服务/邮箱服务)绑在一起 ...

  7. 网络-ARP协议详解与ARP欺骗(中毒)攻击实战

    目录 简介 ARP报文 ARP流程 四种情况 ARP请求 ARP响应 ARP攻击原理 实战 ARP欺骗 环境 查看arp表 更新攻击机软件 使用ettercap进行攻击 查看劫持到的图片 ARP攻击防 ...

  8. 图解ARP协议(四)代理ARP原理与实践(“善意的欺骗”)

    一.代理ARP概述 我:当电脑要访问互联网上的服务器,目标MAC是什么? 很多小伙伴在刚学习网络协议的时候,经常这样直接回应:不就是服务器的MAC嘛! 这时我会反问:那电脑怎么拿到这个服务器的MAC地 ...

  9. ARP协议以及攻击欺骗和防御

    在网络层中,协议也是分层的,底层协议为上层协议服务,下图表示了网络层各个协议的关系: 这篇文章将详细介绍ARP协议 一.ARP协议 中文名是地址解析协议,使用ARP协议可实现通过IP地址获得对应主机的 ...

最新文章

  1. 1020 Tree Traversals
  2. 理解Android进程创建流程
  3. poj 2388 排序的水题
  4. scss里的继承操作符@extend
  5. [转]项目失败的经验
  6. String path = request.getContextPath(....拼装当前网页的相对路径
  7. linux开启和使用swap
  8. ★LeetCode(39)——组合总和(JavaScript)
  9. Silverlight 游戏开发小技巧:实现街霸4的选人界面
  10. win11开机音乐怎么设置
  11. linux 定位 踩内存_运维常见问题故障定位,这里总结全了!
  12. 简单的Python文件服务器和HTTP POST上传文件C代码
  13. DEAP2.1 使用方法(运筹学)
  14. 跟上Java8 - 日期和时间实用技巧,转自知乎王爵nice
  15. excel宏设置之一键生成多张sheet并写入内容与格式
  16. 一个图形数据维护工具架构设计
  17. 第 11 章 基于小波技术进行图像融合--MATLAB人工智能深度学习模块
  18. 【夜读】一个人保持年轻的5个好习惯
  19. 安卓,Android,Scanner Gun,Barcode Scanner,条码,扫描枪,二维码,键盘模式
  20. 面试考点(二) java基础

热门文章

  1. C++word break断字(基于单词或字符串)(附完整源码)
  2. QT的QOpenGLFunctions类的使用
  3. C++STL的set/ multiset容器
  4. mysql数据库有触发器吗_MySQL数据库之MySQL 触发器实现
  5. python rpc框架-python使用rpc框架gRPC的方法
  6. 3.TF-IDF算法介绍、应用、NLTK实现TF-IDF算法、Sklearn实现TF-IDF算法、算法的不足、算法改进
  7. 30_visdom可视化、TensorboardX及其案例、安装visdom、使用visdom的案例
  8. nginx对https的配置,nginx解决post请求被请求两次的问题
  9. 简单QT应用到通过手写布局实现QT应用
  10. malloc,colloc,realloc内存分配,动态库,静态库的生成与调用