`
sunnylocus
  • 浏览: 869838 次
  • 性别: Icon_minigender_1
  • 来自: 美国图森
社区版块
存档分类
最新评论

给Iteye的安全建议(关于用户登陆风险)

阅读更多

在讨论这个问题之前,我先假设一个场景,我相信这个场景也适用于正在看该文章的老兄。现在IT公司里从事Java研发的开发者居多,我相信大部分人都会有iteye的账号,我们假设在同一个公司里有这们两个人A和B,A和B因为某种原因积怨很深,A一直想找机会整下B出下恶气,A偶然发现B有写博客的习惯,A决定把B写的所有博客都删掉,让他多年的技术沉淀打水漂。A想到了用ARP欺骗+嗅探数据包的方式窃取B的登陆用户名和密码。

ARP欺骗原理:

主机在两种情况下会保存、更新本机的ARP缓存表,
1. 接收到“ARP广播-请求”包时
2. 接收到“ARP非广播-回复”包时

从中我们可以看出,ARP协议是没有身份验证机制的,局域网内任何主机都可以随意伪造ARP数据包,ARP协议设计天生就存在严重缺陷。

假设局域网内有以下三台主机(其中GW指网关),主机名、IP地址、MAC地址分别如下:
主机名 IP地址 MAC地址
GW 192.168.0.1 01-01-01-01-01-01
PC02 192.168.0.2 02-02-02-02-02-02
PC03 192.168.0.3 03-03-03-03-03-03

在正常情况下,主机PC02与GW之间的数据流向,以及它们各自的ARP缓存表如下图所示:

A用计算机PC03首先向B的计算机PC02发送了一个ARP数据包,作用相当于 告诉PC02:“嘿,我是192.168.0.1,我的MAC地址是03-03-03-03-03-03”,接着他也向网关发送了一个ARP数据包,作用 相当于告诉网关:“嘿,我是192.168.0.2,我的MAC地址是03-03-03-03-03-03”。于是,主机PC02与GW之间的数据流向, 以及它们各自的ARP缓存表就变成如下图所示:

 

ARP欺骗之后,B与网关通信的数据都会经过A的计算机,即A已经掌控了它们之间的数据通讯。A在捕获了一段时间的数据包开始分析数据包,找到了B登陆Iteye用户名和密码,如图

 

 

解决方案:

  1. 将密码在发送到服务端之前进行加密,如MD5
  2. 用Https协议传输用户名和密码。

 

分享到:
评论
2 楼 Reset 2014-06-11  
MD5(密码+验证码)

验证码不往后台传...
1 楼 liguocai2009 2012-07-18  
MD5是没用的。必须https。MD5还必须加上验证码才是安全的

相关推荐

Global site tag (gtag.js) - Google Analytics