找回密码
 新用户注册
搜索

MAC地址安全性

[复制链接]
行什 发表于 2006-8-25 12:14 | 显示全部楼层 |阅读模式
  关于MAC地址的知识以及MAC地址在实际应用中所涉及到的安全问题

  基础知识

  如今的网络是分层实现的,先设计某个特定功能的模块,然后把模块拼起来组成整个网络。局域网也不例外,一般来说,在组网上我们使用的是IEEE802参考模型,从下至上分为:物理层、媒体接入控制层(MAC),逻辑链路控制层(LLC)等7层。
标识网络中的一台计算机,至少有三种方法,最常用的是域名地址、IP地址和MAC地址,分别对应应用层、网络层、数据链路层。网络管理一般就是在网络层针对IP地址进行管理,但由于一台计算机的IP地址可以由用户自行设定,管理起来相对困难;MAC地址一般不可更改,所以把IP地址同MAC地址组合到一起管理就成为常见的管理方式。

  什么是MAC地址

  MAC地址就是在媒体接入层上使用的地址,也叫物理地址、硬件地址或链路地址,由网络设备制造商生产时写在硬件内部。MAC地址与网络无关,即无论将带有这个地址的硬件(如网卡、集线器、路由器等)接入网络的何处,都有相同的MAC地址,它由厂商写在网卡的BIOS里。MAC地址可采用6字节(48比特)或2字节(16比特)任意一种,但随着局域网规模越来越大,一般都采用6字节的MAC地址。这个48比特都有其规定的意义,前24位是由生产网卡的厂商向IEEE申请的厂商地址,目前的价格是1000美元买一个地址块,后24位由厂商自行分配,这样的分配使得世界上任意一个拥有48位MAC地址的网卡都有唯一的标识。另外,2字节的MAC地址不用网卡厂商申请。

  MAC地址通常表示为12个16进制数,每2个16进制数之间用冒号隔开,如:08:00:20:0A:8C:6D就是一个MAC地址,其中前6位16进制数08:00:20代表网络硬件制造商的编号,它由IEEE分配,而后3位16进制数0A:8C:6D代表该制造商所制造的某个网络产品(如网卡)的系列号。每个网络制造商必须确保它所制造的每个以太网设备都具有相同的前三字节以及不同的后三个字节。这样就可保证世界上每个以太网设备都具有唯一的MAC地址。

  IP地址与MAC地址的区别

  IP地址基于逻辑,比较灵活,不受硬件限制,也容易记忆。MAC地址在一定程度上与硬件一致,基于物理,能够标识具体。这两种地址各有好处,使用时也因条件而采取不同的地址。

  为什么要用到MAC地址

  这是由组网方式决定的,如今比较流行的接入Internet的方式是把主机通过局域网组织在一起,然后再通过交换机和Internet相连接。这样一来就出现了如何区分具体用户,防止盗用的问题。由于IP只是逻辑上标识,任何人都能随意修改,因此不能用来标识用户;而MAC地址则不然,它是固化在网卡里面的。从理论上讲,除非盗来硬件(网卡),否则是没有办法冒名顶替的(注意:其实也有盗用的方法)。

  基于MAC地址的这种特点,局域网采用了用MAC地址来标识具体用户的方法。具体实现方式为,在交换机内部通过“表”的方式把MAC地址和IP地址一一对应,也就是所说的IP、MAC绑定。

  具体的通信方式:接收过程中,当有发给本地局域网内一台主机的数据包时,三层交换机接收下来,然后把数据包中的IP地址按照“表”中的对应关系映射成MAC地址,转发到对应的MAC地址的主机上(注意这是三层交换机的工作方式,普通的交换机只根据MAC地址直接转发网络包)。这样一来,即使某台主机盗用了这个IP地址,但由于他没有这个MAC地址,因此也不会收到数据包。发送过程和接收过程类似,不多叙述。

  综上可知,只有IP而没有对应的MAC地址在这种局域网内是不能上网的,这就解决了IP盗用问题。

  怎样获得自己的MAC地址

  MAC地址固化在网卡中的BIOS中,可以通过DOS命令取得。Win9x用户可以使用winipcfg命令,Win2000/XP用户可以使用ipconfig/all命令,其中用16进制表示的12位数就是MAC地址。

  MAC地址涉及到的安全问题

  前面我们说过,这种标识方式只是基于MAC地址的,如果有人能够更改MAC地址,就可以盗用IP免费上网了,目前网上针对小区宽带的盗用MAC地址免费上网方式就是来自这种思路。如果想盗用别人的IP地址,除了IP地址还要知道对应的MAC地址。举个例子,获得局域网内某台主机的MAC地址,比如想得到局域网内名为TARGET主机的MAC地址,先用PING命令:PING TARGET,这样在我们主机上面的ARP表的缓存中就会留下目标地址和MAC映射的记录,然后通过ARP A命令来查询ARP表,这样就得到了指定主机的MAC地址(图2)。最后用ARP -s IP 网卡MAC地址,命令把网关的IP地址和它的MAC地址映射起来就可以了。

  如果要得到其它网段内的MAC地址,那么可以用工具软件来实现,我觉得Windows优化大师中自带的工具不错,点击“系统性能优化”|“系统安全优化”|“附加工具”|“集群Ping”(图3),可以成批的扫出MAC地址并可以保存到文件。   

  如何修改自己的MAC地址

  MAC地址是固化在网卡中的,MAC地址具有唯一性,难道没有办法更改了么?不是的,我们完全不用修改EPROM的内容,而只通过修改存储单元的内容就能达到修改MAC地址的目的。例如在Windows中可以通过注册表来修改。
在“开始”菜单的“运行”中输入Regedit.exe,打开注册表编辑器,展开注册表到:HKEY_LOCAL_MACHINE\System\
CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}子键,在子键下的0000,0001,0002等分支中查找DriverDesc(如果你有一块以上的网卡,就有0001,0002……在这里保存了有关你的网卡的信息,其中的DriverDesc的内容就是你的网卡的信息描述,比如我的网卡就是Intel 21041 based Ethernet Controller),在这里假设你的网卡在0000子键。

  在0000子键下添加一个字符串,命名为“NetworkAddress”,键值为修改后的MAC地址,要求为连续的12个16进制数。然后在“0000”子键下的NDI\params中新建一项名为NetworkAddress的子键,在该子键下添加名为“default”的字符串,键值为修改后的MAC地址。

  在NetworkAddress的子键下继续建立名为“ParamDesc”的字符串,其作用为指定NetworkAddress的描述,其值可为“MAC Address”。这样以后打开网络邻居的“属性”,双击相应的网卡就会发现有一个“高级”设置,其下存在MAC Address的选项,它就是你在注册表中加入的新项NetworkAddress,以后只要在此修改MAC地址就可以了。

  关闭注册表,重新启动,你的网卡地址已经修改。打开网络邻居的属性,双击相应网卡项会发现有一个MAC Address的高级设置项,用于直接修改MAC地址。

  当然,你还可以用工具软件来修改网卡的MAC地址,如MAC2001这款软件就可以达到我们的目的。

  如何解决MAC地址带来的安全问题

  我们可以将IP地址和MAC地址捆绑起来解决这个问题。进入“MS-DOS方式”或“命令提示符”,在命令提示符下输入命令:ARP -s 10.88.56.72 00-10-5C-AD-72-E3,即可把MAC地址和IP地址捆绑在一起。这样,就不会出现IP地址被盗用而不能正常使用网络的情况,可以有效保证小区网络的安全和用户的应用。
要注意的是,ARP命令仅对局域网的上网代理服务器有用,而且是针对静态IP地址,如果采用Modem拨号上网或是动态IP地址就不起作用。

  不过,只是简单地绑定IP和MAC地址是不能完全的解决IP盗用问题的。作为一个网络供应商,他们有责任为用户解决好这些问题之后,才交给用户使用,而不是把安全问题交给用户来解决,让用户来承担一些不必要的源于盗用的损失。

  作为网络供应商,最常用也是最有效的解决方法就是在IP、MAC绑定的基础上,再把交换机端口绑定进去,即IP-MAC-PORT三者绑定在一起,这就需要在布线时候做好端口管理工作。在布线时应该把用户墙上的接线盒和交换机的端口一一对应,并做好登记工作,然后把用户交上来的MAC地址填入对应的交换机端口,进而再和IP一起绑定。这样一来,即使盗用者拥有这个IP对应的MAC地址,但是它不可能使用交换机的同一个端口,这就从物理通道上隔离了盗用者。

  小知识

  ARP(Address Resolution Protocol)地址解析协议:ARP是一种将IP地址转化成物理地址的协议。从IP地址到物理地址的映射有两种方式:表格方式和非表格方式。ARP具体说来就是将网络层(IP层,也就是相当于OSI的第三层)地址解析为数据连接层(MAC层,也就是相当于OSI的第二层)的MAC地址。ARP协议是通过IP地址来获得MAC地址的。

  ARP原理:某机器A要向主机B发送报文,会查询本地的ARP缓存表,找到B的IP地址对应的MAC地址后就会进行数据传输。如果未找到,则广播A一个ARP请求报文(携带主机A的IP地址Ia——物理地址Pa),请求IP地址为Ib的主机B回答物理地址Pb。网上所有主机包括B都收到ARP请求,但只有主机B识别自己的IP地址,于是向A主机发回一个ARP响应报文。其中就包含有B的MAC地址,A接收到B的应答后,就会更新本地的ARP缓存。接着使用这个MAC地址发送数据(由网卡附加MAC地址)。因此,本地高速缓存的这个ARP表是本地网络流通的基础,而且这个缓存是动态的。
ARP表:为了提高通信的速度,在本机上建立一个常用主机IP-MAC映射表,不用依靠交换机来进行映射,即ARP表。
白松 发表于 2006-11-30 00:04 | 显示全部楼层
说的很好很详细,对初学者来说是个很好的材料!
hcqi 发表于 2006-11-30 14:13 | 显示全部楼层
对于电脑一窍不通的我来说,就是天书
您需要登录后才可以回帖 登录 | 新用户注册

本版积分规则

象山同乡网 ( 京ICP备10005750号 )

GMT+8, 2024-11-23 08:11

Powered by Discuz! X3.5

copyright by 54xsr.com

快速回复 返回顶部 返回列表