###DoS/DDos攻击
Dos(Denial of Service)顾名思义就是拒绝服务攻击。这种攻击利用占用网络资源的方式使服务器拒绝用户的正常请求。比如”the ping of death”这种攻击据说可以摧毁一个没有打过补丁的UNIX系统。

由于大多数个人Hacker带宽资源不够,所以又产生了大家一起攻击的分布式拒绝服务攻击DDos(Distributed Denial of Service)。这种攻击利用网络上已被攻陷的电脑作为“僵尸”,向某一个特定的目标发动密集的DoS攻击,从而把目标电脑的资源耗尽,无法向正常请求的用户提供服务。这些被攻陷的“僵尸”组成的网络称为“僵尸网络”。

形式:带宽消耗型和资源消耗型
特点:通过大量合法或伪造的请求占用大量网络以及器材资源,以达到瘫痪网络以及系统的目的

参考资料:维基百科-分布式拒绝服务攻击

###REPLAY ATTACKS

之前一直没搞清楚重放攻击和中间人攻击的区别,现在终于可以把自己的理解讲一讲了。

重放攻击一般发生在通信双方的正常通信之后。所谓的“重放”,也就是攻击者发送一个目的主机已接收过的包(比如之前正常通信时候的用于身份认证的数据包),来达到欺骗系统的目的。这种攻击主要用于身份认证过程,破坏认证的正确性。

举个栗子:
假设Alice想要向Bob证明自己的身份,Bob就要请求Alice的password(这个password可能会被hash函数转化~)
这个时候Mallory童鞋出现了,他窃取了这个password(或者那个hash值)。由于Alice和Bob之间的通信纯靠那个password,而这个password已经被Mallory持有了,所以等到Alice和Bob通信结束的时候,Mallory童鞋(这是个坏人)就可以假装自己是Alice跟Bob通信了。

解决方案1:时间戳
发送者A向主机发消息的时候带上一个时间戳并hash,这样就可以防止消息被篡改了。当攻击者进行攻击的时候,直接向主机重发这个消息,主机hash回来的时候就会发现这是一个已经过期的消息。

解决方案2:序号
序号的方法与时间戳的方法类似,在消息中添加的序号与时间戳有异曲同工之妙啊。
解决方案3:挑战应答(Challenge/Response)
假设A与B要通信。A事先发给B一个一次性的随机数N,然后要求B在应答的时候包括N或者F(N),F也是事先约定的简单函数,然后A再收回复的时候,进行验证即可。

参考资料:百度百科-重放攻击

###man-in-the-middle attack
中间人攻击与重放攻击不同,此类攻击在通信双方通信的过程当中伪装彼此,从而达到攻击的目的。这是一种主要出现在密钥交换时候的攻击。攻击者在两台正常通信的计算机之间进行信息的窃取与篡改,并且使通信双方毫不知情。

让我们来看一个具体的例子:
Alice和Bob要通信了,为了保证通信的私密性,他们首先要交换密钥。这个时候,他们各自生成了一个随机数a和b作为密钥准备告诉对方。当然,他们很聪明,不会直接向对方传递a和b。如果这样的话,很容易就会被别人窃取嘛~隐私就等于没保护成嘛~他们事先约定了一个g,并把g^a 或是g^b 传递给对方。
哎!等等,这个g被窃取了怎么办?那不就能通过计算log_g(g^a )来算出a了么?真实情况是:就算g被窃取了也没有关系!这个是一个很困难的叫做“离散对数”的问题~Carol不懂~我们也不讨论~反正理论上已经证明了这东西很难算~

现在,我们假设有一个中间人MiTM(Man-in-The-Middle)想要窃取或是篡改Alice和Bob之间的消息(说不定他是两人之中一个的情敌,想要改改他们的约会时间,是吧?),那么他有没有办法不需要计算g就骗过Alice和Bob呢?必须有!MiTM是很聪明的。我们假设MiTM知道g是多少(g是公开的嘛~)。他从Alice那里接收g^a ,并且偷偷换成g^a’ 传给Bob,同理,他从Bob那里接收g^b ,并且偷偷换成g^b’ 传给Alice。到这里,MiTM童鞋已经做完了所有的准备工作,他已经准备好要骗Alice和Bob了。

当Alice发消息给Bob的时候,她以为自己用g^ab 对消息加密了,但其实她用的是g^ab’ 。可怜的Alice并不知道这一点,把消息发给了Bob,中间的MiTM截取了这个消息之后,迅速解密,他发现Alice约Bob明晚8:00见。他悄悄把时间改成了9:00,然后用g^a’b 给消息加密并发给Bob,准备围观Bob迟到。Bob收到了Alice(其实是MiTM)的消息之后,用g^a’b 给消息解密(他以为是g^ab ),看到了时间是9:00,便开始愉快地期待明天的到来。

也许Bob最后是悲剧了。不管怎样,我们的中间人攻击的过程就这么讲完了。下面讨论下怎么避免这种悲剧呢?

暂时Carol能想到的办法也就只有安全证书之类的机制了。Good Luck, Bob!

暂时就这么多,以后会再更新。

给大家推荐Stanford的公开课

最后感谢某余同学在关于攻击的学习上给我的帮助>。<