[转载]小侃无线网络安全
文章作者:[I.T.S]LeiG小侃无线网络安全(1)
8月份般了新公寓,上个礼拜才能上网,爽
现在大家讨论的最多的是internet-based安全问题,而且绝大多数是应用层(application layer)的安全问题。这些问题大家看的到,摸得着,所以引起了 广泛的兴趣。今天我要跟大家说的是一种近几年新兴的网络以及它的安全问题-mobile wireless ad hoc network(我不知道中文的确切翻译,它属于无线网络的一种,不过有着非常独特的特性,听我慢慢说来。。。),我将抛开application layer的安全问题(应用层的安全问题太广泛,比如你使用了http服务,那么所有针对http服务的攻击,无论你是internet,还是ad hoc net都一样(也许会有些区别),而解释物理层(physical layer),MAC层,网络层(Network Layer)的各种流行攻击方法和防范措施,这里你可以直接对每个packet进行监听,修改,扔包,影响路由规则.详细细节后面会说.
(因为涉及到的内容很多,我就分N个帖子来发。。。)
1. Internet, Wireless Network 概述
Internet 我就不多说了吧,连火星人都知道的东西*_*........
无线网络大家接触的也不少,不少人肯定要说了,广播,手机,PDA,Pocket PC。这里我主要说手机网络(cellular phone network)。
手机网络有固定的发射基站(base station),移动用户通过base station接受信号,发送信号,南京的用户可能要通过多个base station的传递才可以把信号送到北京,你有卫星当然一步到位。。。这个网络的最大特点就是没有传统internet的物理连接(所以叫 wireless) ,而且这个网络必须要有固定的base station,没有这些station 或者这些station 瘫痪,就不能工作。这是现在大家都在用得无线网络。
2. mobile wireless ad hoc network (MANET)
我不知道确切的中文名字,大家知道叫这个ad hoc就好了。ad hoc 在希腊文里是特别的意思,在这是指为特别用途而用得网络。我不知道国内这个网络现在的发展情况如何,前几年这个网络主要用在美国军方,是80年代美国军方 packet radio network( 广播包网络)的扩展。近几年(从1999年)开始应用于一些新的领域,比如医药,产品质量检测,会议,交通检测,不过都是在起步的起步阶段,没有太大的实 质突破,大家可能听过802.11协议,这个协议是MANET的MAC层协议。。。简单说,MANET 最大的应用现在在军方,以后将逐渐转为民用,不过军事应用在未来仍然很重要,我会在后面举个小例子。上面说了传统的internet,cellular network,现在说ad hoc network。 这个网络与现在大家熟悉的无线网络的区别在于在ad hoc网络中没有基站,网络中的每个设备都是独立的router(路由),这也是和传统的internet区别很大的地方,为了方便和更加明确,我把后面在ad hoc网络中的设备(比如PDA,pocket pc,笔记本电脑加无线网卡等等)都叫做router.每个设备可以以任意方式在网络中移动(mobile),,因为设备间的通讯依赖于其他设备的传输,而且又没有基站,所以它的传输距离受到一定的影响.相比传统的internet,手机网络可以跨国跨洋,ad hoc网络的覆盖范围不大.以前是美国军方用于战场通讯,比如每个士兵身上可以配备这样的设备,可以随时构建一个网络,而不许要依赖于任何基站,物理连接,随用随架设,而且只要其中的一台机器接入internet,就可以实现internet和wireless ad hoc网络的互连,这里我先不谈这种情况,只说纯ad hoc 网络. ad hoc可以用于会议网络,几十,几百个人开会,不许要任何物理连接,可以马上通过各种无线设备构件一个ad hoc 网络,救护任务,比如森林大火,救援队伍可以马上在一定的区域内构件网络,而象手机等设备有可能因为距离等因素无法使用,而且费用昂贵.更有甚者,可以使用传感器(sensor),这种东西现在已经可以做到尘埃大小,可以放到人的身体里,进行医疗跟踪等等,或者可以大量投放到敌人的领地进行侦察...
简单总结一下ad hoc 网络的特点.(我以后简单称做MANET)
1)动态的网络拓扑结构(因为设备在移动)
2)有限的设备资源,比如cpu,电池,带宽
3)设备的多样性,PDA,pocket pc,laptop,装载无人飞机,移动工具(汽车)上的设备,各种设备的能力不一样
4)没有物理连接,没有基站,可以随时建立
5)缺乏必要的物理保护,设备持有者容易被抓捕(比如在战场上),既而使得设备被捕获,从而敌人可以进入ad hoc网络而顺利通过internet那样的验证(digital signature)
6)网络中的设备需要通过相互间的合作才可以进行通讯,比如routing(路由,这也是我以后要说的重点)
英文好的朋友,可以参考我的slides,这里有简单的介绍配以生动的插图(做广告...),最重要的是我简单的把几种主流攻击方法的理论用动画做了出来,嘿嘿*_*
[url]http://www.geocities.com/mani_guang/lei_1.ppt[/url]
3.MANET 安全
physical layer,MAC layer,Network Layer
大家听的最多的无线安全问题,我想更多的是物理层和MAC层(比如IEEE802.11)的问题,比如监听(偷听...)某个频率的信号.我先抛开物理方面的东东,先给大家介绍一下密钥机制,这也是所有网络安全的基础.
3.1 ad hoc 密钥管理
在传统的internet中大家都很熟悉,对称加密(symmetric cryptography)和非对称加密(asymmetric cryptography),对称加密的代表是DES,
非对称有RSA之流的基于数字签名的加密。
对称加密:A,B两个人共享一个密钥K,A发信息给B(用K加密),B用K解密.这个方法效率高,但是缺少一定的安全性,第一双方的身份不容易被证实,只要有K的人都可以发送,接收信息,而另一方人无法确保对方的身份.
非对称加密:公共密钥基础结构. 每个人都有一对钥匙K/k,一个私人钥匙保留给自己,公共钥匙给别人,任何一个钥匙K或者k都可以加密/解密信息,用另外一个钥匙可以解密/加密信息.为了确保发送者的信息不在发送途中被篡改,引用了数字签名.
数字签名:发送者A先杂凑(hash)自己的发送的信息,然后加上其他的信息,比如time stamp(签发时间)用自己的私钥加密,形成数字签名,然后把签名附加到hash过的要发送的信息,这样当接受者B收到该信息的时候,可以通过比较数字签名发现信息是否被篡改.
为了确认发送者的身份(因为attacker可能会违冒A发送公共钥匙给B ),所以需要验证机构(certificate authority,CA).这些验证机构可以发送数字认证,把A的真正公共钥匙加上A的一些个人信息用CA自己的私钥匙加密.如果B收到一个信息,信息说"我是A的公共钥匙",B只要去CA获得A的数字认证,就可以用CA的公共钥匙解密,获得A真正的公共钥匙,从而确定收到的"我是A的公共钥匙",是不是真的A的公共钥匙以及最重要的确认信息是不是由掌握A密钥的人所发的(理论上A的密钥只对A自己公开,其他人无从得知,但是一旦知道A的密钥,任何人都可以伪造A发出正常合法的信息,比如数字签名,这里我们不考虑这种情况).
更详细的,更生动的(又开始做广告...)的解释可以看这里
[url]http://www.ece.concordia.ca/~l_guang/digital.html[/url]
这些在传统网络中的密钥机制并不完全适用于无线网络,特别是MANET中.
在MANET中目前流行三种密钥机制.
1)threshhold cryptography(极限密钥)
在MANET中由于每个router都有可能被敌人劫持或者攻击,而成为一个"合法"的ad hoc网络使用者,所以不能把CA设置在某个router上,否则一旦该router被劫持,后果...但是CA也必须引进.这样有了极限密钥机制.
极限密钥机制:每个router有自己的公共钥匙K和私人钥匙k,CA的公共钥匙被网络中的每个router所知,但是CA的私人钥匙被分成了N个小块(share),这N个小块分担给指定的N个router,每个router很难通过他所获得的小块重新构件整个完整的CA的私钥,一旦需要数字认证的时候,大于等于t+1个router把各自的share发送到某个router(可以是任何网络中获得验证的router)去重新构件完整的私钥,然后签发数字认证,如果share不足t+1个就不可以构件,这叫做(N,t+1)极限密钥机制.要重新为了防止attacker收集到所有的share,每过一顶的时间,这些share会被重新分配,会被重新刷新.这个方法有个致命的缺陷,就是对Sybil攻击缺少有效的防范,sybil攻击我会在以后说,简单说就是一个哥们伪造了无数身份,其中有一个合法身份,其他都是假的,然后通过假身份去获得这些share,所以理论上,只要有足够的身份,在刷新share的预定时间内,attacker可以收集到足够的share( >=t+1 )个,就可以获得CA的密钥.......嘿嘿,是不是想了都很兴奋,不过很难...哈哈
2)threshhold cryptography(极限密钥)的扩展
基于threshhold cryptography(极限密钥)有了很多新的扩展来解决它的不足,比如,网络中每个合法router都有share,而不是只集中在特定挑选的几个,但是他的问题依然存在就是,
threshhold cryptography(极限密钥)机制必须依赖于在网络初始阶段有可靠的认证机构对每个router进行分配share,这个在军方应用中得以实现,转到民用还需要时间.而且引进这种机构本身就违背了ad hoc 网络的初衷,即self-organized(自我组织),self-configuration(自我配置),所以出现了下面的这种机制,不过要强调的是极限密钥依然是基础
3)自我组织型密钥机制
这个机制和PGP的认证图很象,如果大家了解PGP的机制,理解起来很容易,简单说来,,每个ad hoc 网络中的router对自己信任的邻居router(neighbor,定义为在该router无线传输范围内的其他router)发放数字认证,每个router有两个认证储藏室,一个用来放该router对其他router的认证,一个用来存放网络中其他router对另外一些router的认证,当A要对B的公共钥匙进行验证的时候,A和B把双方的四个储藏室进行合并,如果能找到一个认证链(certificate chain)就ok.(由于我只简单用文字进行描述,详细细节必须要用图来表示,大家才能清楚,有想了解的朋友可以联系我,我可以把详细的东西发给你).
这个方法不需要初始阶段有任何验证机构,所有的验证有网络中的所有router自己完成,是真正意义上的自我组织,不过这个方法有一定的失败几率,而且一定程度上也缺少对sybil攻击的有效防范.
几天先随便侃了点基础知识,大家可能觉得没意思,不象真刀真枪来得爽,以后我将介绍几种主流的攻击方法和对应措施,以及大家可能比较关心的物理层和MAC层的安全问题,比如监听,信号干扰等等.对于网络层,特别是路由的攻击,是真正的精华,也是所有爱好安全的朋友所关心的核心,后面将集中讲述如何攻击路由,.
大家累了,可以吃个kitkat饼干了,我的最爱!!!
小侃无线网络安全(2)
作者:[I.T.S] LeiG
上个小帖子说了,无线网络,特别是ad hoc网络中的密钥机制.今天就主要集中在物理层和链路层的安全.先简单做个概述,应用层的安全,大家集中在病毒,蠕虫,恶意的编码(比如script的攻击),等等.传输层主要是实现通讯双方的信息认证(通过加密,密钥等等).网络层是路由安全,连路层主要是保护MAC协议等等,物理层主要是防止阻塞攻击(jamming)造成的拒绝服务攻击,下面先说物理层和连路层的安全@_@.....
3.2无线网络物理层常见攻击和防范.
1)频谱分散(spread spectrum)
传统的无线网络信号都有一个频率,通常用MHz或者GHz来表示,这个频率一般不会随时间而改变(当然由于modulation(调制)信号造成的很小很快的频率浮动不算在内). 比如你用收音机收听FM(frequency modulation)的节目,一般都是固定的频率,比如FM101.1MHz,这个频率不会有大范围的浮动,比如,不会到103.1MHz,也不会到99.1MHz.只是在101.1Mhz.收音机的数字频率一直维持在这个数值,101.1MHz. 无线网络的信号过去也是象这样尽量维持在一个固定的频率.因而带宽就受到了一定的限制,而无线信号也容易被接收到,只要接收者有足够的条件,就可以找到信号的发射地.收音机的例子大概应该可以比较容易理解.但是传统无线网络这种信号传递方式如果应用在普通的民用或者军事应用中有两个致命的问题:
第一,固定频率的信号容易遭到干扰.比如,A是正常的无线信号,工作在100MHz,B是"攻击者",他可以使自己的无线信号工作在100MHz附近的一个很小的范围,比如99.5-100.5MHz.攻击者打引号是因为,有可能这种干扰是偶然发生的(比如在民用中,有无线电爱好者自己发出的信号干扰了正常的其他无线通讯),也可以是故意的,比如在军事中,故意发出要攻击的特定频率附近频率的信号来进行干扰.因此当要求无线通讯安全时,这种方式就不能使用了.于是出现了所谓频谱分散(spread spectrum)的方法.
所谓频谱分散(spread spectrum),简单说就是人为的使自己发射的无线信号频率产生一定的波动,结果就是获得比固定频率信号更大的带宽.这种波动变化可以通过一个特定的,但是非常复杂的数学方程得以实现,如果攻击者想要劫持这个信号,必须能够准确的调制到这个方程所计算出的频率范围.攻击者也必须知道发送方所使用的这个频率-时间方程(frequency versus time function).所以一个攻击者如果想干扰这个spread spectrum过的信号,比如用暴力的方法塞入(jamming)自己的信号到要干扰的信号中去的话(从而会造成拒绝服务式攻击DoS),攻击者必须准确知道这个方程,以及使用这个方程的开始时间(因为发射方可以随时改变这个方程,从而轻松转到其他频率).所以必须保证这些方程在某个应用中的保密性.
多数频谱分散(spread spectrum)信号用了一种数字机制来实现,叫做频率跳跃(frequency hopping).发射方可以使频率在每一秒中发生多次的突然变化.但是每次完成频率跳跃后,信号频率相对稳定一定的时间.
2)tamper (篡改攻击)
这个好象比较的实用,嘿嘿,因为就是直接把无线发射设备给劫持(物理捕捉...连人带东西一起抢).传统的保护方式是用防止篡改的设备嵌入到无线设备.比如在一个可以随意取出以及放置的智能卡中加入加密的信息.比如最简单的例子,SIM卡. 用户可以把重要的信息存到卡上加密.但是这个东东的缺点是:没有输入或者输出的功能,也没有电源或者自己的时钟来进行自我工作,所以只要攻击者把这个卡重新放到劫持的设备中,有可能就可以读取其中的信息.改进型的智能卡,可以集成微处理器,电源,以及检测/防止被篡改的电路,可以采用设计好的软件用来控制这些.不过由于软件也许需要定期的升级,所以检测升级的软件是否合法也很重要.
另一种方法是所谓的"系统指纹".在系统初始化时,系统必须要被告诉使用者的一些相关信息,比如谁是使用者,使用权限,等等,一旦设备被劫持,被篡改,系统可以作出有效的方法,比如自己毁灭数据或者伪造假数据,等等......等等.......等等.......
下回写链路层的安全,主要针对IEEE802.11协议,然后就是路由安全拉.嘿嘿........
小侃无线网络安全(3)
作者:[I.T.S] LeiG
3.3 无线网络链路层(link layer)安全.
link layer 的安全问题主要在两个方面:1)IEEE802.11标准的安全性问题;2)对link layer安全性支持的一些协议本身的问题。
比如对于IEEE802.11标准的MAC(media access control)的DoS攻击。MAC的问题在于,所有想传输数据的router现监听大家公共的频道,如果频道空闲,则开始传输数据,如果router 监听到当前的通道正在有数据传输就会使用某些所谓的规避(backoff,不知道大家在国内是不是这么翻译)算法。攻击者可以简单的使自己规避的时间很短,抢占通道,而别的正常的access请求就可能被拒绝,而继续规避。因此,MAC一般尽量采用公平的规避算法。比如接受信息的router来提供规避时间给发送信息的router,而不是由发送信息的router自己来决定一个人意的规避时间。当一个攻击者使用小的规避时间,或者压根儿就不规避,一直占着窝儿不动,不让其他要发信息的router使用这个通道,接受信息的router可以检测到当前传送信息的机制和预定的信息传送机制的变动,从而接受信息的router提供给攻击者规避时间(时间可以设置的很长,让他过一段时间再占窝,因为这里也有可能不是攻击者,而是某些合法用户的误操作或者系统自身的问题)。
RTS/CTS(request to send/clear to send)问题得文章相信大家已经看了很多了,我就随便说两句吧。当A--->B发送数据时(A现发RTS,如果B现在没事干就发CTS,然后等着 A发信息),如果A/B的邻居监听到这个过程,可以在同一时间发送一些bits(bit:0,1,大家都知道得。。。)从而造成正在发送的信息会出错,因而可能要重新发,由于发送的信息量通常都好几百bits,甚至更多,而攻击者只是发送了一点点影响正常数据的bit,相比重新传输的数据量小的又小,因此可以很有效的影响移动无线通讯设备的电源消耗,没了电也就用不起来了。。。你说充电。。。没话,我!
终于要进入今天的正题了。。。。。大家不要急。。。。。
WEP的安全性
WEP(Wired Equivalent Privacy)是IEEE802.11中为无线局域网而开发的安全协议。它的主要设计目的是为了防止用户数据被监听。多数的硬件厂商在他们的 802.11产品中都肯定用了这个东东,比如无线router(有的朋友肯定比我了解了,我前两天才买了一个smc的,嘿嘿)。因此它作为提供安全保障的协议自身安全如何就很关键了。我就集中精力好好说说这个(长篇大论开始。。。请读者适当的做好热身准备。。。)
1)WEP协议
它的核心是用发送和接受双方都知道的密钥k来确保发送信息的保密性。
#1 要发送的信息M,计算他的交验和checksum-->C(M),把信息和交验和和在一起,我们叫plaintext,用P表示就是<M,C(M)>. 这一步没有用任何的保密机制,我们的主角k还没出现。
#2 使用RC4算法加密P,具体过程是。我们先生成一个初始向量v,结合密钥k,用RC4生成一个密钥流(其实就是一连串随机的字节),我们把这个密钥流用RC4(v,k)表示,然后把P和该密钥流异或
C=P^RC4(v,k) (异或我用^表示拉)
#3 把生成的密文(cipher text,C)和该向量v一起传送。
=================
MESSAGE | CRC
=================
XOR
=================
Keystream=RC4(v,k)
=================
-----------------
=================
v| Ciphertext
=================
当接受方收到这个帧(WEP标准的帧)的时候,只要在重新用k,v进行解密就ok,我把解密生成的新plaintext叫做P',
P'=C^RC4(v,k)=(P^RC4(v,k))^RC4(v,k)
生成的P',被重新分成M',C(M)',如果校验和C(M')=C(M)',则说明信息ok,被接受。
WEP的安全性在于:
1)防止监听
2)access control,凡是不遵循wep安全规则的包都会被丢掉
3)通过检测检验和来确定信息的完整性(没有中途被调包)
WEP一般用40bit/104bit(也就是一般无线router上些的10/26hex)密钥k,24bit是固定的v,因此也可以说是64bit/128bit的密钥匙,不过大家应该清楚,其中24bit是给v的,v是什么我前面已经说过了。
而wep得脆弱在于,不用破解这些密钥匙,也可以进行修改包,也就是说密钥匙的长度不影响攻击!!!
2)攻击的可行性
要实现link layer的无线攻击要比internet麻烦一些,因为设备的原因。比如如果你要监听,你首先要有可以监听2.4GHz频率的设备,而且支持802.11协议(802.11好像要不少刀。。。),如果你要实现包的修改,你要有可以发送2.4GHz信号的设备。这些东西很多可以从商店买来,比如笔记本用得无线网卡,无线router,当然不是拿来就可以用,现在大多数的无线router都用firmware,可以升级,你需要对这些firmware进行修改,才可以用来攻击之用途,当然不是那么简单,需要花费一定的时间,不过我相信总有人愿意搞这个,搞出来,可以很方便的被大家share...........................
3)密钥流keystream的危险
C1,C2是两个WEP标准的密文,请大家看下面
C1=P1^RC4(v,k)
C2=P2^RC4(v,k)
C1^C2=(P1^RC4(v,k))^(P2^RC4(v,k))=P1^P2^(RC4(v,k)^RC4(v,k))=P1^P2^0=P1^P2
大家看出名堂了否?即使你不知道v,k,两个用相同v,k加密的密文,可以通过异或得到P1^P2,P1是发送方的信息M附加上M的检验和。P2同理。M和M的检验和都是没加密的。。。。。。。有很多很实际的方法通过两个信息的XOR值来找出两个信息的原始明文。这里我就不说了。要不又跑题了。
这个攻击存在的可能性必须符合下面两个条件:
1)v,k被重复使用多次,否则单个的用v,k加密的帧是无法读取的
2) P1或者P2有部分内容可以被探知,否则很难通过两个信息的XOR值来找出两个信息的原始明文,注意不是不能找到,是有多种可能性,1^0=1,0^1=1,你知道了XOR得值是1,每个bit有两种可能。如果你知道了一部分的明文,也就是你知道了一部分的bits数值,那么就容易很多。
#1 发现被重复使用的v
为了防止这种攻击,WEP推荐对于每个帧的v(24bits)的数值要不同,k(40bits/104bits)可以对于一定数量的帧保持相同(因为bit多,不容易出现重复)。v在帧中以明文的形式出现(没加密),这样当接受方收到信息后就可以和密钥k一起用来解密(任何人都有可能拿到v,但是k一般被保密)。而下面我将要介绍给大家的是这些机制并没有很好的效果。
WEP 标准推荐每个包的v都不同(注意:不是强制性的要求),但是它没有明确指出该怎么选择v,因此很多现在的应用在选区v的时候都很有问题。比如最简单的例子(从berkley抄来的例子,嘿嘿),PCMCIA每次重新初始化的时候都会把v设置为0,每传输一个包就把v的数值增加1。每次PCMCIA卡被插入笔记本的时候就要初始化一次(开机重新启动一次也要初始化一次),因此v的数值可以被预料会在小数字的范围内出现的比较频繁(在k的合法时间内,k应该过一定时间要刷新一次以确保安全)。
而且大多数应用采用随机的方法来选区v,因此大约每几千个数据包packets就会有重复的v,而几千个数据包packets不过是几分钟的传输量。802.11既然没有强制要求每个包都必须使用不同的v,那么也就是说很多应用会在不同的数据包中使用同样的v。
#2 根据重复的v,如何获得明文P
刚才说了,我们可以通过查找重复的v获得两个或者多个加密过得密文C1,C2。怎么去阅读这些被加密的包呢
象上面讨论的那样,如果知道P1,P2的部分内容,就可以方便获得其余内容。那怎么去获得P1,P2的内容呢。
一种方法是通过寻找敏感字,比如login,password等跟相关应用有密切联系的数据格式,这些大都市固定的,
另一种方法是用欺骗的方法,比如攻击者发送一些无用信息(垃圾email)给无线移动的router,当这些router检测这些信的时候,可以获得这些router的明文的一部分格式。
还有更可爱的方法就是,攻击者发送广播包(遵循802.11协议),如果有的access points(接入点)没有access control(因为可以设置也可以不设置),当这些接入点收到这些广播包会以加密的形式进行继续广播,这些攻击者可以截获这些广播包,进而分析这些接入点明文得格式。。。
#3 字典攻击
这个大家好像都比较熟悉了,我就丢个脸随便扯两句再。刚才说了,密钥k一般刷新的时间比较长(你想你也不可能每天换个email密码吧,何况还是40bits/104bits),而v则经常变化,所以用字典攻击,集中在24bits的v,一共有2的24次方可能性,可能也就是几十个Gbits的字典吧,大家站稳了,别吓怕了,这点随着现在的计算机发展应该还可以吧,好像大家的内存现在都开始以GB为单位了,汗。我准备年底换机器了,哈哈
4) 密钥机制
在我的第一个小帖子里我提及了现在流行的几种密钥机制,那些主要用在transport layer来确保end-to-end 认证,我将在本帖子的最后进行小总结。
在802.11中并没有说到密钥机制时如何分配密钥的。他使用一个共享的包含4个不同钥匙的密钥数组,每个信息包会指明该包所用的钥匙的数组的索引,每个数组都用一个唯一的钥匙给每个无线移动router,而现实的情况是,往往整个移动网络中的大部分router都只用一把密钥。尽管为了防止密钥的泄露,网管可以不让用户知道网络的密钥匙,但是这些钥匙实际上存在每个移动router上,只是被网管所隐藏起来。因此有被发现的可能。而且最危险的情况在于,一旦钥匙泄露,必须重新刷新新的密钥,而这要求所有的网络用户都要重新设置他们的无线驱动,这个好像需要一定的时间来实现。
才发现还有好多要说。。。。。咬咬牙继续写。。。。。。
(5) 数据认证
前面说了WEP用验证和来确保数据的完整性,这个交验和C(M)是用CRC-32,这里注意的shi是CRC-32不是什么加密方法,只是交验和,他只是用来检测在发送信息过程中,信息是否出错,从而可以要求重新发送等等等等等等。。。那么怎么再中途劫持数据包修改信息,而不让接受方发现验证和出错了呢。
跟上面一样,再来
C=RC4(v,k)^(M,C(M))
被修改过得密文是C'=RC4(v,k)^(M',C(M'))
M'=M^d,d可以由攻击者任意选择
下面的问题就是怎么从密文C获得C',从而使得C'被解密出来的信息是M'而不是M
C'=C^(d,C(d))
=RC4(v,k)^(M,C(M))^(d,C(d))
=RC4(v,k)^( M^d, C(M)^C(d))
=RC4(v,k)^(M',C(M')
因此大家看到了,M'=M^d,因此C'=P^d
因此我们可以构造任何信息而不需要知道M,比如,你构造了d,想添加到原始的C密文中,你只要计算,d的checksum然后,C'=C^(d,C(d)),就可以发送给接受者,而他并不知道信息发生了改变,因为当他解开包和重新计算的交验和完全是正确的。。。。。。。。。。。。。。。。
既然可以修改包,那么当然也可以注入新包,可以伪造认证(authentication),写得有点儿累了,以后有时间在继续补充这个帖子。
大家看了这几个帖子可能有点儿晕(我也写的有点儿乱七八糟的,不好意思,嘿嘿),我简单总结一下,然后以后就集中精力写最主要的路由攻击拉
下面这几个词我就不翻译拉,这些是我个人的研究笔记,因为涉及到一些东西,老板不让公开,不过I.T.S.的朋友如果有兴趣,想了解更多可以发信息给我,我绝对共享,哈哈,不过只限内部交流,希望大家体会,下次就写路由攻击了,估计有的写了。。。。。。。。@_@
For now we can simply formulate the security problems in MANET security as below:
====================================================================================
Application Layer | worms,viruses,malicious codes, DoS attack to bring down http,etc.
====================================================================================
Network Layer | secure routing (forwarding) mechanism,
e.g. proactiv( message authentication),active(misbehavior detection and reaction)
====================================================================================
Transport Layer | ensure end-to-end authentication, and data confidentiality
====================================================================================
Link Layer | MAC protocol and IEEE802.11 security support(WEP,etc.))
====================================================================================
Physical Layer | DoS (jamming attack, use spread spectrum to effectively counter)
==================================================================================== a small mistake in the osi model
Application layer
Transport Layer
Network Layer
Link Layer
Physical Layer
^_^
页:
[1]