可审计的PAKEs:在无可信第三方的情况下接近公平交换(讨论实录)
彼得·Y·A·瑞安(B)
卢森堡大学,卢森堡,卢森堡 peter.ryan@uni.lu
这是我去年与比尔·罗斯科合作完成的工作。当时我正处于学术休假期间,因此这可以说是一场关于“我的学术休假期间所做之事”的报告。我想这项工作似乎契合了本次会议系列中逐渐显现的一个主题——攻击检测。我或许应该解释一下,“强调可审计性”这一术语据我所知是由比尔提出的,用来描述协议的设计方式,使得合法参与方能够检测到自己是否正遭受攻击。这一点我希望接下来会变得清晰明了。
让我先介绍一下大纲。这些想法源于比尔早前的一些工作,牛津的人们通常称之为HISPs:人机交互安全协议,但我认为这与我们一直在讨论的带外信道是同义的。如果它们并不等同,我很乐意听取纠正。因此,我将简单提及这些内容。我会谈到“隐蔽式”猜测攻击,即攻击者试图使猜测攻击变得不可察觉,使其看起来像网络故障或类似情况,表现为协议中止而非明显的攻击。然后我将简要介绍比尔提出的通用转换方法,用于在此意义上使人机交互安全协议具备审计能力,接着我将简要讨论PAKEs:口令认证密钥建立协议,以及HIPSs与PAKEs之间的区别。
我在牛津时出现的一个自然问题是:“我们能否应用这些技术使PAKEs具备可审计性?”乍一看,这似乎应该是很简单的,但实际上并非如此,我将尝试说明这一点。我们不得不开发一些新技术,我们认为这些技术本身可能具有独立的研究价值:即随机公平交换。这就是本次讨论的概要,让我们看看是否能在半小时内完成。
我认为大家可能都比较熟悉HISPs,或带外信道协议。其思想是参与者可以使用某种低带宽不可伪造信道,来确认他们已经通过例如基于Diffie‐Hellman的协议建立了共享的私钥。因此,我们不使用公钥基础设施,也不假设存在共享密码或类似的东西,认证完全来自这种不可伪造的带外信道。
这里的要点是,我认为这是比尔的观察结果,我不确定之前是否有人注意到这一点:攻击者可以在一端尝试中间人攻击或伪装攻击,仅仅通过猜测来进行。例如,他尝试对自己注入到迪菲‐赫尔曼项中的随机性进行猜测,并希望这会导致最终双方比较的短摘要达成一致。
当然,如果不符合条件,双方将不会继续。但问题在于,攻击者可能通过在协议中扮演适当的角色,设法在自己公开摘要之前先获取对方的摘要,如果摘要不匹配,他可以直接中止。而合法方可能会将此情况误认为是网络故障或另一方崩溃所致。
因此,攻击者可以通过这种方式增加在合法方意识到遭受攻击并采取规避措施、阻止进一步猜测、延长代码长度、寻找其他渠道等之前所能进行的猜测攻击次数。如果仅针对单个节点进行攻击,可能并不会带来太大优势,但如果将这种攻击扩展到多个节点组成的网络,就会开始产生一定的效果。好的,这就是所谓的隐蔽式攻击,我们的目标就是设法抵御此类策略。
比尔建议的是对这些协议进行一种非常简单的转换,这种转换依赖于一个delay结构,我认为在过去这种结构有时被称为时间锁定加密。实现这一概念有多种方式,你可以借助第三方,由其在不同时间间隔广播解密密钥;或者你可以使用时间谜题类问题。其核心思想是,确保被延迟封装隐藏的信息能在一段合适的时间内保持保密,但最终会适时公开。在这种情况下,公开时间应明显超过相关协议的超时周期。当然,这可能取决于对攻击者计算能力的假设。
因此,这种方法非常容易实现。第一个发布其摘要的一方会在延迟条件下进行,这样一来,攻击者的策略就不再有效,因为他尚不知道自己的猜测是否正确。如果他在那时尝试中止,只是让过程超时,那么显然会话将不会继续,而且他基本上无法获取任何信息。如果他试图继续,则必须输入他对代码的猜测,该操作也可能处于延迟条件下,随后他的攻击行为可能会在延迟期结束后被揭露。
Khaled Baqer : 你能详细说明一下这些协议是如何工作的吗?
Reply : 我认为这与我们之前讨论过的场景非常相似。双方通过无线网络或其他方式执行迪菲‐赫尔曼交换,然后他们希望确认通信确实是在彼此之间进行的,因此他们可以通过电话使用语音认证来交换短摘要。
Khaled Baqer : 因此,他们交换由会话密钥派生的短代码 ?
Reply : 是的,没错。一个短的哈希码,一个摘要。
因此,本次演讲的真正重点是探讨我们是否可以对PAKEs实现同样的功能,使其具备可审计性。乍一看,似乎同样的技巧可以直接奏效,但实际上经过稍加思考后,我们意识到情况并非如此,因为HISPs与PAKEs之间存在一些显著差异,这意味着实现起来并不容易。
首先,让我简单介绍一下PAKEs。这里的想法是,我们不依赖公钥基础设施或带外信道,而是假设双方已经如布鲁斯所说,在一片荒原上相遇并预先交换了密码或低熵密钥,而这正是认证的基础。通常情况下,会发生一系列此类协议,其核心是Diffie‐Hellman密钥交换,但低熵密钥会以某种方式融入密钥的计算过程中。
当然,必须非常谨慎地进行此操作,以避免离线字典攻击。最终在两端计算出的密钥是新鲜熵和预期共享密钥的函数。随后,他们会进行某种密钥确认,例如交换密钥的哈希值,以确认双方已计算出相同的底层会话密钥,从而隐式地对对方进行认证。我想大家对此都很熟悉。
一个非常简单的例子是PPK协议,这里我们使用某个哈希函数将字典密码空间映射到群中。双方都计算这个值⋯⋯理想情况下,他们拥有相同的密码,因此在此处计算出相同的H值。该H值被乘入迪菲‐赫尔曼项中,最后当他们计算密钥时,会剔除各自的H值;只要他们使用了相同的密码,H项就会相互抵消,从而得到一个一致的迪菲‐赫尔曼项。如果他们不共享相同的密码,则很可能推导出不同的H值,导致H项无法抵消,因此在计算出的会话密钥中,你将得到一个随机值的x次方或y次方。这就是一个简单的例子。然后他们执行密钥确认。
好的,我们最初的猜测是,可以进行相同的变换,只需在最后交换的哈希密钥确认项中添加延迟项。但我们意识到这实际上行不通,因为HISPs和PAKEs之间存在几个差异,其中关键的一点是HISPs是无状态的:一个会话到另一个会话之间没有状态传递,而显然PAKEs是有状态的。密码信息会在各个会话之间传递。这意味着这种延迟变换不起作用。攻击者在收到延迟的确认项后,只需中止操作,静待延迟结束即可。然后他就能得知自己对密码的猜测是否正确,并且当然可以将此信息用于未来的会话中。因此,要么他已经获得了正确的密码,从而可以建立伪造通信;要么至少排除了一个可能的密码。是的,Paolo?
保罗·埃斯特维斯·韦里西莫 : 在你的威胁模型中,超时是否可能被黑客攻击?
回复 : 超时还是延迟?
保罗·埃斯特维斯·韦里西莫 : 延迟。从概念上讲,您的威胁模型是否包含对延迟的篡改?
回复 : 没错。我认为这个问题的答案是,就本次演讲而言,我们假设延迟机制是有效的,能够按预期发挥作用:始终在超时时间结束之前对值进行保密。在比尔关于HISPs的研究中,他实际上考虑过延迟机制可能失效的情况,因此构建了一些次级安全措施——
保罗·埃斯特维斯·韦里西莫 : 好的,那么我的第二个问题是:如果该假设不成立,是否会影响协议的安全性?
回复 : 我认为,对于我即将介绍的协议,如果该假设不成立,我们就会陷入困境。我们需要进一步思考,是否能让此协议在应对此类故障时具备一定的鲁棒性。
好的。因此,如果只是简单地将比尔变换直接应用于PAKEs,则无法奏效,主要原因在于共享状态。于是我们意识到,需要某种形式的公平交换机制,即保证如果A能够看到B的确认哈希值,那么B也能够看到A的值,反之亦然。这促使我们提出了一种公平交换的构造方法,据我所知,这是全新的。如果之前有人见过类似的方法,请告知我。我们称之为随机公平交换,其基本思想是通过设置协议流程,使得在协议执行过程中的任意时刻,一方看到关键值的概率大致等于另一方看到该值的概率。
更准确地说,假设在延迟开启后,参与方x拥有能够计算确认项的适当信息的概率为Px。那么我们可以说,若在协议执行的所有阶段,这两个概率之间的差值始终以δ为界,则该协议满足δ随机公平交换。
因此,我们设想的设置是:我们运行了一个PAKE协议,双方计算出某种用于交换的哈希值,为了防止反射攻击,这些哈希值可能是分别计算的,但可以看到,在交换这些值之后,双方能够确定是否计算出了相同的底层密钥。核心思想是,以一种方式来设置流程,使得任何一方都不知道何时传输了包含其关键值的项,或从对方接收到该值。从高层次来看,基本就是这样。接下来的几张幻灯片中我将详细介绍。
每一方生成k − 1个虚拟项。真实确认项使用新生成的密钥加密,并通过一个b项进行盲化后,插入到该列表中的随机位置。这种盲化必须是可交换的和单向的,原因我想很快就会变得清晰。每一方将此列表发送给另一方,收到后,另一方使用自己选择的盲化因子对此列表中的项进行重新盲化,即b′,然后对这些项执行秘密洗牌并将其发回。因此,每一方都将收到由对方重新盲化并洗牌后的自己的列表。此时,各方自然可以剥离这些项上自身的盲化。
基本上,在此之后,他们最终得到的是一个由对方进行盲化并经过秘密洗牌的术语列表。因此,他们不知道自己的关键项在该列表中的位置。对吧?这正是关键技巧。然后,当然,他们就可以按照某种调度开始来回交换这些项。
更详细一点来说。我认为我们确实还有一些时间。每一方必须生成一个从1到k中选择的秘密索引i、一个种子值(我们稍后会解释)、一个秘密置换、两个盲化因子以及一个加密密钥。他们将第i个M项计算为关键确认的加密结果
在私钥和他们的第一个盲化因子的掩盖下的值。而其他k−1项将以适当的方式计算,例如作为种子的哈希函数的计数器模式。这一点非常重要。我们稍后会谈这一点。
因此这就是设置阶段。双方计算这些值,然后对它们进行承诺。他们通过延迟将包含索引、种子、密钥、置换以及第二个盲化项的列表发送给对方,然后再发送由他们的第一个盲化因子盲化的这些M项的列表。好的,他们交换了这些信息。
现在,他们执行我之前提示的操作:对所有M项进行重新盲化,洗牌后将其发回。
现在我们进入公平交换阶段。双方使用他们的第一个盲化因子对M项进行去盲,并按照某种交替方式进行交换。例如,A可能先将第一个M项发送给B,然后B回传两项,接着A也发送两项,依此类推。当所有这些步骤完成后,他们自然可以去除第二层盲化项,揭示出原始的最终项。如果整个过程顺利完成,他们就进入揭示阶段:双方只需互相发送各自的索引和私钥,从而能够识别并解密以获取对方的确认值。请注意,他们应按照从对方接收这些M项的顺序来输出自己的项,即保持对方所应用的置换顺序。
在私钥和他们的第一个盲化因子的掩盖下的值。而其他k−1项将以适当的方式计算,例如作为种子的哈希函数的计数器模式。这一点非常重要。我们稍后会谈这一点。
因此这就是设置阶段。双方计算这些值,然后对它们进行承诺。他们通过延迟将包含索引、种子、密钥、置换以及第二个盲化项的列表发送给对方,然后再发送由他们的第一个盲化因子盲化的这些M项的列表。好的,他们交换了这些信息。
现在,他们执行我之前提示的操作:对所有M项进行重新盲化,洗牌后将其发回。
现在我们进入公平交换阶段。双方使用他们的第一个盲化因子对M项进行去盲,并按照某种交替方式进行交换。例如,A可能先将第一个M项发送给B,然后B回传两项,接着A也发送两项,依此类推。当所有这些步骤完成后,他们自然可以去除第二层盲化项,揭示出原始的最终项。如果整个过程顺利完成,他们就进入揭示阶段:双方只需互相发送各自的索引和私钥,从而能够识别并解密以获取对方的确认值。请注意,他们应按照从对方接收这些M项的顺序来输出自己的项,即保持对方所应用的置换顺序。
我不知道这有多大帮助,但我试着把所有内容都放在一张幻灯片里。所以你可以看到这是一个相当复杂的机械装置。协议的流程是否合理?我希望关键的高层思想已经足够清晰了。好的。如果出了问题,或者实际上即使没有出问题,各方也应执行各种审计检查。这些检查可能需要等到那些延迟项开启后才能进行,但它们基本上会验证在第一次提交时发出的各项是否都如我在设置阶段所解释的那样被正确构造。
好的。因此,我们可能不需要在此时深入讨论审计的所有细节。下面简要说明一下分析情况。目前我们只进行了非正式分析,后续我们希望进行更深入的形式化分析。从系统的设计方式来看,显然在开始公平交换阶段之前,任何一方都没有足够的信息来计算关键值。基本上在此时,M项都被另一方的盲化因子所掩盖。当然,我们必须谨慎选择所使用的盲化方式,因为他们必须对所有k项使用相同的盲化因子,因为这些项在返回时是经过洗牌的。因此,只有使用单一盲化因子时,才能正确去盲。我们需要确保这一点不会带来安全问题。我们可以考虑在适当的群中使用取指数的方式,例如可以采用素数模而不是RSA模。因此,在公平交换开始之前,任何一方都不应拥有足够信息推导出对方的b值。如果在公平交换阶段发生中止,他们可以等待延迟时间结束,然后提取索引项,并结合自身已知的洗牌信息,判断自己是否本应收到相应的
关键项,他们可以使用密钥将其打开。然后确认该值是否正确。
对于分析而言,我所描述的这种构造方法的好处在于,它类似于我们在投票系统中有时使用的指数型混洗,这种技术最初可追溯到Doug Wikström。其思想是将各项取公共指数,进行洗牌,然后将其发布到公共账本的下一列。因此,这是一种已知且经过验证的构造方法,尽管此处是其一种新颖应用。我们知道可以借鉴它的一些性质。只要面对的是被动攻击者,该方法已被证明能够隐藏洗牌过程。
如果你有一个能够向混合过程中注入项的主动攻击者,那么你必须非常小心,因为他可以利用这种能力注入一对由他所知指数关联的项,而这种代数关系在混合过程中会被保留下来,从而允许他进行追踪。因此,你必须防止这种可能性,而这正是哈希函数构造的由来。假设他无法计算哈希函数的原像或离散对数,他就无法发起此类攻击。如果他尝试此类攻击,将在审计中被发现。
因此,这里的论点是,当他们从对方收到这些被盲化和洗牌的项时,将无法识别出列表中哪一项是自己的关键项。因此,在进行交换过程中,他们不知道在哪个时刻正在释放自己的关键项,也不知道在哪个时刻收到了对方的关键项。这意味着攻击者不再能够掌握何时可以安全地中止,从而在不向对方暴露攻击的情况下判断自己的猜测是否正确。
好的,这就是基本构造。当然,你可以对公平交换序列和调度进行各种调整。还可以进一步扩展:关键信息不一定非要隐藏在单一项中,你可以将其分散到多个项中的秘密共享,从而带来一些有趣的可能性。希望你已经理解了这种新构造——随机性公平交换构造——如何使我们能够将PAKEs转换为比尔意义上的可审计的PAKEs。但请注意:我们仍然需要延迟。
该构造本身非常有趣,据我们所知,这是一种实现公平交换的新颖方法。当然,一个显而易见的问题是:我们能否在其他地方应用它?可能,在任何需要公平交换的场景中,这种构造或许都有用武之地。特别是当你关注抗滥用性时,它显然很有价值。抗滥用性是指你希望避免某一方能够向第三方证明其控制着协议是否完成的能力。这类构造似乎能够应对此类问题。
因此,我们目前正在思考这种构造的其他应用。
Bryan Ford : 我非常喜欢这个想法。
回复 :但是?
布莱恩·福特 : 不,不是那样的。公平交换是许多人正在讨论的、试图通过区块链协议实现的目标。因此,一个问题就是:你是否考虑过能否在区块链中实现这种机制?而另一个互补性的问题是:这是否是一种有趣且潜在新颖的实现公平交换的方式?你能否在此基础上构建更有趣的共识机制,并由此开发出区块链公平性协议?反审查或审查以及公平性风险等问题正是许多区块链协议的核心所在。我想知道这是否可能成为解决这些问题的一种潜在工具。
回复 : 我来回答你的问题的第一部分,也许我本应强调一下:我们非常刻意地试图避免使用可信第三方。我们正努力使其成为一个真正的点对点协议。
布莱恩·福特 : 没错。当然,区块链协议正试图实现信任的分布式,而非依赖中心化的可信第三方。至于你是否想称之为可信第三方,我还不确定。
回复 : 但我仍然倾向于将其视为某种公共账本。它仍然是一个第三方。如果你们有一个双方协议在运行,他们仍然需要以某种方式与这个公共账本进行通信,对吧?
布莱恩·福特 :当然。当然。
回复 : 所以我认为我们非常努力地避免这种情况。我提到的某些方法中的延迟构造可能涉及可信第三方。但总的来说,我们正试图避免这一点,使其完全成为点对点的形式。
布莱恩·福特 :Okay.
回复 : 所以这是双方的情况。当然,你可以将其扩展到多方,但这超出了本次讨论的范围。我认为这就是我对你的第一个问题的回答。第二个问题,我觉得答案是,我们还没有考虑过这个问题。这听起来是一个有趣的思路。我不确定我完全理解区块链中的公平性问题具体指什么。我很乐意现在或之后进一步讨论这个问题。
布莱恩·福特 : 是的,我们稍后应该跟进一下。在人们探索的许多共识协议中,如果是基于领导者的协议,就会出现一些问题:领导者能在多大程度上做决定?他在决定哪些交易被包含或排除时能获得多大的优势?如果存在更好的方式来承诺和延迟决策,或者延迟信息的知晓时间,防止领导者提前知道他可能要偏袒或排斥的交易,那将对这一领域非常有帮助。
回复 : 这似乎很可行。是的。
布莱恩·福特 : 这可能对那方面有用。
回复 : 是的,我很乐意进一步讨论这个问题。看来我刚才说得还不够有争议性!
布鲁斯·克里斯蒂安森 : 是否假设双方之间的延迟是完全对称的?因为这类似于零知识的情形,即存在多个轮次,每一轮双方互相通信,并逐步获得越来越多的信息,以解锁所交换的秘密值。这里的思路是,如果协议在足够晚的阶段中止,使得一方可以单方面完成协议发现过程,那么另一方也同样可以做到。但如果攻击者拥有极大(多个数量级)更强的计算能力,他们就会占据优势。在您的情况下,这样的攻击者是否能够显著更快地解除延迟?
Reply : 我认为这又回到了之前的问题。目前我们假设延迟能够确保信息在协议的超时周期之后仍然保持隐蔽。但这一点是否可行,我还不完全确定。如果你有一个可信第三方,那么实现这类机制可能相对容易。但我们基本上假设,可能存在一种不对称性。是的,攻击者可能拥有更强的计算能力,但我们仍假设这种能力不足以在超时周期内攻破延迟构造。
布莱恩·福特 : 所以尝试沿着这些思路来回应。我不确定,我对这类延迟函数并不熟悉,比如它们何时可用或满足哪些规则。但你是否了解,我知道阿尔真·伦斯特拉开发了一种慢哈希原语,它正是为了应对这个问题而设计的,旨在实现一种不可并行化的机制,使得即使攻击者拥有巨大的并行计算能力,也无法显著减少延迟。当然,那是一个慢哈希,而不是慢解密类型的机制,它是缓慢地生成随机输出,而非缓慢地产生人为输入的内容,但我不知道类似这样的方法是否通常可以被适配到这种场景中。
回复 : 这正是我认为比尔所想到的那种情况。我自己还没有仔细研究过它们。但没错,你必须确保无法并行化计算过程。这显然至关重要,而且有一些相当标准的方法可以实现这一点。
54

被折叠的 条评论
为什么被折叠?



