专栏首页包罗万想GCAC102 21.11 Password authenticated key exchange

GCAC102 21.11 Password authenticated key exchange

21.11 Password authenticated key exchange

21.11.1 Phishing attacks

21.11.2 PAKE: an introduction

21.11.3 Protocol PAKE0

21.11.4 Protocol PAKE1

21.11.5 Protocol PAKE2

21.11.6 Protocol PAKE2+

21.11.7 Explicit key confirmation

21.11.8 Phishing again

21.11 Password authenticated key exchange

在21.6节中,讨论了单侧认证密钥交换协议,其中服务器具有证书,而客户端没有证书。

客户端可以与服务器建立一个单侧经过身份验证的安全通道,然后使用一些简单的识别协议在通道内向服务器标识自己。今天,这种方法被广泛使用。但是,这种方法存在一些严重的安全问题。在本节中,我们将详细探讨这些问题,然后研究一种新型的密钥交换协议,称为基于密码的密钥交换( password based key exchange),它可以在一定程度上缓解这些问题。

21.11.1 Phishing attacks网络钓鱼攻击

假设某个客户在服务器上拥有一个帐户,并且对手想要发现该客户的密码。通常,客户端使用Web浏览器登录其帐户,然后在属于服务器的特殊“安全登录页面”上的某些字段中输入其用户ID和密码。通常,如上所述,所有这些操作都是使用单侧认证安全通道完成的。但是,在网络钓鱼攻击中,攻击者仅通过诱使客户端在属于攻击者的虚假登录页面(而不是安全登录页面)上输入其用户ID和密码来绕过安全通道。

在实践中,网络钓鱼攻击并非难事。网络钓鱼攻击分为两个阶段:首先,诱使客户端访问其假登录页面,而不是安全登录页面;其次,使假登录页面的外观和感觉类似于安全登录页面,以便客户输入他的用户名和密码。

•诱使客户访问假登录页面的一种常见方法是向客户发送电子邮件,告知客户有一些令人信服的理由他应登录服务器上的帐户(“验证您的帐户”或“确认帐单信息”)。该电子邮件的设计非常好,并且为客户的“方便”提供了一个嵌入式链接,该链接会将客户的网络浏览器带到安全的登录页面。但是,嵌入式链接实际上是指向虚假登录页面的链接。这种方法虽然相当粗糙,但实际上可与大量毫无戒心的客户一起使用。

由于受到此类攻击,细心的客户不再上当;但是,有更复杂的策略甚至可以欺骗最细心的客户端:使用利用Internet路由机制中的安全漏洞的攻击,客户端可以在其浏览器的地址栏中直接输入一个网址,但最终在对手控制的网站上。

•仿冒者将客户端带到假登录页面后,他必须确保其假登录页面是安全登录页面的令人信服的副本。通常这并不难做。当然,对手必须设计页面,以便显示的内容与安全登录页面上显示的内容非常相似。这通常是微不足道的。可能还有其他线索表明客户端位于错误的网页上,但是许多客户可能没有注意到这些线索:

–网页的地址可能不是服务器的地址;但是,许多客户甚至可能没有仔细看这个地址,甚至不知道它的真正含义。

–网络浏览器可能不会显示通常用于指示“安全网页”的信号(例如,一个小挂锁),但同样,临时客户可能不会注意到;

– Web浏览器确实可以显示“安全网页”信号,但是几乎没有客户端会费心检查证书的详细信息,在这种情况下,这可能是CA颁发给对手的完全有效的证书,而不是而不是服务器;实际上,除非客户参加了安全或密码学课程,否则他可能甚至不知道证书是什么。

为了阻止网络钓鱼攻击,而不是使用简单的 password identification protocol,可以使用 challenge-response identification protocol,例如:

在这里,P是客户端,Q是服务器,pw是密码。同样,r是随机随机数,H是哈希函数(我们将其建模为RO)。服务器Q向P发送随机随机数r,P将v计算为H(pw,r),然后将v发送给Q,然后Q验证v = H(pw,r)。(请注意,此协议是第18.6.1节中讨论的基于密码的质询-响应协议( password-based challenge-response protocol )的变体,MAC和密钥派生全部引入了哈希函数。)

如果客户端使用此协议,则网络钓鱼攻击至少不会直接暴露客户端密码。但是,还有其他方法可以利用网络钓鱼攻击。

首先,客户端向服务器标识自己的身份,反之则不然,因此,如果客户端被诱骗访问伪造的登录页面,则对手可能无法获取其密码,但可能导致其他麻烦,因为客户端认为他已安全登录到服务器,因此可能被欺骗泄露其他敏感信息。

更糟糕的是,对手可能发动中间人攻击。攻击者再次通过网络钓鱼与客户端建立通道,同时与服务器建立完全正常的单面身份验证安全通道。现在,对手只是扮演“中间人”的角色,将身份识别协议中的消息从服务器转发到客户端,反之亦然。现在,攻击者不仅可以像上面那样尝试从客户端获取敏感信息,而且由于攻击者现在已经以客户端的用户ID登录到服务器,因此,攻击者也可能导致服务器端损坏。例如,如果服务器是银行,客户是客户,则对手可以将钱从客户的帐户转移到对手控制的银行帐户中。

也许还可以考虑使用以下相互询问-响应识别协议( mutual challenge-response identification protocol):

不幸的是,该协议可以遭受与上述相同的中间人网络钓鱼攻击。

但是,如果使用密钥交换协议可以提供的通道绑定(channel binding )功能,则可以避免这种中间人攻击。我们在21.8节中简要介绍了这一概念。通道绑定的安全属性可确保客户端和服务器具有不同的通道绑定。因此,为了防止中间人攻击,我们可以修改上述相互身份验证协议,以便将通道绑定包括在哈希中。也就是说,将哈希计算为H(pw,chb,0,r,s)和H(pw,chb,1,r,s),其中chb是通道绑定。现在,中间人攻击失败了,因为两个参与者将使用不同的通道绑定输入来计算哈希,因此将哈希从一个参与者转发到另一个参与者没有好处。这甚至可以防止网络钓鱼攻击,即使在密钥交换中使用的服务器的长期密钥机密受到破坏(例如在PFS或HSM攻击模型中)的情况下,也可以提供一定的安全性。

不幸的是,即使有这个补丁,这个挑战-响应协议也要经受离线字典攻击(请参阅第18.3.1节)。实际上,假设客户的密码很弱,并且属于相对较小的普通密码字典D。还假设对手通过网络钓鱼与客户建立了渠道。对手扮演服务器的角色,向客户端发送一个随机数r,客户端以s,v:= H(pw,chb,0,r,s)进行响应。此时,对手退出了协议。获得了v后,对手现在就对客户密码进行暴力搜索,如下所示:对于每个pw0∈D,对手计算H(pw0,r),并测试其是否等于v。一个pw0,很可能pw0 = pw,因此对手已经获得了客户的密码。

顺便说一句,在上述相互识别协议中反转客户端和服务器的角色会使情况变得更糟:现在,攻击者可以简单地与服务器建立一个正常的单侧身份验证安全通道,而服务器要做的第一件事就是将值H(pw,chb,0,r,s)发送给对手。现在,对手甚至可以不进行任何网络钓鱼就可以对离线字典进行攻击。

最后,即使没有网络钓鱼,攻击者也可以始终尝试执行在线字典攻击,只需使用从某些常用密码词典中选择的密码尝试多次登录服务器即可。如第18.3.1节所述,服务器通常可以采取简单的对策来限制失败的登录尝试次数,以使此类在线词典攻击不像离线攻击那样危险。

21.11.2 PAKE: an introduction

我们已经讨论了单侧认证密钥交换协议,以及如何将它们与基于密码的简单识别协议结合起来以在客户端和服务器之间建立安全通道,其中服务器具有证书,而客户端没有证书,但是与服务器共享密码。我们还讨论了这种建立安全通道的方法在实践中并不十分安全:通过网络钓鱼攻击,攻击者可以诱使客户将其密码泄露给攻击者;此外,我们看到,即使使用了质询-响应识别协议,网络钓鱼者仍可以从客户端获取足够的信息,从而使对手仍然可以使用离线字典攻击来获取客户端的密码。

这些安全问题是密码认证密钥交换(password authenticated key exchange (PAKE))协议的动机。这是PAKE协议的基本思想。我们假设希望建立共享会话密钥的每对用户都有一个共享密码。我们没有其他假设:没有证书,也没有CA或任何其他类型的TTP。

理想情况下,密码应很强,即从大量密码集中随机选择。在这种情况下,PAKE协议的安全目标与AKE协议基本相同。实际上,尽管我们没有给出正式的安全模型,但它与21.9节基本相同,只是现在使用共享的强密码代替TTP进行身份验证。

不幸的是,实际上,PAKE协议很可能与弱密码一起使用,因此我们必须相应地放宽对安全性的期望。实际上,使用弱密码,任何PAKE协议都容易受到在线词典攻击:攻击者始终可以猜测密码,并让用户参与该协议,并查看其猜测是否正确。通常,仅当密钥交换协议本身失败或使用会话密钥的某些更高级别的协议失败时,猜测才是错误的。但是,我们至少可以希望这是最糟糕的攻击类型。特别是,我们可能希望对手不能发起离线词典攻击。

21.11.3 Protocol PAKE0

考虑遵循协议PAKE0,该协议在图21.13中进行了描述。在这里,P和Q是具有共享密码pw的用户,而H是哈希函数,我们将其建模为RO。在此协议中,P和Q交换随机数r和s,然后将会话密钥计算为k = H(pw,idP,idQ,r,s)。在描述此协议以及其他PAKE协议时,我们省略了有关P和Q如何相互传递其身份idP和idQ以及它们如何检索相应密码的详细信息。

假设pw是一个强密码。那么在这种情况下,协议PAKE0是相当安全的(特别是,它可以满足第21.9节中对安全性的定义,经过适当修改,将H建模为RO)。该协议没有提供相互的,甚至是单方面的标识:P的实例可以运行该协议,并且不与任何人共享会话密钥。但是,如果他与某人共享会话密钥,那么他将与Q实例共享该密钥。

不幸的是,如果pw是一个弱密码,那么窃听的对手可能会轻易地进行离线字典攻击,如下所示。

假设pw属于一些相对较小的常用密码字典D。还假设P运行协议后,它将使用对称密码E =(E,D)对会话密钥下的公共已知明文m进行加密,然后将所得的密文发送到网络上。

我们的对手窃听了P和Q之间的协议运行,获得了值r和s。此时,P计算会话密钥为k = H(pw,idP,idQ,r,s),并在密钥k下发出m的加密c。对手拦截c,然后执行以下操作:

很有可能输出pw0等于密码pw。

当然,除了plaintext/ciphertext 对之外,上述攻击还可以与可能会泄露给对手的有关会话密钥的许多其他类型的部分信息一起使用。例如,该密钥可以用作MAC密钥,并用于认证公知消息。

21.11.4 Protocol PAKE1

如果使用弱密码,则协议PAKE0容易受到窃听对手的恶意字典攻击。接下来,我们介绍一个不受此漏洞影响的PAKE协议。

该协议称为PAKE1,它利用了由g∈G生成的质数为q的循环群G和哈希函数H(我们将其建模为RO)。该协议在图21.14中进行了描述。在这里,两个用户都计算值w =g^αβ,然后将会话密钥计算为k = H(pw,idP,idQ,u,v,w)。

如果密码pw强,则此协议非常安全。有趣的情况是密码pw弱时会发生什么。首先,我们声称在CDG假设为G,并将H建模为RO的情况下,则协议PAKE1不容易受到窃听对手的字典攻击。

为此,我们将给出一个直观的论据。但首先,我们引入一些符号,并回顾一下CDH的假设。对于s,t∈G,如果s = g^µ且t =g^ν,则定义[s,t]:= g^µν。CDH问题是这样的:给定随机s,t∈G,计算[s,t]。CDH假设断言没有有效的算法可以以不可忽略的概率解决CDH问题。

假设在P和Q之间的对话中有一个对手窃听。他获得随机组元素u和v,而P和Q计算会话密钥为k = H(pw,idP,idQ,u,v,[u,v]) 。直观上来说,要使字典攻击成功,对手将不得不在(pw0,idP,idQ,u,v,[u,v])形式的点上查询随机预言子H以获得各种pw0值。让我们将此点称为相关。实际上,只有通过在相关点查询随机oracle某些pw0,对手才能知道pw0 = pw,例如,通过在该点使用oracle的值k0来解密已知明文下的给定加密k。

在CDH假设下,他在任何相关点查询RO的可能性微不足道。确实,如果对手可以以不可忽略的概率进行相关查询,那么我们可以使用该对手以不可忽略的概率来解决CDH问题,如下所示。给定CDH问题的质询实例(s,t),设置u=s和v=t,并将u和v给予窃听对手。现在,对手将进行许多RO查询。与往常一样,我们使用查找表处理RO查询,并收集所有形式为(pw0,idP,idQ,u,v,w0)的查询的列表,其中pw0是任意密码,w0是任意群元素。

最后,我们在此列表中随机选择一个查询,并输出相应的w0。如果我们选择的查询是相关的,则w0是CDH问题的解决方案。由于识别CDH问题的解决方案通常很困难(这是DDH的假设),因此我们无法轻松识别相关查询,因此我们不得不采用这种猜测策略。但是,如果对手进行相关查询的机会不可忽略,那么我们解决CDH问题的机会将不可忽略(尽管较小)。

因此,我们已经表明,协议PAKE1提供了针对窃听对手进行的离线字典攻击的安全性。但是,协议PAKE1不能提供针对主动对手(即直接参与协议的对手)进行字典攻击的安全性。

假设pw属于一些相对较小的常用密码字典D。还假设P运行协议后,它将使用对称密码E =(E,D)对会话密钥下的公共已知明文m进行加密,然后将所得的密文发送到网络上。

我们的对手的工作方式如下。首先,他在PAKE1中扮演Q的角色。诚实用户P将u发送给对手,而对手只是遵循协议进行计算

β←Zq,v←g^β,w←u^β,

然后将v发送给P。此时,P计算会话密钥为k = H(pw,idP,idQ,u,v,w),并在密钥k下发出m的加密c。对手拦截c,然后执行以下操作:

很有可能输出pw0等于密码pw。

21.11.5 Protocol PAKE2

如果使用弱密码,则虽然协议PAKE1提供了针对窃听对手(eavesdropping adversary)离线字典攻击的安全性,但它易受主动对手( active adversary)的离线字典攻击的。

我们提出一种协议PAKE2,该协议确实提供了针对被动词典和主动对手的离线字典攻击的安全性。像PAKE1一样,协议PAKE2使用由g∈G生成的质数q的循环群G和哈希函数H(我们将其建模为RO)。该协议具有其他系统参数a和b,它们是G的随机选择。此外,密码被视为Zq的元素。协议PAKE2在图21.15中描述。就像协议PAKE1中一样,两个用户都计算值w =g^αβ,然后将会话密钥计算为k = H(pw,idP,idQ,u,v,w)。唯一的区别是,现在P通过将a^pw乘以g^α来“屏蔽(blinds)”值g^α,而Q通过将b^pw乘以g^β来“屏蔽(blinds)”g^α值。

我们给出一个非正式的论证,即协议PAKE2在CDH假设下,通过窃听或主动对手提供了针对字典攻击的安全性,并将H建模为RO。首先,考虑一个对手,该对手窃听了诚实用户P和诚实用户Q之间的协议运行。他获得了对话(u,v)。由P和Q计算的会话密钥为

k = H(pw,idP,idQ,u,v,[u/a^pw,v/b^pw]). (21.8)

直观上,对手的目标是在尽可能多的相关点查询RO,其中此处的相关点是以下形式之一:(pw0,idP,idQ,u,v,[u / a^pw0,v / b^pw0] ),(21.9)其中pw0∈Zq。以下引理表明,在CDH假设下,他甚至无法进行单个相关查询:

引理21.7。在CDH假设下,以下问题很难解决:给定随机a,b,u,v∈G,计算γ∈Zq和w∈G使得w = [u /aγ,v /bγ]。

证明。我们首先对“ “Diffie-Hellman operator” [·,·]做一些简单的观察。也就是说,对于所有x,y,z∈G和所有µ,ν∈Zq,我们有

[x,y] = [y,x],[xy,z] = [x,z] [y,z], [x^µ,y^ν] = [x,y]^ µν。

另外,请注意[x,g^µ] = x^µ,所以给定任意两个组元素x和y,如果我们知道任意一个的离散对数,则可以有效地计算[x,y]。

假设有一个对手可以以不可忽略的概率有效地解决引理陈述中的问题。如何使用该对手以不可忽略的概率解决CDH问题。给定CDH问题的质询实例(s,t),计算µ←Zq,a←g^µ,ν←Zq,b←g^ν,然后给对手a,b,u=s,v= t现在假设对手为我们计算γ∈Zq和w∈G,使得w = [u /a^γ,v /b^γ]。那么我们有

w = [u,v] [u,b]^-γ[a,v]^-γ[a,b]^γ^2 (21.10)

因为我们知道a和b的离散对数,所以每个量 w,[u,b],[a,v],[a,b],γ 出现在(21.10)中的值是已知的或从已知值容易计算出的,因此我们可以轻松地为(u,v)求解(21.10),与[s,t]相同。

接下来,考虑与诚实用户参与协议的主动对手。我们考虑对手扮演Q角色而诚实用户为P的情况,而另一种情况下的论证相似。

在对手的攻击中,他从P获得了第一条消息u,这只是一个随机的群元素。接下来,对手以某种方式计算群元素v,然后将其发送给P——对手可以以他喜欢的任何方式计算v,可能以某种依赖于u的曲折方式进行计算。像往常一样,P现在像(21.8)中一样计算会话密钥,而对手的目标是在(21.9)中尽可能多的相关点上评估RO H。当然,仅遵循协议并使用猜测pw0作为密码的对手总是可以进行一个相关查询。我们想证明的是,进行多个相关查询是不可行的。以下引理暗示了这一点:

引理21.8。在CDH假设下,以下问题很难解决:给定随机a,b,u∈G,计算γ1,γ2∈Zq和v,w1,w2∈Zq,使得γ1!=γ2且wi=[u /a^γi,v /b^γi],i = 1,2。

21.11.6 Protocol PAKE2+

通常,用户扮演着非常不同的角色。一个用户可能是一个客户端,该客户端通过键盘输入获取密码,而另一个用户是服务器,该服务器是一台保存密码文件的机器,其中包含每个有权访问该服务器的客户端的信息。我们希望提供某种防御措施的一种攻击是server compromise,攻击者通过这种攻击获取服务器的密码文件。

给定密码文件,对手肯定可以假冒服务器。但是,我们希望使对手尽可能地冒充客户,并获得对服务器的未授权访问。

给定密码文件后,对手总是可以发起离线字典攻击来发现给定客户端的密码:对手可以只运行协议的客户端和服务器端,使用客户端的猜测密码,然后使用存储在服务器端密码文件中的数据。理想情况下,这将是对手所能做的。

协议PAKE2通过窃听和主动攻击者提供了针对离线字典攻击的安全性。在该协议中,两个用户的角色是相当对称的,具体说P是客户端,而Q是服务器。在实现中,Q将密码pw明确存储在密码文件中。显然,这种实现是不受欢迎的,因为破坏服务器的对手会立即获得密码。

现在,我们提出协议PAKE2+,该协议具有以下特性:如果服务器受到威胁,则对手可以冒充客户的最佳行为就是离线字典攻击。if the server is compromised, the best an adversary can do to impersonate a client is an offline dictionary attack. 像PAKE2一样,协议PAKE2+利用了由g∈G生成的素数q的循环群G,群元素a,b∈G和哈希函数H,我们将其建模为RO。另外,该协议采用了另一个散列函数H0,其范围为Zq×Zq,也建模为RO。

令pw为客户端P和服务器Q之间共享密码,它是任意位字符串。该协议在图21.16中描述。客户端存储(π0,π1),而服务器存储(π0,c),其中c=gπ1,其中(π0,π1)=H0(pw,idP,idQ)∈Zq×Zq。客户端可以从pw导出(π0,π1)。两个用户都计算值w =g^αβ和d =g^π1β,然后将会话密钥计算为k = H(π0,u,v,w,d)。

在服务器正常运行的情况下,协议PAKE2+具有与协议PAKE2相同的安全级别。但是,如果服务器Q在协议PAKE2+中遭到破坏,并且对手获得π0和c,会发生什么情况。此时,攻击者可能会尝试进行一次离线字典攻击,如下所示:在各个密码(pw0,idP,idQ)的点(pw0,idP,idQ)上评估H0,尝试查找pw0,使得H0(pw0,idP,idQ)=(π0,·)。如果成功,则很有可能pw0 = pw,并且对手可以轻松地冒充客户。

我们要证明的关键属性如下:如果以上字典攻击失败,则在CDH假设下,对手无法冒充客户。

为了证明此属性,首先假设一个攻击者破坏了服务器,然后尝试了字典攻击,最后尝试登录到服务器。Compromising the server意味着对手获得π0且c =gπ1。假设字典攻击失败,这意味着对手尚未在点(pw,idP,idQ)上评估H0。值π1是完全随机的,除了c=gπ1的事实之外,对手没有关于π1的其他信息。当他尝试登录时,他向服务器Q发送一些群元素u,并且服务器对随机β∈Zq用v=g……β·b^π0进行响应。现在,对手知道π0,因此可以计算值e=g^β。但是,要成功模拟客户端,他必须在点(π0,u,v,[u /a^π0,e],[c,e])上评估RO H,这意味着他必须计算[c,e ]。但是,从对手的角度来看,由于c和e是随机的群元素,因此计算[c,e]等于解决了CDH问题。

我们在此论证中未解决的复杂问题是,对手可能还会在某个时候与客户端P交互,从而给P赋予任意值v,P会将v/b^π0提升为幂π1,并从该值得出会话密钥。因此,P在某种程度上充当了DDH oracle,从本质上为对手提供了一个识别形式(gπ1,·,·)的DH三元组的oracle。问题与定理12.4的证明基本相同。乍看起来,我们似乎需要利用交互式CDH假设(请参见定义12.4)来证明安全性;但是,仔细检查表明情况并非如此。这是因为在导出会话密钥时,P还将值w=(v/b^π0)^α传递给函数H,因此P充当了识别形式为(g^π1, g^α,·,·,·),其中α是由P随机生成的。

21.11.7 Explicit key confirmation

现在,如果攻击者与诚实用户一起运行协议PAKE2或PAKE2+,则使用猜测为错误的密码,那么攻击者将具有错误的会话密钥,但是诚实用户将不会立即表明出现了问题。从系统设计的角度来看,虽然较高级别的协议很可能会失败,并可能引起一些怀疑,但如果密钥交换协议本身会发出警报,则可能会更好。使用称为显式密钥确认(explicit key confirmation)的简单形式即可轻松做到这一点。用户P和Q不仅可以从哈希中导出会话密钥k,还可以导出密钥k0和k1,然后:

•P将k0发送给Q, •Q将k1发送给P, •P检查接收到的值〜k1等于其计算值k1, •Q检查接收到的值〜k0等于其计算值k0。

如果正在进行在线词典攻击,则将立即对该协议发出警报,并可以采取防御措施(请参阅第18.3.1节)。因此,在使用PAKE协议(例如PAKE2或PAKE2+)时,强烈建议使用显式的密钥配置步骤来增强它们。

21.11.8 Phishing again

PAKE协议提供了一些防范网络钓鱼攻击的保护措施(见21.11.1节)。但是,网络钓鱼攻击者仍可以尝试完全绕过PAKE协议。例如,对手可能诱使客户访问其Web浏览器上的伪造登录页面,并且客户以这样一种方式将其密码输入Web浏览器,使得密码直接传输给对手,而不是由PAKE处理。可以通过适当的用户界面设计来防御此问题,以便Web浏览器提供易于识别且难以伪造的“安全区域”,应使用PAKE协议在其中输入密码。

尽管PAKE协议很容易受到网络钓鱼攻击的影响,但它可以与单侧认证AKE协议(第21.6节)结合使用,以产生有用的效果。

首先,客户端如何与服务器建立共享密码,除了使用更昂贵或更不方便的类型的安全通道外,使用通过单向认证AKE协议设置的安全通道可能是实现此目的的唯一合理方法。

其次,一旦客户端和服务器具有共享密码,通过使用单面身份验证AKE协议设置的安全通道运行PAKE协议就不会受到伤害。这样,攻击者攻击PAKE协议的能力将受到成功发起网络钓鱼攻击的能力的限制。

本文分享自微信公众号 - 包罗万想(An-mind),作者:安包

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-02-05

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • GCAC93 21.3 a protocol based on ephemeral encryption

    21.3 Perfect forward secrecy and a protocol based on ephemeral encryption

    安包
  • GCAC01 2.1&2.2&2.3

    这个系列的笔记是关于《 A GraduateCourse in Applied Cryptography 》 Dan Boneh and Victor Shou...

    安包
  • GCAC91 21.1 Identification and AKE

    假设Alice和Bob希望通过不安全的网络进行安全通信。他们想以某种方式使用安全通道。在第9章中,我们了解了如果Alice和Bob已经拥有共享密钥,他们将如何做...

    安包
  • 手游后台PVP系统网络同步方案总结

    来源:游迅网 发布者:wuyu 概述   PVP系统俨然成为现在新手游的上线标配,手游Pvp系统体验是否优秀,很大程度上决定了游戏的品质。从最近半年上线的新...

    编程范 源代码公司
  • [LeetCode] 523. Continuous Subarray Sum

    【原题】 Given a list of non-negative numbers and a target integer k, write a fun...

    用户1148830
  • 配置共享服务器模式

    两者完成相同的任务,即处理所有指定的SQL操作。假定从客户端提交一个任意查询(DQL)到数据库服务器不论是专用模式还是共享

    Leshami
  • python技术面试题(五)

    What the caterpillar calls the end, the rest of the world calls a butterfly

    小闫同学啊
  • 设定尺度:一个有效衡量触觉互联网的量化指标(Networking and Internet Architecture)

    通信领域的下一个前沿是远程环境的远程监控。与传统的基于网络的应用程序相比,远程操作提出了广泛不同的要求,这就要求对传统网络技术及其性能指标进行重大的重新设计。遥...

    用户6869393
  • 使用frp搭建内网穿透

    frp 是一个高性能的反向代理应用,可以帮助您轻松地进行内网穿透,对外网提供服务,支持 tcp, http, https 等协议类型,并且 web 服务支持根据...

    caoayu
  • 远程方法调用(RMI)原理与示例 转

      远程方法调用(RMI)顾名思义是一台机器上的程序调用另一台机器上的方法。这样可以大致知道RMI是用来干什么的,但是这种理解还不太确切。RMI是Java支撑分...

    wuweixiang

扫码关注云+社区

领取腾讯云代金券