在讨论密钥建立协议之前,我们先来看一些仅达到认证目标的协议。
ISO/IEC 9798-3包括5个认证协议。美国标准FIPS 196包括其中的两个协议。
每个协议的每条消息都包含多个可选的不同种类的文本域,文本域中的数据是应用依赖数据。按照标准,在签名中包含文本域有以下几个理由:为了认证信息;为了在签名中添加额外的冗余信息;为了提供其他的时间变量参数,如时间戳;为了在协议的使用中提供有效性信息。
标准的第1个协议(图4.21)仅有一条从发起者A到检验者B的消息。时间戳TA用来提供新鲜性,或者可以用计数器代替它。B可以保证A是有效的,A也可以保证B是他的对等实体。
图4.21 ISO/IEC 7998-3一次传输单向认证协议
第2个协议(图4.22)与第1个协议有明显的不同,一个不同之处是它用随机数代替时间戳,另一个不同之处是它包含A选择的随机数NA。NA与认证无关,它保证A不是对B选择的消息进行签名。这个协议提供了A到B的实体认证。
图4.22 ISO/IEC 7998-3两次传输单向认证协议
标准允许在消息2中省略标识B,标准中说是否包含B取决于认证机制使用的环境。在弱实体认证中,不需要知道对等实体,省略这个域是可以的。但是,如果需要知道对等实体,则必须在消息2的签名中包含这个域。
第3个协议(图4.23)是第1个协议的两个实例的简单组合,同样,时间戳TA和TB可以用计数器来代替。这个协议提供双向认证。因为协议中的消息彼此独立,所以协议可以只执行一轮。
图4.23 ISO/IEC 7998-3两次传输双向认证协议
第4个协议(图4.24)是对第2个协议的扩展,A和B分别使用随机数NA和NB。标准再次允许省略消息2中的域B和消息3中的域A,但当要求B可以保证A意识到B就是他的对等实体时,至少消息2中标识必须保留。(www.daowen.com)
图4.24 ISO/IEC 7998-3三次传输双向认证协议
第5个协议(图4.25)是第4个协议在标准化进程中的早期版本。与第4个协议唯一的不同点在于B在最后一条消息中选择随机数N′B并对它进行签名,这里N′B不同于前两条消息中的NB。这样选择的理由可能是保证A可以预测B不需要对消息进行签名。
图4.25 ISO/IEC 7998-3三次传输双向认证协议的早期版本
第5个协议的攻击如图4.26所示,即著名的“加拿大攻击”,它由参与标准化进程的加拿大小组提出。在攻击中,攻击者C建立两个协议运行实例,对A假冒成B,对B假冒成A。C可以用第二个运行实例中A的响应来完成同B的第一个实例的运行。
图4.26 对第5个协议的加拿大攻击
攻击的结果是A表面上与B完成协议运行,但实际上与C完成协议运行。
第6个协议(图4.27)是标准中最后一个协议,它允许认证在A和B之间并行运行。因此,消息1和1′、消息2和2′可以同时发送。和第4个协议一样,标准允许在消息2和2′中分别省略标识域B和A。同样地,对这些标识域的省略意味着不知道对等实体了(这里是双向都不知道)。
图4.27 ISO/IEC 9798-3两次传输并行认证协议
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。