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

RSA 算法及一种意想不到的攻击方式

  •  
  •   tl3shi · 2017-01-10 12:56:31 +08:00 · 5489 次点击
    这是一个创建于 2662 天前的主题,其中的信息可能已经有所发展或是发生改变。
    又来拉流量了~

    本文概述了 RSA 算法流程及一种有意思的攻击方式(timing attack).


    http://mp.weixin.qq.com/s/eU3AmoFVco7Hgj4__lNbhQ

    有做安全的朋友么, 实际场景中有没有这种攻击方式?
    29 条回复    2017-01-11 20:47:34 +08:00
    DuckJK
        1
    DuckJK  
       2017-01-10 13:12:57 +08:00
    想起来原来看 tornado 的时候一篇文章,就记得里面比较字符串的问题,还真是巧
    https://www.keakon.net/2012/12/03/Tornado%E4%BD%BF%E7%94%A8%E7%BB%8F%E9%AA%8C
    mengzhuo
        2
    mengzhuo  
       2017-01-10 13:42:19 +08:00
    好有趣的方式
    xiaket
        3
    xiaket  
       2017-01-10 13:56:05 +08:00
    因为好像通过统计运行时间总感觉不太靠谱, 这个运行时间对环境太敏感了, 比如网络, 内存, CPU 负载等等都会影响.

    记得看过文章,这种感觉不靠谱是不靠谱的.
    scnace
        4
    scnace  
       2017-01-10 13:58:23 +08:00 via Android
    感觉就是一种取巧的爆破了……不过还是学习了…
    langmoe
        5
    langmoe  
       2017-01-10 13:59:00 +08:00
    @xiaket 要有靠谱的那就真的大新闻了。。
    glasslion
        6
    glasslion  
       2017-01-10 14:00:17 +08:00
    这有啥意想不到的?很常见的攻击方式
    KhadainJHIN
        7
    KhadainJHIN  
       2017-01-10 14:40:15 +08:00
    这 ......时间盲注?
    artandlol
        8
    artandlol  
       2017-01-10 14:51:01 +08:00 via Android
    @scnace 所以我的密码都带一个闽南语字符
    wy315700
        9
    wy315700  
       2017-01-10 14:53:59 +08:00
    @xiaket 一般密码学算法最后都会用芯片去实现,所以运行时间都是固定的


    @tl3shi
    现在拿的出手的算法实现,基本上时间、功耗、辐射这些旁路攻击都要能防御
    xavierskip
        10
    xavierskip  
       2017-01-10 15:48:58 +08:00
    卧槽,微信里面居然都有代码高亮了,真没想到
    40huo
        11
    40huo  
       2017-01-10 16:02:54 +08:00
    这种旁道攻击现在越来越多了。。。全是脑洞,之前还有用监听隔壁房间噪音破解数据的。
    greenmoon55
        12
    greenmoon55  
       2017-01-10 18:37:28 +08:00
    这也是密码学里一类攻击方式。
    phrack
        13
    phrack  
       2017-01-10 18:44:39 +08:00 via Android
    好吊的样子,我用这些算法都只知道找库直接用的,原理都不清楚。
    crownprince
        14
    crownprince  
       2017-01-10 18:47:15 +08:00 via Android
    攻击思路是很踏实的,可以理解为一种基于时间的盲”注”,但个人认为,基于时间的盲注,在 sql 注入的应用中,因为执行的注入成功时,使用的 sql 语句,所需要的时间更长(长的很明显),所以备受推崇; 但如果只是在后台执行了字符串判断,而且用了位运算,是否会让这种注入方式的时间差很小,很易受到影响?
    qgy18
        16
    qgy18  
       2017-01-10 20:09:53 +08:00   ❤️ 2
    http://php.net/manual/zh/function.hash-equals.php

    php 5.6 还专门增加了一个方法: hash_equals

    比较两个字符串,无论它们是否相等,本函数的时间消耗是恒定的。
    本函数可以用在需要防止时序攻击的字符串比较场景中, 例如,可以用在比较 crypt() 密码哈希值的场景。
    panlilu
        17
    panlilu  
       2017-01-10 21:23:04 +08:00
    感觉好可怕。。服务器性能太好也危险啊 2333
    owt5008137
        18
    owt5008137  
       2017-01-10 21:24:26 +08:00 via Android
    这个思路是蛮可以的
    SoloCompany
        20
    SoloCompany  
       2017-01-11 01:15:21 +08:00
    @xavierskip 你从哪看出来样式和微信有任何关系的?
    难道这不应该是由 hexo 直接导出来的 html 吗?
    https://www.tanglei.name/blog/rsa-and-timing-attack.html
    des
        21
    des  
       2017-01-11 08:08:07 +08:00 via Android
    想到了另外一个侧信道攻击的案例,那个真的是劳动大的飞起。
    文章找不到了,内容大概是一种劫持任意 tcp 的方法。
    Moming
        22
    Moming  
       2017-01-11 08:52:31 +08:00
    问题是书里都有讲这个的……大家难道不是早就知道了吗?
    所以才要让大家用公认的那些库,不要自己随便瞎实现,更不要觉得自己牛逼去造一个什么加密算法……
    jimzhong
        23
    jimzhong  
       2017-01-11 09:27:34 +08:00
    Timing Attack 很早就提出了
    x00m3i
        24
    x00m3i  
       2017-01-11 10:00:40 +08:00
    不是什么新闻
    jininij
        25
    jininij  
       2017-01-11 10:34:06 +08:00 via Android
    @qgy18 在这个函数的说明中,还有一条 note:
    非常重要的一点是,用户提供的字符串必须是第二个参数。
    为什么呢?
    单纯的只是比较,这里应该是二进制安全的,所以强调这个顺序的原因在哪呢?
    Chrisplus
        26
    Chrisplus  
       2017-01-11 10:35:49 +08:00
    ? Timing attack 也不是什么新闻,涉及到核心业务逻辑的加解密签名验证使用现成库的方法是最稳妥的方式,已经被考虑到了
    xavierskip
        27
    xavierskip  
       2017-01-11 12:36:03 +08:00
    @SoloCompany 对不起,我不知道微信公众号是怎么发的,也没见过他们的编辑器。
    hjc4869
        28
    hjc4869  
       2017-01-11 17:59:21 +08:00 via iPhone
    没什么可怕的, AES 也能被侧信道攻击。
    tl3shi
        29
    tl3shi  
    OP
       2017-01-11 20:47:34 +08:00
    @glasslion @Moming @jimzhong @x00m3i 只能说明本人才疏学浅,知识面还太窄。
    @qgy18 文中也提到了这个例子哈。
    @wy315700 确实是,安全方面的都是防范于未然。
    @xiaket 表面上想这些因素确实很敏感,因此有不靠谱的感觉也正常吧?估计只有自己亲自实现了才感觉靠谱。 :)
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3811 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 77ms · UTC 10:30 · PVG 18:30 · LAX 03:30 · JFK 06:30
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.