月光博客 » 网站建设 » 网站登录的加密传输安全

网站登录的加密传输安全

  刚才看到了两篇文章,分别是“QQ网站登录的RSA加密传输缺陷分析”和“RSA非对称加密的一些非常规应用”,我这里谈一下我的一些看法。

  我以前曾经写过一篇文章“网站的安全登录认证设计”,对于QQ登录使用RSA进行加密传输,的确是一种低成本的替代SSL的方法,因为SSL本身需要数字证书颁发机构(CA)的介入,还需要一定费用,因此对于安全程度不高的系统使用RSA加密进行“网络传输”上的加密安全也是一种选择。

  然而,不使用SSL带来的后果就是安全性的降低,相当于网站自己当CA,自己颁发数字证书。数字证书颁发机构(CA)在互联网安全生态链中扮演一个非常重要的角色,因为CA充当可信任的第三方在验证申请者的真实身份后才颁发SSL证书。因此,CA从一定程度上保护了最终用户的信息安全,并预防了网站自己“内鬼”从中窃取用户信息的可能性。因此,使用RSA并不能完全替代SSL的作用。

  不过如果黑客通过arp欺骗的方法伪造的RSA密钥的话,我觉得也不一定能窃取用户的密码。因为用户验证密码并非将客户端用户的密码传到服务器上进行验证,通常情况下只要客户端用户密码的“消息摘要算法(Hash function)”和服务器端的一致即可,因此,验证的方法可以这样进行:客户端将用户密码的HASH数值(MD5或者SHA1)使用服务器端生成的公钥进行RSA加密,并传输到服务器端,服务器端接收到以后,使用私钥进行解谜,解密出HASH码后和数据库中计算出的HASH码进行比较,从而进行认证。

  这样,即使黑客使用arp欺骗窃取了用户传输的数据,也仅仅窃取了用户密码的HASH值,并不是用户的密码明文,而从密码的HASH值反推用户密码则是十分困难的,详见“密码学基础”一文,因此得到的数据也没有多大用处。

  总的来说,增强QQ登录密码的安全强度的方法还有很多种,最安全的方法可以使用类似网上银行的USB Key进行登录验证,那样的安全性就基本达到了相当高的程度了,不过使用成本也达到很高的程度了。

顶一下 ▲()   踩一下 ▼()

相关文章

  1. 1
    nolog   说道:
    你把RSA和SSL的概念混淆了
    RSA只是一个算法,SSL似乎是个协议,我不太确定,但是如果把两个东西并列绝对是个错误。
    通常SSL里面会用RSA的256 bit以上的密钥。
    SSL如果没记错,规定了会话步骤,算法等。
    支持(12反对(2回复
  1. 2
    iridiumcao   说道:
    (不好意思,以此为准,麻烦把我前面两条留言删掉)
    “QQ网站登录的RSA加密传输缺陷分析”里不是说的很清楚吗?先截获server传向client(browser)的public key并用fake public key替代之,client用fake public key加密后,传给它,它用fake private key解密,获得密码,同时,它再用public key加密这个密码并传给server。

    中间人攻击 (man-in-the-middle)就是这个过程啊。

    ......publik key..................fake public key
    server -------------> fake server ----------------> client

    .......password encrypted ...........password encrypted
    .......by fake publik key ...........by public key
    client ------------------->fake server ------------- > server
    ......................(unencrypt password
    .......................by fake private key
    .......................and encrypt it by
    ........................public key)

    用小点站位,不然排版把内容变乱了。
    支持(18反对(10回复
  1. 3
    不是俺   说道:
    您这么一说,过几天腾逊将会推出一个“贵宾”服务,意思是只要交若干人民币,就可以发个usbkey,保证qq的安全……
    支持(12反对(7回复
  1. 4
    有图   说道:
    估计以后的方向是第三方加密认证机构统一给申请者发放不同的密钥,算法可以一样,也可以根据申请者自己定制,而客户端则只需从网上下载一个软件使用即可。
    申请者的密钥是可以随时更换的,这样可以免遭crack,而客户端在每次启动的时候自动升级密钥以达到和服务端一致。当然最顶级的还是像《黄金眼》里面随时间随机变化,只要时间同步(好像很容易实现),即可同步密钥。
    如果这样,这个机构就可以做到long tail所说的集合器了,谁来承担这个角色?
    支持(8反对(4回复
  1. 5
    Taoii   说道:
    我想模访还没那能力哪
    支持(9反对(7回复
  1. 6
    crusher   说道:
    令人费解
    支持(7反对(5回复
  1. 7
    bigboss   说道:
    看了半天几乎看不懂,不过ssl好像成本也不是很高的,何必呢。
    支持(9反对(7回复
  1. 8
    GoMain   说道:
    我看了一下原文,作者好像是要重新伪造一对密钥。

    攻击过程如下:
    1. 攻击者通过MIM(比如arp欺骗等)劫持server与客户端浏览器之间的http包
    2. 攻击者生成一对伪造的RSA密钥: fake public key/fake private key
    3. 攻击者将js文件中的public key替换为fake public key,并传输给客户端浏览器
    4. 客户端浏览器用 fake public key加密敏感数据,比如密码,并将加密后的数据传输给攻击者
    5. 攻击者用fake private key解密,获得明文密码等
    6. 攻击者用server的public key加密明文数据,并传送给server
    支持(9反对(8回复
  1. 9
    tianhua.com   说道:
    软件技术作的到问题,终会是小成本的,因为这是在中国。
    支持(7反对(6回复
  1. 10
    仙景苑   说道:
    反正成本是关键因素
    支持(8反对(7回复
  1. 祝您快乐。。。。。。。。。。。。。。。。。。。。。。。
    支持(8反对(7回复
  1. 12
    ohhe   说道:
    不用多长时间,qq的加密要赶上网银了。
    网银现在要买密保卡,U盾什么的,难道以后登qq还得先插了u盘?
    支持(5反对(5回复
  1. 13
    Taoii   说道:
    唉,我上工行网银也就输入个密码就行啊
    支持(8反对(8回复
  1. 14
    Mao   说道:
    以后用个QQ还这么麻烦.还不如不用.......
    支持(9反对(9回复
  1. 15
    GoMain   说道:
    或者直接修改加密程序。

    比如,如果是用js在做加密,则修改js,如果是用flash或java applert做加密,则替换flash或applet,直接去掉这种加密机制,捕获明文密码。
    支持(6反对(6回复
  1. 16
    XIAOLAN   说道:
    这个办法不错
    支持(7反对(7回复
  1. 17
    wycom   说道:
    晕看不太懂,还需要多多学习啊.
    支持(7反对(7回复
  1. 18
    linker   说道:
    usb key以后普及在便捷性上面绝对是个问题;以后肯定还有更完善的安全解决方案,当然,也是非常便捷的利于普及的方案。
    支持(8反对(9回复
  1. 19
    linker   说道:
    我观察了将近十分种,到现在为止,月光的这个广告,一直还是这个"深思智能卡加密狗新品上市”服了!这么稳定的广告优化?
    支持(8反对(9回复
  1. 20
    Gomain   说道:
    月光的意思好像是使用了“消息摘要算法(Hash function)”,
    返回的"password encrypted by fake publik key"就不完整,
    所以不能"unencrypt password by fake private key"了。

    这种思路其实挺好的。
    支持(8反对(9回复
  1. 21
    隋心所欲   说道:
    虽然sendmerss也会给我的邮箱里发你的新文章
    但还是来这里看比较爽一些!
    支持(5反对(6回复
  1. 22
    guwei   说道:
    USBKEY可以是花钱买的啊
    支持(10反对(11回复
  1. 23
    星云一点   说道:
    我用工行的密保卡
    支持(9反对(11回复
  1. 24
    Ghoul   说道:
    提到的先生成一个hash,然后把hash进行可逆非对称加密(RSA或ECC等),算是使用了两次加密,即使第一重加密被突破,黑客得到的仍然是一个不可逆的hash,但是实际上知道这个hash就已经足够了,因为服务器也是使用这个hash来判断用户身份的。所以实质上并没有提高多大的安全性。

    我觉得原文提出的中间人攻击的思路还是不错的。SSL始终是经过多年和广泛考虑到加密体系,考虑得完善得多。
    支持(6反对(8回复
  1. 25
    杀鸡敬猴   说道:
    什么都没有绝对的安全,自己小心点就行!
    支持(6反对(8回复
  1. 26
    飘易   说道:
    最安全的方法可以使用类似网上银行的USB Key进行登录验证,很不现实,连银行自己的都没怎么推广开,如何让QQ来推广。呵呵
    支持(7反对(9回复
  1. 27
    lelesky   说道:
    沙发?
    支持(9反对(12回复
  1. 28
    silver   说道:
    板凳:)
    支持(6反对(9回复
  1. 29
    comgeo   说道:
    但是U盾安装程序被某些杀毒软件判为高危险程序,很奇怪
    支持(7反对(10回复
  1. 30
    yeats   说道:
    这个我就有点不懂了
    支持(6反对(9回复
  1. 31
    kev   说道:
    够专业,月光人才啊
    支持(4反对(8回复
  1. 32
    评论   说道:
    nolog的说法是对的, ssl是安全套接层加密协议, 他可以选择使用dsa, rsa, Diffie-Hellman中的任意一个的加密算法. LZ这篇文章视乎没有将问题说清楚.
    支持(4反对(9回复
  1. 33
    lin516   说道:
    虽然不是很懂,还是支持一下
    支持(5反对(11回复
  1. 34
    mator   说道:
    这篇文章才是“滥竽充数”,本身你就不懂加密的技术,在这里YY个啥!
    人家腾讯那么大的公司,会在乎申请一个CA证书的费用???
    楼主不懂装懂
    支持(3反对(9回复

发表留言