timqian / my-notes

https://github.com/timqian/my-notes/issues
7 stars 2 forks source link

网络安全:repeat attack, middle man attack and brute force dictionary attacks #82

Open timqian opened 8 years ago

timqian commented 8 years ago

replay attack(重放攻击)

假设Alice向Bob认证自己。Bob要求她提供密码作为身份信息。同时,Eve窃听两人的通讯,并记录密码。在Alice和Bob完成通讯后,Eve联系Bob,假装自己为Alice,当Bob要求密码时,Eve将Alice的密码发出,Bob认可和自己通讯的人是Alice。

解决方案

session-id

middle man attack(中间人攻击)

    1.Alice发送给Bob一条消息,却被Curry截获:

    Alice“嗨,Bob,我是Alice。给我你的公钥” --> Curry Bob

    2.Curry将这条截获的消息转送给Bob;此时Bob并无法分辨这条消息是否从真的Alice那里发来的:

    Alice Curry“嗨,Bob,我是Alice。给我你的公钥” --> Bob

    3.Bob回应Alice的消息,并附上了他的公钥:

    Alice Curry<-- [Bob的公钥]-- Bob

    4.Curry用自己的密钥替换了消息中Bob的密钥,并将消息转发给Alice,声称这是Bob的公钥:

    Alice<-- [Curry的公钥]-- Curry Bob

    5.Alice用她以为是Bob的公钥加密了她的消息,以为只有Bob才能读到它:

    Alice“我们在公共汽车站见面!”--[使用Curry的公钥加密] --> Curry Bob

    6.然而,由于这个消息实际上是用Curry的密钥加密的,所以Curry可以解密它,阅读它,并在愿意的时候修改它。他使用Bob的密钥重新加密,并将重新加密后的消息转发给Bob:

    Alice Curry“在家等我!”--[使用Bob的公钥加密] --> Bob

    7.Bob认为,这条消息是经由安全的传输通道从Alice那里传来的。

    这个例子显示了Alice和Bob需要某种方法来确定他们是真正拿到了属于对方的公钥,而不是拿到来自攻击者的公钥。否则,这类攻击一般都是可行的,在原理上,可以针对任何使用公钥——密钥技术的通讯消息发起攻击。幸运的是,有各种不同的技术可以帮助抵御MITM攻击。

解决方案

https

brute force dictionary attacks(暴力攻击法)

将密码进行逐个推算直到找出真正的密码为止。例如一个已知是四位并且全部由数字组成的密码,其可能共有10000种组合,因此最多尝试10000次就能找到正确的密码。

解决方案

限制次数

timqian commented 8 years ago

跨网站脚本(XSS):XSS攻击通常指的是通过利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。

原理

用户同时打开多个浏览器视窗时,在某些例子里,网页里的片断代码被允许从另一个网页或对象取出数据,而因为恶意的网站可以用这个方法来尝试窃取机密信息

防御:

过滤特殊字符

跨站请求伪造 CSRF (Cross-site request forgery): 挟制用户在当前已登录的Web应用程序上执行非本意的操作的攻击方法。

防御:

  1. 检查Referer字段
  2. 添加校验token: 由于CSRF的本质在于攻击者欺骗用户去访问自己设置的地址,所以如果要求在访问敏感数据请求时,要求用户浏览器提供不保存在cookie中,并且攻击者无法伪造的数据作为校验