DASS

    分布式鉴别安全协议(DASS)是由数字设备公司开发的,它也提供相互鉴别和密钥交换[604,1519,1518]。与前面的协议不同,DASS同时使用了公开密钥和对称密码。Alice和Bob每人有一个私钥,Trent有他们公钥签名的副本。

    (1)Alice送一个消息给Trent,这个消息由Bob的名字组成。

B

    (2)Trent把Bob的公钥KB发给Alice,用Trent的私钥T签名。签名消息包括Bob的名字。

ST(B,KB

    (3)Alice验证Trent的签名以确认她接收的密钥确实是Bob的公钥。她产生一随机会话密钥K和一公钥/私钥密钥对KP,她用K加密时间标记,然后用她的私钥KA对密钥的寿命周期L、她的名字和KP签名。最后,她用Bob的公钥K加密,并用KP签名。她将所有这些消息发给Bob。

EK(TA),S KA(L,A,KP),S KP(EKB(K))

    (4)Bob发送一个消息给Trent(这可能是另一个Trent),它由Alice的名字组成。

A

    (5)Trent把Alice的公钥KB发给Bob,用Trent的私钥T签名。签名消息包括Alice 的名字。

ST(A,KA

    (6)Bob验证Trent的签名以确认他接收的密钥确实是Alice的公钥。然后他验证Alice的签名并恢复出KP。他验证签名并用他的私钥恢复K。然后解密TA以确信这是当前的消息。

    (7)如果需要互相鉴别,Bob用K加密一个新的时间标记,并把它送给Alice。

EK(TB

    (8)Alice用K解密TB以确信消息是当前的。

    DEC公司的SPX产品是基于DSSA鉴别协议的。额外的信息可在[34]中找到。

Denning-Sacco

    这个协议也使用公开密钥密码[461]。Trent保存每个人的公开密钥数据库。

    (1)Alice发送一个有关她和Bob的身份消息给Trent:

A, B

    (2)Trent把用Trent的私钥T签名的Bob的公钥KB发给Alice。Trent也把用Trent的私钥T签名的Alice自己的公钥KA发给Alice。

ST(B,KB),ST(A,KA

    (3)Alice向Bob传送随机会话密钥、时间标记(都用她自己私钥签名并用Bob的公钥加密)和两个签了名的公开密钥。

EB(SA(K,TA)),ST(B,KB),ST(A,KA

    (4) Bob用他的私钥解密Alice的消息,然后用Alice的公钥验证她的签名。他检查以确信时间标记仍有效。

    在这里Alice和Bob两人都有密钥K,他们能够安全地通信。

    这看起来很好,但实际不是这样的。在和Alice一起完成协议后,Bob能够伪装是Alice[5]。注意:

    (1)Bob把他的名字和Carol名字发给Trent

B, C

    (2)Trent 把Bob和 Carol的已签名的公钥发给Bob。

ST(B,KB),ST(C,KC

    (3)Bob将以前从Alice那里接收的会话密钥和时间标记的签名用Carol的公钥加密,并和Alice和Carol的证书一起发给Carol。

EC(SA(K,TA)),ST(A,KA),ST(C,KC

    (4)Carol用她的私钥解密Alice的消息,然后用Alice的公钥验证她的签名。她检查以确信时间标记仍有效。

    Carol现在认为她正在与Alice交谈,Bob成功地欺骗了她。事实上,在时间标记截止前,Bob可以欺骗网上的任何人。

    这个问题容易解决。在第(3)步的加密消息内加上名字:

EB(SA(A,B,K,TA)),ST(A,KA),ST(B,KB

    因为这一步清楚地表明是Alice和Bob之间在通信,所以现在Bob就不可能对Carol重放旧消息。

Woo-Lam

    这个协议也使用公开密钥密码[1610,1611]:

    (1)Alice发送一个有关她和Bob的身份消息给Trent。

A, B

    (2)Trent用他的私钥T对Bob的公钥签名,然后把它发给Alice。

ST(KB

    (3)Alice验证Trent的签名,然后把她的名字和一个随机数用Bob的公钥加密,并把它发给Bob。

EKB(A,RA

    (4)Bob把他的名字、Alice的名字和用Trent的公钥KT加密的Alice的随机数一起发给Trent。

A,B,EKT(RA

    (5)Trent把用Trent的私钥签名的Alice的公钥KA发给Bob,Trent用Trent的私钥对所有Alice的随机数、随机会话密钥、Alice的名字和Bob的名字签名并用Bob的公钥加密,并把它也发给Bob。

ST(KA),EKB(ST(RA,K,A,B))

    (6)Bob验证Trent的签名。然后他将第(5)步中Trent的消息的第二部分和一个新随机数一起用Alice的公钥加密,并将结果发给Alice。

EKA(ST(RA,K,A,B),RB

    (7)Alice验证Trent的签名和她的随机数。然后她将第二个随机数用会话密钥K加密,并发给Bob。

EK(RB

    (8)Bob解密他的随机数,并验证它没有改变。

其它协议

    已有文献中有许多其它协议。X.509协议在24.9节中讨论,KryptoKnight在24.6节中讨论,加密密钥交换在22.5节中讨论。

    Kuperee[694]是一个新的公开密钥协议,正在做关于使用信标的协议,信标是一个可信的网络节点,它不断地广播只以当时为限的鉴别。