用联锁协议互相鉴别

    Alice和Bob是想要互相鉴别的两个用户。他们每人有一个另一人知道的通行字:Alice通行字是PA,Bob的是PB。下面的协议是行不通的:

        (1)Alice和Bob的交换公开密钥。

        (2)Alice用Bob的公开密钥加密PA,并将它传送给Bob。

        (3)Bob用Alice的公开密钥加密PB,并发送给Alice。

        (4)Alice解密她在第(2)步中接受到的信息并验证它是正确的。

        (5)Bob解密他在第(3)步中接受到的信息并验证它是正确的。

    Mallory能够成功发起“中间人攻击”( 见3.1节)。

        (1)Alice和Bob交换公开密钥。Mallory截取这两个报文,他用自己的公开密钥代替Bob的,并将它发送给Alice。然后,他又用他的公开密钥代替Alice的,并将它发送给Bob。

        (2)Alice用“Bob”的公开密钥对PA加密,并发送给Bob。Mallory截取这个报文,用他的私钥对PA解密,再用Bob的公开密钥加密,并将它发送给Bob。

        (3)Bob用“Alice”的公开密钥对PB加密,并发送给Alice。Mallory截取它,用他的私钥对PB解密。再用Alice的公开密钥对它加密,并发送给Alice。

        (4)Alice对PB解密,并验证它是正确的。

        (5)Bob对PA解密,并验证它是正确的。

    从Alice和Bob处看并没有什么不同,然而Mallory知道PA和PB

    Donald Davies 和Wyn Price描述了怎样采用联锁协议(在3.1节中描述)来挫败这种攻击[435]。Steve Bellovin和Michael Merritt讨论了对这个协议进行攻击的各种方法[110]。如果Alice是用户,Bob是主机,Mallory可以假装是Bob和Alice一起完成协议的开始几步,然后终止连接。真实的技巧要求Mallory通过模拟线路噪声或网络失败来终止连接,但最终的结果是Mallory有Alice 的通行字。然后,他可以和Bob连接,完成协议。Mallory也就有Bob的通行字了。

    假如用户的通行字比主机的通行字更敏感,那就可以修改这个协议,使Alice给出她的通行字之前,让Bob先给出他的通行字。这导致了一个更加复杂的攻击,文献[110]中有此描述。

    SKID

    SKID2和SKID3是为RACE的RIPE项目开发的对称密码识别协议[1305](见25.7节)。它们都用MAC来提供安全性,并且SKID2和SKID3两个协议都假设Alice和Bob共享同一秘密密钥K。

    SKID2允许Bob向Alice证明他的身份。下面是这个协议:

        (1)Alice选用随机数RA(RIPE文件规定64比特的数),并将它发送给Bob。

        (2)Bob选用随机数RB(RIPE文件规定64比特的数),将下面的数发送给Alice:

RB,HK(RA,RB,B)

            HK是MAC(RIPE文件建议的RIPE-MAC函数,参看18.14节)。B是Bob的名字。

        (3)Alice计算HK(RA,RB,B),并和她从Bob那里接收到的信息比较,如果结果一致,那么Alice知道她正与Bob通信。

            SKID3提供Alice和Bob之间的相互鉴别。第(1)步到第(3)步与SKID2是一样的,以后的协议按下面进行:

        (4)Alice向Bob发送:        HK(RB,A)

            A是Alice的名字。

        (5)Bob计算HK(RB,A),并将它与从Alice那里收到的比较,如果相同,那么Bob知道他正与Alice通信。

            这个协议对中间人攻击来说是不安全的。一般地,中间人攻击能够击败任何不包括某些秘密的协议。

    信息鉴别

    当Bob从Alice那里接收信息,他怎么知道信息是可信的呢?如果Alice对她的信息签名,就容易了。Alice的签名足以使任何人都相信信息是可信的。

    对称算法提供了一些鉴别。当Bob从Alice那里接收到用他们的共享密钥加密的信息时,他知道信息是从Alice那里来的,没有其他人知道他们的密钥。然而,Bob没有办法使第三者相信这个事实,Bob不可能把信息给Trent看,并使他相信信息是从Alice那里来的。Trent能够相信信息是从Alice或Bob那里来的(因为没有其他人共享他们的秘密密钥),但是他没有办法知道信息到底是从谁那里来的。

    如果信息没有被加密,Alice也能使用MAC。这也使Bob相信信息是可信的,但与对称密码的解决方法有同样的问题。