不可否认性和合理可否认性之间的区别

信息安全 不可否认性
2021-08-29 10:55:43

我在一些书中读过“信息安全的目标”,其中包括不可否认性。

我对不可否认性的理解是,如果 Alice 向 Bob 发送消息,Bob 不仅确信该消息来自 Alice,而且他还可以向 Carol 证明该消息确实来自 Alice(假设 Carol 不信任 Bob)

最近,在观看Moxie Marlinspike的演讲时,我了解到不可否认性不一定是一件好事(您可能想向世界否认消息的作者身份),因此他花时间开发了这个新协议(Axolotl)它有一个叫做“似是而非的否认”的东西,我假设如果 Alice 向 Bob 发送一条消息,Bob 可以确定它来自 Alice,但 Bob 不能向 Carol 证明它确实来自 Alice。

现在,对于初学者来说,这两个想法有点矛盾,因此会造成混乱和这个问题(以及以下子问题)。

  • 信息安全的目标是否发生了变化?
  • 是否存在两者(不可否认性和合理的可否认性)中的任何一个有用的特定用例?(一个例子会有很大帮助)
2个回答

与生活的任何其他方面一样,人们在不同情况下可能有不同的信息安全目标。在某些情况下您需要不可否认性,在某些情况下您需要合理的否认。同样,在某些情况下,您希望在某些方面具有不可否认性,但在其他方面却有合理的可否认性。

例如,假设您已与某人达成交易并希望与他们签订合同。如果合同的一方后来可以拒绝签署,那么这样的合同将没有多大价值。合同的每一方都希望对方的签名具有不可否认性。

另一方面,考虑这样一种情况:您是举报人,向当局通报您的雇主犯下的一些严重罪行,并且您担心您的雇主可能会发现您的泄密。在这种情况下,您需要合理的推诿。

看似矛盾,其实不然。不必同时证明不可否认性和合理的可否认性。您可以拒绝消息的所有权,同时仍保持其真实性,或者您可以通过数字签名来证明您的作者身份。但是你不能同时做这两件事。

一个特定的用例是在Signalapp 消息传递协议中,可以在直接消息中拒绝消息的所有权。每条消息都附加HMAC-SHA256以验证密文的完整性。HMAC 不能用于证明不可否认性,因为发送方和接收方都知道共享秘密。

接收者可以证明消息的真实性,即它确实是由您发送的。如果不是他写的,那一定是你写的。无论采用哪种方式,发送者和接收者都可以验证谁发送了消息。但他们都不能向其他人证明该信息的作者身份。接收者可以使用有效密钥轻松伪造 HMAC,使其看起来像是发送者发送的。他还可以将共享秘密泄露给第 3 方,以便在未来的消息中伪造 HMAC。在这里,您提供了似是而非的否认。

但是在像 WhatsApp 这样的群组消息中,它优化了Signal 群组消息的使用Signature keys每个组参与者都使用其私人签名消息,Signature key每个人都可以验证确实是您发送消息而不是其他人伪造消息。在这里,您提供了不可否认性