解密密码术?

最近的文章夸大了释放每个地穴,使用正式方法创建的密码库,用于证明针对特定攻击的安全性。

这个广达电脑杂志文章推出了一系列“蛇油”警铃。作者的Github自述文件更精确、更精确,并说明这是一个多么酷的项目。但它不是“防黑客密码”。

4月5日发布,2019年上午9:31•25条评论

评论

浮士德·4月5日,2019年11点半

有趣的是,但即使是项目页面对我来说也太PR了。大多数密码算法缺乏对其基本运算的正式证明。正确地实现算法当然是重要的一步,但这并不能证明结果是牢不可破的。

弗兰克·4月5日,2019年下午2:43

对于密码研究人员来说,这可能很有趣。在应用信息技术领域,密码的简单使用更为重要。例如,基础知识,比如如何在CBC模式下安全地使用AES。对于平均水平或高于平均水平的开发人员来说,这是一个复杂的过程,直到今天都很容易出错。

“易于使用”加密库或包装器将是一个很大的帮助!

帕里·诺尔·4月5日,2019年下午3:12

@浮士德

>大多数密码算法缺乏基本运算的形式证明。正确地实现算法当然是重要的一步,但这并不能证明结果是牢不可破的。

不仅如此,“可证实的正确实施”只是相对于底层基础设施的特定抽象而言。摘要,就其本质而言,过滤掉至少一些(通常是很多)细节。许多安全问题都没有被注意到,因为它们在安全性被检查的抽象级别上是不可见的。

浮士德·4月5日,2019年下午5:23

@佩里·诺瓦

许多安全问题都没有被注意到,因为它们在安全性被检查的抽象级别上是不可见的。

说得好!

面对·4月5日,2019年的6点

哦,来吧!他将“编译器”命名为克里姆林宫。

我不可能是唯一一个知道这个笑话的人。

1 & 1 ~ =嗯·4月5日,2019年下午10:53

在周五的squid页面上* @Taz问道,

“真的还是蛇油?”

我的答案是,

记者执照充其量,更多的“未知点击诱饵”。

文章开头是,

“‘研究人员刚刚发布了防黑客密码——与数学证明一样不可战胜的程序。’”

这听起来冠冕堂皇的,但事实上,这并不能作为一个论据。

我将概述一些问题,其他人可以填写更多;-)

周围有许多所谓的“数学证明”,它们通常是指在现实世界中的蹲下,因为你会发现它们基于两个假设,

1)这就像另一个证据。
假设另一个证明是有效的。

哦,还有经典的“忽略现实”,

3)论证范围受到限制。

实际上,“纸牌之家”认为没有风,桌子颠簸,猫跳起来或其他不在非常有限的范围内的事情不会发生,并击倒房子…

如果你再往下看这篇文章,你会发现这个库实际上是基于“形式方法”的。不幸的是,这背后有很多假设。

第一个也是最重要的是形式验证,它只验证输入,不是输出或者输出发生了什么,这只是“假定”作为一个给定的…

如果人们仔细想想,什么是形式验证,是“一个自上而下的过程,它只在计算堆栈的很短一段时间内停止”。

在许多情况下,输出实际上只是更多的“源代码”,因此它停止在编译器预处理器和所有后续部分成为运行代码之上。

正如很久以前Unix的创建者所指出的那样,编译器可以在很多方面被颠覆,甚至连专业的程序员也找不到。

但是让我们假设您是一个真正的专家,并且能够浏览汇编程序输出——它仍然只是源代码——并验证这一点?

如果我把我的黑客放在实际汇编程序、链接器或其他对象代码库中会发生什么。作为一名专家,您是否足够了解每一个对象的实际代码?

但让我们假设你是某种长着雪白胡须的大师,沉迷于用面板上的开关加载代码,你能检查一下CPU内部的微码吗?

除非你为英特尔工作自从Pentium Bug以来,每当CPU被拖进生命周期,所以在最好的情况下,“这是一场可移动的盛宴”……

但是让我们进一步假设你实际上是一个硬件大师,不仅仅是胡子,但是,如果你白天外出,品尝真正的麦芽酒和一顶平顶帽来覆盖马匹尾巴上的光秃斑块,并不能阻止晒伤的风险。您能检查到RTL的转换和用于构建芯片的底层硬件宏吗?

让我们假设你可以降低到逻辑门的级别,因为你是一个有着数千种能力的计算机减肥者…

每一块芯片的器件物理如何…

安全就像伊科曼所观察到的宇宙“与观察者无关”而且不仅受观察者范围的约束,也受宇宙规则的约束。

但是,关于“低于CPU ISA”的最后一点绝不是理论上的,还有诸如Rowhammer和Meltdown之类的实际攻击,另外,据我所知,至少在20世纪80年代以来,由于DMA和MMU上的类似情况而不时出现的所有I/O攻击。

但还有一个比“黑天鹅”更严重的问题,至少可以想象到攻击,毫无疑问,要发现的攻击与其他已知的攻击类别没有共性,因此,不能基于现有的知识来设想……

那么这个软件库安全吗?

在所有上述问题都解决之前…这并不是说库是不安全的,但您不能证明它在实际的实现中是安全的,这就是为什么在一天结束的时候,大量的钱被花在了emsec(类固醇的临时测试)和通过scif的“隔离”上。或者就像这个博客上所说的“能量大缺口”。

我希望你能满意地回答你的问题(和其他人一起阅读)。

*//www.vbispy.com/blog/archives/2019/03/Friday_Squid_bl_670.html_c6790935

1 & 1 ~ =嗯·4月6日,2019年12:23 AM

@ Bas:

“我们可以使用常数时间算法来抵御定时攻击。”

它们在单用微控制器上工作得很好,没有高速缓存或其他扩展的低级硬件功能,您可以在现代桌面/服务器CPU芯片上找到。

在AES最终定稿时,有一两个人对AES的竞争发出了警报,而NIST实际上是NSA的代表,根本没有提到计时频道。

从那时起,其他人就指出,比赛页面上发布的“速度测试”的比赛规则有一些问题,比如在它们中的循环分解。其中一个人通过高速缓存时间构建了漏洞代码,这在局域网中相当容易实现…

正如国家安全局可能希望的那样,“速度测试代码”最终通过使用互联网上可用的开源代码库,直接和间接地复制到人们的代码中。

即使现在,仍然有一些计算系统在可访问网络上使用“速度测试代码”,我完全期待着,在另一个四分之一世纪左右的时间里,仍会有一些人。

这是一种“已知的攻击”,你所链接的论文的作者正试图解决这种攻击。但正如链接中介绍的那样

“但是,如果没有进一步的理由,担保仅适用于语言(来源,目标,或中间代表)在其上执行分析。”

它只是现有形式方法的一个变种,因此受制于其中的假设,因此,警告。

问题是在过去的一年里,一种针对CPU硬件的新攻击发生了,影响了英特尔,AMDARM和其他类似的CPU架构。这已经被@Thoth和其他人称为“不断给予的礼物”,因为新的变化还在被发现。

我怀疑,预测其他“低于CPU ISA”的攻击将被发现是相当安全的,其中任何一个攻击都可以用来在库代码中生成错误,或者用于摘录硬件错误,这些错误将打开其他端通道,而不是基于时间的通道。

重点是,正式的验证和它的方法目前是一种自上而下的方法,最多只能向下一点。硬件攻击是自下而上的,在目前的形式方法的范围内,对于“主动电子战安全”中使用的“故障注入攻击”,绝对没有用处。

如果你搜索这个博客,你会发现@nick p的评论,@clive和@wael讨论了CPU ISA级别以下的“冒泡攻击”问题,以及当前没有任何正式的验证可以阻止他们使用当前的CPU架构。因此,最好的方法是在硬件上进行缓解。

如果你在这个博客上搜索@Thoth,你会发现他正在围绕智能卡的使用设计这样一个系统。此外,UCL的一组安全学者似乎对@thoth和其他人在本博客上讨论过的工作毫无信任,如前所述,在这个过程中“只对了一半”。

通过单CPU系统上的软件方法实现安全性,即使那些有多个核心的系统也是一个“总线刷新”,因为硬件实际上可以处理共享控制,输出到存储器和系统其他部分的数据、地址和电源总线。

同样,多个CPU系统共享外部内存,并与I/O和DMA控制器共享,除非采取某些预防措施。这些预防措施背后的想法显然仍是“秘密”,尽管高中阶段的物理学习可以让你知道所有你需要知道的事情。

即使是CPU ISA上的机器代码也几乎不能使这个区域安全。事实上,正如Bern在这篇博客中指出的那样,由于“安全V效率”问题,从键盘微控制器到主CPU的“过度偏执”是一个真正的问题。从本质上讲,你越高效地让CPU操作系统和驱动程序编码在上面和下面,因此,系统越透明,泄漏的内部状态就越多。

噢,还有一些关于“故障注入”的讨论,使用“错误处理和纠正机制”作为一种通过计算机向后探测的方法,以获得大多数人认为是分离或分离的过程,甚至可以通过数据二极管反向工作,练习潜侧通道。

这是一个充满敌意的世界,肯定有成千上万的人头脑中有“扭曲的小片段”,让他们能够像@Bruce Schneier所说的那样“思考hinky”,他们已经从当前的正式验证方法试图阻止的软件漏洞中走出来。

研究攻击者已经从计算堆栈转移到较低级别的硬件,在这些硬件中,正式的方法几乎无法减轻通过计算堆栈上升的攻击,破坏了目前正式核查方法所依据的假设。

我喜欢珠穆朗玛峰计划的目标,但现实情况是,攻击已经被证明已经超越了它所能实现的范围,所以从更严格的安全角度来看,它几乎不会迟到。然而,对于那些购买电脑的人来说,建造真正有围墙的电脑花园,是的,珠穆朗玛峰将非常符合某些利益。

加什·4月6日,2019年上午6:37

我对这里的正式方法有一些几乎是敌意的反应感到惊讶。

肯定的是,珠穆朗玛峰项目只能对旁道攻击做出非常部分的声明,如果在不正确/损坏的硬件上运行,则不保证任何内容,等。但它也提供了非常非常有力的保证,保证在其规范所涵盖的实现方面不存在实现错误(各种各样的编程或数学错误,这些错误已经进入了现有的实现中,例如,使用算术技巧不正确地优化大数运算)。在这些方面,它基本上比所有现有的相同协议的实现更安全。

怎么,当人们努力提供一个经过验证的实现时,它比我们目前所拥有的任何东西都要安全得多,人们决定专注于方法“不”涵盖的内容,而不是认识到它所覆盖的部分已经取得了令人印象深刻的进步?肯定的是,夸张的新闻是夸张的新闻(这些文章基本上都是在任何研究成果上发表的)。人们很快就对“牢不可破的X”做出夸张的断言。或者带着一种错误的安全感游泳,因为误解了所涵盖的内容。但是有很多真正可靠的工作,如果我们采用它,扩展它,并尽最大努力采用这些最先进的开发方法,加强每个人的安全。为什么不庆祝一下呢?

1 & 1 ~ =嗯·4月6日,2019年十一12点

@加什:

“我对这里的正式方法的一些反应感到惊讶,这些方法几乎是敌对的。”

正如在讨论的文章中所看到的,正式的验证和方法可以而且经常被过度销售。

它们在系统安全方面的作用很小,而且,他们仍然很容易在据称能够做到的事情上失败。这在20世纪50年代就已为人所知,尤其是当工具容易被误解或误用时。

对于粗心大意的人来说,系统安全是一条充满陷阱的漫长道路,以写这篇文章的记者的方式鼓励不谨慎的思考,这需要强有力的反驳,希望能够缓解(如果不是防止)未来的问题。

关于,

“为什么,当人们努力提供一个经过验证的实现时,它比我们目前所拥有的任何东西都要安全得多,人们决定专注于方法“不”涵盖的内容,而不是认识到它所覆盖的部分所取得的令人印象深刻的进步?”

您只需将其视为安全的消息传递应用程序,原因就在于“为什么会这样”。很多人都在谈论通信链路的安全性,但在更重要的端点安全性方面,它们都存在重大缺陷。这在应用程序中实际上是不存在的,所以这些应用程序虽然作为自切片面包以来最安全的东西出售,因为使用了密码,在现实中很容易颠覆与一个简单的结束运行攻击。

形式方法也是如此,它们只是长链上的一环,发表声明,声称他们神奇地加强了所有其他薄弱环节,这不仅是可笑的,而且是不诚实的欺诈点。

这让我们想到,

“但是有很多真正可靠的工作,如果我们采用它,扩展它,并尽最大努力采用这些最先进的开发方法,加强每个人的安全。为什么不庆祝一下呢?”

是的,有很多扎实的工作,但它不能独立,本例中的实际研究人员已经意识到这一点并表示同意。

问题是,有一种表达“工程师们在没有意识的情况下管理世界是一件大事”世界就是这样运作的,一般来说,人们对工程师不感兴趣,他们被视为“向轮胎中注入空气的油性油佬”,只有在他们失败的时候才认识到。

有句老话说“奖励,周围的声音就像尿在你的黑裤子里,你会有短暂的温暖感觉,很快就冷了,如果你幸运的话,没有人会注意到。”

研究人员和大多数软件开发人员也是如此,他们对成功的真正奖励是通过掷骰子的方式给另一个人,直到他们失败,被羞辱或聪明起来,并进入其他工作,如管理,在那里他们的失败可以传递给其他人。

道格拉斯·亚当斯在评论别人时总结了这一点,

“然后,一个星期四,将近两千年前,一个人因为说要改变对人们好是多么的伟大而被钉在树上,一个女孩独自坐在里克曼斯沃思的一家小咖啡馆里,突然意识到一直以来出了什么问题,她终于知道如何把这个世界变成一个美好而快乐的地方。这次是对的,它会起作用的,没有人会被钉在任何东西上。”

然后在故事中世界被沃贡人摧毁了为了做一个超空间绕道所以她没有告诉任何人。

开玩笑的是,我曾经被告知“好消息不卖报纸,“史密斯夫人赢得蛋糕大赛”是一个标题,只有那些喜欢史密斯夫人的人才真正感兴趣。即使是在当地报纸上。然而,《史密斯夫人的蛋糕毒死了蛋糕大赛的评委》引起了更广泛的关注,可能会在新闻淡季登上全国媒体。但“史密斯夫人的蛋糕毒害了英国女王”将成为世界各地报纸的头条新闻。”

就在这几年前,迪夫人在巴黎地下道上被爸爸和一个失控的豪华轿车司机杀害,但事实证明这句话是真的,所以她很伤心。

简单的事实是可悲的,因为只有那些知道并且喜欢工程师或研究人员的人才会对“他们做得很好”感兴趣。这只是人类条件的一部分。习惯它,或者找到一种赚钱的方法,可以给你带来名利。那么人们会在你朋友圈之外对你感兴趣。

浮士德·4月6日,2019年下午5:34

@gasche

我一点也不反对正式的核查。我觉得这很有趣,我花了很多时间和阿格达一起工作。

但正如人们指出的,它只覆盖了这么多。黑客的工作,因此对于安保人员来说,直接进入未覆盖的区域。

丹顿划痕·4月7日2019早上6:15

嗯-我认为量子文章不是唯一一个过度炒作的地方。

Github页面的标题指的是“敏捷性能”。这本身就可以了(尽管这种用法无法解释)。但文章接着将其API描述为“敏捷”。这也是无法解释的;我从来没有听说过“敏捷API”(很明显,谷歌有,但那又怎样呢)。

所以"我不认为这个词的意思和你想的一样"(~尼蒙托亚)。

在软件开发的背景下,“敏捷”是指各种团队管理技术,使团队能够更快地响应不断变化的需求。它的意思不是“快”,这并不意味着“多才多艺”。

当一个软件项目的营销材料劫持了技术术语,使自己听起来更酷时,我觉得这很令人不快。

Morne Butor·4月8日2019年5:55 AM

不要混淆计算机科学研究论文,及其未来的潜在应用。这是计算机科学的一大步,但是我们都知道,在达到安全的高度之前,还有数百个步骤要做。耐心点!或者更好,不耐烦,让下一步发生…形式方法还处于初级阶段,他们需要时间才能长大。

那彼得·4月9日11 2019年55点

证明正在使用的密码没有价值是一回事,但这是另一个更好的建议。

菲利普C。·4月10日2019年32点

我相信出版物是“量子”,不是“量子”。虽然我本人并不反对这个博客。

威利·4月10日2019年一我

@德里克·琼斯

当然可以,但不一定如此。在威胁建模过程中,正式验证在定义更好的权限边界和简化数据流图方面非常有用。例如,IIS' HTTP.sys is (Was?我跟不上微软的东西)HTTP协议被证明是正确的实现,只有当某个愚蠢的开发人员在没有重新验证的情况下添加了缓存层时才会出现问题。对于像完整性微内核或SEL4这样的RTOS系统也是如此。是的,当有人声称整个系统被证明是正确的,并且不知何故使其“不可动摇”,但它仍然是减少攻击表面积的宝贵工具。

不管怎样,这种“unhackable加密”事物只是破坏了形式验证的意义,特别是因为它意味着密码学本身是完美无缺的。有被证明是正确的加密实现是很有用的,但远不如从攻击者控制的源暴露于复杂数据格式的系统有用,对于加密库来说,这种情况很少发生。唯一有用的原因是我们不必担心,5年后,有人会说,我想我们忘了在这里做这个乘法,时间是不变的。”或“该死,我想还有另一个填充甲骨文攻击需要修复”。

威利·4月10日2019年1:46 AM

(免责声明:我根本没有看过这个,也不知道它与其他正式验证的库(如MITL)有什么不同)

@彼得·彼得

没有人建议使用新密码。这是一个加密库。

1 & 1 ~ =嗯·4月11日,2019年下午5:22

@彼得彼得:

“证明正在使用的密码毫无价值是一回事,但这是另一个更好的建议。”

你的逻辑有点不健全。

说“证明”意味着相当高的技能水平,几乎可以肯定的是,它比当时设计密码的设计师要好。

通常证明都隐含着自己的解决方案或知识,不能有解决方案。在前一种情况下,仅仅因为你可以使用证明方法,提出了一种新的失效机理设计方法。

·4月16日2019晚上11:38

@carrots

有趣的事实,《傻瓜密码术》的作者被那个愚弄了,推广诈骗艺术家(罗伯特·格兰特),他创建了这个网站,他的员工(包括一个相当有名的诈骗艺术家)都来自同一所假冒的大学。她继续相信密码界是“活跃的”关于此:https://twitter.com/chey_cobb/status/1111758461669384194

我也第二次看录像。它是滑稽的。

1 & 1 ~ =嗯·6月12日,2019年下午2:58

@吉姆:

“考虑一个可以更改密钥的谜机
每隔几秒钟。”

在替换密码中有一个有限的多字母密码。依赖于极少数固定轮的有限多字母密码具有“循环”那很突出。为了解决这个问题,轮子上安装了简单的替代弹头,这样它们就可以相对于轮子的棘轮运动。但这会移动,但不会破坏循环,因此棘轮会多次发生,从而截断循环。

但截断远远不够,因为车轮的移动基本上仍然是老式车辆的机械里程表里程计的移动。所以你需要做其他的改变。首先,你不需要选择更多的轮子,你需要更多的东西。你可以通过让轮子上的圆盘可以反转来稍微作弊,也就是说你可以把它们翻过来。你可以使里程表的移动方式不同,这样车轮就会以一种非常不规则的模式前进,你也可以做一些相反的步骤。

所有这些都是在一些最后的机械密码机中完成的。但到了最后,他们都不只是威慑,他们是由于其他缺陷,实际上是可逆的。也就是说,你可以把它们的内部状态倒过来。这意味着,如果你能足够快地模拟它,你就可以通过每一个需要的状态映射出实际的状态。因此,如果您有一个足够的“已知纯文本”和它的共同响应“密码文本”,您可以分析它,并轻轻拉动那些松散的线程,这些线程是消息统计数据,并完全确定内部状态。

虽然有一些方法可以做到,但机械的复杂性会变大,摩擦会使其停止工作。但更糟糕的是,机械的单摆会使齿轮不足以适应使用。因此,对机械密码的限制是自然法则。布莱切利学院的艾伦·图灵·同时代人,在破解高登·威尔奇曼之谜方面可以说更聪明。和炸弹一样,唯一的解决办法是从机械装置上移开,即使是机电原理,也会进入到完全电子化的领域,在那里,其他自然法则仍然适用,正如我们在摩尔定律中发现的那样,而摩尔定律并不是一条定律,它冲击着热力学真正定律的缓冲器。

因此,建立安全威慑系统的诀窍是使内部状态的解卷变得如此复杂,不仅是宇宙中没有足够的时间来运行统计数据,但也没有足够的物质来保存统计所需的所有状态,以找到足够有意义的信息。

哦,更简单的方法是,“掷上帝的骰子,为你和你的朋友做几张纸条。”

发表评论

允许的HTML:····

乔·麦金尼斯的布鲁斯·施耐尔侧边栏照片。

施耐尔的安全是一个个人网站。betway88必威官网备用表达的意见不一定是IBM弹性