Security Research - Cryptographic Protocol

搞不动密码学的理论研究,但可以搞搞应用密码学的研究嘛。

研究在工业界中的密码是如何应用的,也是一件非常有趣的事情。

Feed

做研究,不能闭关锁国,一门心思自己搞自己的,还是保持跟安全圈的联系,多多关注时事,feed自己,为自己提供一些研究思路和经验。

为此,我收录了一些RSS订阅源

每天会花点时间在feedly.com上看几篇感兴趣的文章。

这边记录看过的一些Applied Cryptography相关的文章。

2021.06.06

Cryptography Dispatches: The Most Backdoor-Looking Bug I’ve Ever Seen

Telegram’s modified DHKE protocol allows MITM attack.

有的时候画蛇添足反而会引入新问题

2021.06.07

Kaspersky Password Manager: All your passwords are belong to us

Kaspersky Password Manger使用时间作为MT19937的seed,并用MT19937作为随机源来生成password,导致password会被brute force攻击。

文章还阐述了优秀的密码生成器是怎么实现的,以及用概率论工具来分析password的强度/安全性。

2021.06.12

The Illustrated TLS Connection

TLS全过程详解


Partition Oracle Attacks

2021.06.14

https://mp.weixin.qq.com/s/Ft1IV1Ce8pql0PJ1EGSKog

密码系统的安全性应该仅仅依赖于密钥的安全。

但是,在具体实现过程中,密钥(这个高度敏感的数据)往往都是毫无差别地与普通数据共同存储在内存中。在某些情形下,攻击者只需要从内存中dump部分密钥,即可恢复出所有的密钥,攻破整个密码系统(Heartblood)。

而且有些密码算法会使用PBKDF来生成加密的key,先用password生成主密钥,然后再从主密钥中扩展出子密钥,password、主密钥和子密钥其实是等价的信息,攻击者获取其中任何一个就能攻破整个密码系统。(密钥会扩展延伸,单纯保护密钥是不足够的)

沿着这个思路,GOSSIP研究团队设计出了一套密钥隔离机制,并上了IEEE S&P顶会。

2021.06.16

Pa(dding|rtitioning) oracles, and another hot take on PAKEs

研究心得

国内似乎少有安全研究人员会主攻这个领域(目前了解到的只有彭博),但是国外有不少研究人员和团队在这个领域上有大量的研究成果(例如NCC group

其次,这个领域能挖到的洞,往往都不像RCE那样危害性大,而且大多时候利用难度很大(例如中间人攻击);有些时候协议本身其实问题并不大,只是没有满足更高层次的安全要求罢了。

正是由于国内存在这样一个缺口,对这个领域的研究就很显得有独特性,可以大搞特搞。

挑战:并没有太多前人的经验可以参考,大部分时候只能摸着石头过河,走出一条自己的路。

体系架构

密码原语(cryptographic primitives)

  • Symmetric/Asymmetric encryption algorithms
  • Hash functions
  • Digital signatures
  • Message authenticaiton codes
  • Randomness
  • Key exchange

密码协议(cryptographic protocols)

  • TLS
  • SSH
  • IPSEC

拿做菜来作比方

密码原语=食材、调料

密码协议=菜品

想要做出一个“好”的密码协议,就得从两方面考虑

  • 食谱(设计层面):食材之间是否有冲突、是否能符合顾客口味
  • 做菜(实现层面):食材是否新鲜、每个食材的下锅顺序、火候把控

一些想法

  • 忧愁:投入了几天的时间,审计了一个开源协议的源码,发现作者写的实在是太规范了,基本上不可能挖到洞。

    我们换一个思路想,从审计源码的过程中学到了很多新知识,不亏;而且通过审计这个协议,了解到了优秀的代码是什么样的,对后面审计一些不太够优秀的代码是有一定帮助的。

  • 可以去搜集一下历史上所有crypto相关的漏洞,做一个类似于区块链安全 | 长亭科技发布公链审计Checklist密码协议审计Checklist,可以在审计的过程中根据历史经验来挖洞(重复性劳动)。

  • 倒是很佩服那些能够挖到新型漏洞的师傅,感觉这需要在审计代码、掌握机理的基础上,深入思考剖析,可能还需要靠直觉和灵感(创造性劳动)。

  • 零信任安全框架是一个很大的东西,涉及到了身份认证、控制访问、流量转发等多个方面,想要全都搞懂需要耗费很多时间和精力的。在安全研究的过程中,为了保证短时内有成果产出,只能选取一些安全风险比较大的组件进行深入研究,例如分析身份认证过程中的使用的具体密码协议/算法,尝试挖掘漏洞。(抓主要矛盾

书籍

Real World Cryptography - David Wong

《船》 - 白桦

看到了好几次这首诗,感觉特别有感触,也贴一下,愿与君共勉~

我有过多次这样的奇遇,

从天堂到地狱只在瞬息之间:

每一朵可爱、温柔的浪花

都成了突然崛起、随即倾倒的高山。

每一滴海水都变脸色,

刚刚还是那样的美丽、蔚蓝;

旋涡纠缠着旋涡,

我被抛向高空又投进深渊……

当时我甚至想到过轻生,

眼前一片苦海无边;

放弃了希望就像放弃了舵柄,

在暴力之下只能沉默和哀叹。

今天我才有资格嘲笑昨天的自己,

为昨天落叶似的惶恐感到羞惭;

虚度了多少年华,

船身多次被礁石撞穿……

千万次在大洋里撒网,

才捕获到一点点生活的经验,

才恍然大悟,

啊!道理原是如此浅显;

你要航行吗?

必然会有千妖百怪出来阻拦;

暴虐的欺凌是它们的游戏,

制造灭亡是它们唯一的才干。

命中注定我要常常和它们相逢,

因为我的名字叫做船;

面对强大于自身千万倍的对手,

能援救自己的只有清醒和勇敢。

恐惧只能使自己盲目,

盲目只能夸大魔鬼的狰狞嘴脸;

也许我的样子比它们更可怕,

当我以命相拼,一往无前!

只要我还有一根完整的龙骨,

绝不驶进避风的港湾;

把生命放在征途上,

让勇敢来决定道路的宽窄、长短。

我完完全全的自由了,

船头成为埋葬它们的铁铲;

我在波浪中有节奏地跳跃,

就像荡着一个巨大的秋千。

即使它们终于把我撕碎,

变成一些残破的木片,

我不会沉沦,决不!

我还会在浪尖上飞旋。

后来者还会在残片上认出我,

未来的诗人会唱然长叹:

“这里有一个幸福的灵魂,

它曾经是一艘前进着的航船……”

Load Comments?