30

我知道通过默默无闻的安全性是不受欢迎的并且被认为不是真正安全的,但是通过默默无闻的密码安全性不是吗?只要没有人找到它,它就是安全的。

仅仅是默默无闻的程度问题吗?(即一个很好的加盐和散列的密码是不切实际的)

注意我不是在询问保存密码的过程(假设它们被正确地散列和加盐)。我正在询问使用密码的整个想法,这是一条信息,如果知道可能会危及一个人的帐户。

还是我误解了通过默默无闻的安全意味着什么?我想这就是我认为的意思,即存在一些信息,如果已知这些信息会危及系统(在这种情况下,系统被定义为密码旨在保护的任何内容)

4

8 回答 8

27

你是对的,密码只有在不明确的情况下才是安全的。但“隐蔽安全”中的“隐蔽”部分是指系统的隐蔽性。使用密码,系统是完全开放的——您知道用于解锁它的确切方法,但不属于系统的密钥是未知的。

如果我们要概括,那么是的,所有的安全都是通过默默无闻的。然而,“通过默默无闻的安全”这一短语并不指代这一点。

于 2010-12-20T01:31:19.357 回答
18

通过查看某种意义上相反的东西,也许更容易理解 Security-by-Obscurity 的含义:Auguste Kerckhoffs 的第二原则(现在通常简称为Kerckhoffs 原则),于 1883 年在La Cryptographie Militaire的两篇文章中提出:

[密码] 不得要求保密,必须能够落入敌人手中而不会造成不便。

克劳德·香农将其重新表述为:

敌人知道系统。

埃里克·雷蒙德(Eric Raymond)为:

任何不假设敌人拥有源代码的安全软件设计已经是不可信的。

该原则的另一种表述是

系统的安全性必须仅取决于密钥的保密性,而不是系统的保密性。

因此,我们可以简单地将 Security-by-Obscurity 定义为任何不遵循该原则的系统,因此我们巧妙地定义了密码:-)

这条原则之所以有意义有两个基本原因:

  1. 密钥往往比系统小得多,因此更容易保护。
  2. 破坏密钥的保密性只会破坏受该密钥保护的所有通信的保密性,破坏系统的保密性会破坏所有通信。

请注意,它并没有说明您不能对系统保密。它只是说你不应该依赖它。您可以使用 Security-by-Obscurity 作为额外的防线,但您不应该假设它确实有效。

但是,总的来说,密码学很难,而且密码系统很复杂,因此您几乎需要发布它,以吸引尽可能多的眼球。这个星球上只有极少数组织真正拥有必要的聪明人来秘密设计密码系统:过去,当数学家是爱国者,政府很富有时,那些是美国国家安全局和克格勃,现在是 IBM 和一个几年后,这将是中国特勤局和国际犯罪集团。

于 2010-12-20T15:55:11.290 回答
5

不,让我们通过维基百科的默默无闻来看看安全性的定义

贬义,指的是安全工程中的一个原则,它试图使用保密(设计、实现等)来提供安全性。

该短语是指代码本身,或系统的设计。另一方面,密码是用户必须用来识别自己的东西。它是一种身份验证令牌,而不是代码实现。

于 2010-12-20T01:35:11.387 回答
1

密码是一种身份验证形式。它们旨在识别您正在与您应该与之互动的人互动。

这是安全不同方面的一个很好的模型(我必须在我的安全课程中记住这一点)

http://en.wikipedia.org/wiki/File:Mccumber.jpg

密码是安全保密方面的一个方面。

虽然可能是身份验证形式中较弱的一种(你知道的东西,你拥有的东西,你是的东西),但我仍然会说它不构成通过默默无闻的安全性。使用密码,您不会试图掩盖系统的某个方面以试图将其隐藏。

编辑:

如果您遵循这样的推理,即密码也是“通过模糊不清的安全性”的一种手段,那么所有的安全性,包括加密之类的东西,都是通过模糊性实现的安全性。那么这意味着,唯一没有通过默默无闻保护的系统是一个被混凝土包围并沉入海底的系统,没有人被允许使用它。然而,这种推理不利于完成任何事情。因此,我们使用 Security Through obscurity 来描述使用不理解系统实现作为安全手段的做法。使用密码,实现是已知的。

于 2010-12-20T01:18:37.390 回答
1

我知道通过默默无闻的安全性是不受欢迎的并且被认为不是真正安全的,但是通过默默无闻的密码安全性不是吗?只要没有人找到它,它就是安全的。

为了回答这个问题,我们真的需要考虑为什么“通过默默无闻的安全”被认为是有缺陷的。

通过默默无闻的安全性存在缺陷的一个重要原因是,实际上很容易根据系统与外部世界的交互对系统进行逆向工程。如果您的计算机系统位于某个地方,正在愉快地验证用户身份,我可以只观察它发送的数据包,观察模式,并弄清楚它是如何工作的。然后攻击它很简单。

相比之下,如果您使用的是适当的开放加密协议,那么再多的窃听也不会让我窃取密码

这基本上就是为什么掩盖系统是有缺陷的,但掩盖关键材料(假设是一个安全的系统)不是。通过默默无闻的安全性本身永远不会保护有缺陷的系统,而知道您的系统没有缺陷的唯一方法是对其进行公开审查。

于 2010-12-20T01:42:52.100 回答
0

不,他们不是。

通过默默无闻的安全性意味着提供访问保护的过程只是安全的,因为它的确切细节不公开。

此处公开意味着每个人都知道该过程的所有细节,当然,构成密钥的随机部分除外。请注意,每个人仍然知道可以选择密钥的范围。

这样做的效果是可以证明唯一需要保密的部分是密码本身,而不是过程的其他部分。或者相反,获得系统访问权限的唯一方法是通过某种方式获取密钥。

在依赖于其细节的模糊性的系统中,您无法获得这样的保证。很可能任何发现您正在使用的算法的人都可以找到进入它的后门(即一种无需密码即可访问系统的方法)。

于 2010-12-20T01:29:13.310 回答
0

简短的回答是否定的。密码本身并不是默默无闻的安全性。

可以认为密码类似于密码学中的密钥。如果您有密钥,您可以解码消息。如果你没有钥匙,你就不能。同样,如果您有正确的密码,您可以进行身份​​验证。如果你不这样做,你就不能。

security by obscurity 中的晦涩部分是指该方案的实施方式。例如,如果密码以明文形式存储在某处,并且其精确位置被保密,那么这将通过默默无闻来保证安全。假设我正在为一个新操作系统设计密码系统,我将密码文件放在 /etc/guy/magical_location 并将其命名为“cooking.txt”,任何人都可以访问它并读取所有密码,如果他们知道它在哪里. 有人最终会弄清楚(例如通过逆向工程)密码在那里,然后世界上所有的操作系​​统安装都会被破坏,因为我依靠默默无闻来保证安全。

另一个例子是,如果密码存储在每个人都可以访问它们但使用“秘密”密钥加密的地方。任何有权访问密钥的人都可以获得密码。这也将是默默无闻的安全。

“模糊性”是指算法或方案的某些部分是保密的,如果它是公共知识,则该方案可能会受到损害。它不是指需要密钥或密码。

于 2010-12-20T01:32:57.013 回答
-2

是的,你是对的,这是你所拥有的一个非常重要的认识。

太多人说“默默无闻的安全”,却不知道他们的意思。您在所有问题上都是正确的,那就是解码任何给定实现的“复杂性”级别。用户名和密码只是它的复杂实现,因为它们大大增加了获得访问权限所需的信息量。

在任何安全分析中要牢记的一件重要事情是威胁模型:您担心谁,为什么以及如何防止它们?你不覆盖什么?等。保持分析和批判性思维;它会很好地为您服务。

于 2010-12-20T01:27:52.740 回答