V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ryanking8215
V2EX  ›  程序员

想研究一下登录的加密机制是怎么样的,抓了v2ex的登录的包,密码竟然是明文的...

  •  
  •   ryanking8215 ·
    ryanking8215 · 2013-10-22 17:35:30 +08:00 · 4743 次点击
    这是一个创建于 4052 天前的主题,其中的信息可能已经有所发展或是发生改变。
    14 条回复    1970-01-01 08:00:00 +08:00
    vileer
        1
    vileer  
       2013-10-22 17:43:16 +08:00
    囧,http是明文传输,https才是加密的,要用http实现加密传输密码,只能用js预处理,但这几乎只能防君子,防不了小人,或者使用专用客户端,但是lz愿意在非手机,平板上为了浏览v2ex而另外再开一个软件吗?
    ryanking8215
        2
    ryanking8215  
    OP
       2013-10-22 20:38:09 +08:00 via Android
    我一直以为是使用挑战模式,貌似很多协议都这样的,sip,stun/turn等。也没见密码用明码。难道gmail,baidu,weibo什么都是web上都是明码的吗?
    或者换个问题,一般这种web 登录有没有通用或者常用的方法?
    akira
        3
    akira  
       2013-10-22 21:04:01 +08:00
    通用模式就是,强制登录部分使用https
    happyz90
        4
    happyz90  
       2013-10-22 22:25:37 +08:00
    http的都是明文的吧,除非装个什么密码输入插件。。。
    vileer
        5
    vileer  
       2013-10-23 00:00:14 +08:00 via Android
    @ryanking8215 一般web都是明文传输的,所以有些网站会要求安装密码控件
    g0t3n
        6
    g0t3n  
       2013-10-23 11:52:32 +08:00
    @vileer 其实可以参考下weibo的思路,用js加密,这样攻击者攻击成本就高得多,利用rsa之类非对称实现或者tea加密等很简单,现代的手机浏览器都支持js了(chrome,uc),甚至https也ok了
    ryanking8215
        7
    ryanking8215  
    OP
       2013-10-23 13:23:37 +08:00
    先不说https,那个是整个http协议报文都加密了。

    我就是说普通的http模式下,密码不是不应该明文传的么?
    大家貌似把报文加密和密码是否明码弄混了。

    比如第一次Login时认证失败401,服务器传nonce,realm等,然后再次Login使用nonce,realm,把密码和这些字符一起散列得到随机字符,如果登录成功,服务器回一个hashtoken,以后每次请求都带有hashtoken,这样密码就不需要明文传了。这是标准的挑战模式,难道不是这么做的吗?
    vileer
        8
    vileer  
       2013-10-23 13:51:09 +08:00 via Android
    @ryanking8215 你说的有点类似于oauth验证,这也是一个方法,但是在报文有可能被截取且不加密的完全不可信环境下还是 @g0t3n 的非对称加要好点,不过说到底还是一个实现成本跟必要性的问题,一般网站直接post 登录表单没什么问题而跟钱相关(购物,银行)再严密都不为过
    angelface
        9
    angelface  
       2013-10-23 16:17:08 +08:00
    @ryanking8215 ActiveX
    Virtao
        10
    Virtao  
       2013-10-23 19:11:40 +08:00
    记得有些系统将密码转为MD5,不过这样应该防不了中间人攻击。还是https比较靠谱些。
    fucker
        11
    fucker  
       2013-10-24 16:59:05 +08:00
    ActiveX +1008611
    个人认为flash也可以解决这个问题。
    fucker
        12
    fucker  
       2013-10-24 17:07:47 +08:00
    下面的是说给楼主的:一个网站的用户密码加密机制,99.999%的网站你在客户端是绝对无法找到的。全部都在服务端完成。楼上几位仁胸都说了http协议本身就是加密传输的。
    http://www.v2ex.com/settings 在这里可以设置是否选用ssl 加密。你可以选用加密,然后再抓包看看。
    woaiguzi
        13
    woaiguzi  
       2013-10-24 20:41:54 +08:00
    那些用明文传密码的开发者都应该去看RFC2617的Digest Auth
    xjay
        14
    xjay  
       2013-10-25 11:17:38 +08:00
    普通http请求下,可以先用js加密一下密码吧,一般都是这么做的。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5141 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 325ms · UTC 09:45 · PVG 17:45 · LAX 01:45 · JFK 04:45
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.