当我想到不安全的软件时,我认为它“太有用了”并且可以被攻击者滥用。因此,从某种意义上说,保护软件安全是使软件使用率降低的过程。在理论计算机科学中,您无法与现实世界合作。那么,使用纯理论进行工作时是否存在安全方面的顾虑?还是硬币的另一面,理论计算机科学会影响被黑客入侵的现实世界吗?如果是这样,哪些安全主题被认为是理论上的?
当我想到不安全的软件时,我认为它“太有用了”并且可以被攻击者滥用。因此,从某种意义上说,保护软件安全是使软件使用率降低的过程。在理论计算机科学中,您无法与现实世界合作。那么,使用纯理论进行工作时是否存在安全方面的顾虑?还是硬币的另一面,理论计算机科学会影响被黑客入侵的现实世界吗?如果是这样,哪些安全主题被认为是理论上的?
Answers:
通过多种方式:
考虑示例“ 有线等效隐私”,但实际上并非如此:由于令人尴尬的基本理论疏忽(pdf),WEP在几分钟之内就可破解。
布鲁斯·施耐尔(Bruce Schneier)在“为什么计算机不安全”一书中打趣道。
安全工程涉及对Satan的计算机进行编程。
撒旦的计算机很难测试。
来自网络入侵检测的流算法研究有很多现实世界的动机。下面的论文使用流算法进行经验熵检测,以检测网络流量中的异常情况。
Yu Gu,Andrew McCallum和Don Towsley。使用最大熵估计来检测网络流量中的异常。在IMC '05:第五届ACM SIGCOMM会议的互联网测量会议记录,第1-6页,2005年
与其他答案不同,这与“在说某些东西“证明是安全的”时我们应该担心的事情”大相径庭,与在安全性中使用TCS的地方相反。因此,它在处理理论时解决了安全性问题的第一个问题。
正如黑客所说,理论结果通常与真实世界的安全性有关。Alfred Menezes和Neal Koblitz在他们的“ 另类看 ” 系列文章中提出了这样的论点,从理论上,科学上和精确度上都做了进一步的警告(警告:该网站对我来说似乎有点对抗性,但我认为质疑假设的基本思想非常重要)。他们指出了密码学标准假设中的弱点,即使在开创性论文中也是如此。
一些示例(引用/解释其站点上的一些点):
安全性定理是有条件的,它假定了某些数学问题的难解性。
通常,难解性假设是针对一个复杂且人为设计的问题:在某些情况下,该问题与安全性得到“证明”的协议的密码分析问题完全相同。
有时,证明的紧密度差距很大,但仍建议使用参数大小,就像证明是紧密的一样。在这种情况下,证明通常会给成功攻击的运行时间给出无用的下限。此外,渐近结果不一定为实际使用范围内的参数提供任何安全保证。
安全性定理使用某种安全性模型。某些攻击(尤其是旁通道攻击)很难建模,而已提出的模型严重不足。
可确定性是编程语言研究中的核心问题。即,在构建仅接受满足某些特性的代码的编程语言上投入了大量的精力。典型的静态语言只能提供较弱的保证,例如如果某些方法不存在,则拒绝程序,但是可以想象该语言是否还会抛出程序,例如,不当使用互斥体,或试图读取超出存储区域末尾的内容。显而易见,可判定性问题很快出现(最简单的情况:指定编译器应仅接受终止程序),并且肯定存在效率方面的问题(ML类型检查器具有双指数情况)。
无论如何,PL研究社区对安全性非常感兴趣(您是否相信浏览器可以运行任意外来代码?!),他们的问题导致许多经典的CS理论问题。