文章横幅PC版
文章横幅iPad版
文章横幅手机版

S/KEY认证

TIME:2018-11-12 16:00  click: 687 次 来源: 未知

S/KEY认证协议由贝尔通信研究所提出,并在RFC1760文档中定义,专用于处理重放攻击问题。

在由认证方初始化的过程中,被认证方与服务器均得用一样的口令和一个选代次数配置。迭代次数是为了指出对挑战实施摘要运算的次数。

S/KEY认证过程如下。

(1)当要身份验证时,被认证方利用发送一个初始化包开始S/KEY交换,服务器用一个选代次数与种子来响应。

(2)被认证方计算一次性口令,把在服务器得到的种子与用户输入的口令连接起来,用单向Hash函数(MD4或MD5)反复计算Seq次,把得到的数字摘要当做一次性口令传到服务器端。

(3)服务器端保存有一个文件,含了每个用户上一次登录时的一次性口令。为验证本次认证请求,服务器把接收的一次性口令继续操作一次安全Hash运算,并与保存的文件内容进行比较。如果匹配那么认证成功,并拿接收的一次性口令更新,文件的内容,以备后面认证用。同时,将Seq减1。

(4)因Seq由认证次数的增加不断减少,一定会有重新初始化的问题。用户可在初始化时重新指定口令、选代次数与种子。

S/KEY的优点如下。

(1)口令不仅不保存在被认证方的机器上,还不存储在服务器端,技术上不存在泄露问题。

(2)每次传输的内容均不一样,有效避免了重放攻击。

(3)算法公开,任何人都能使用。

(4)若无一次性口令发生器,可先保存一系列连续的一次性口令列表,在通信时用,但不可暴露当前用到哪个一次性口令。

因种子与迭代次数都以明文进行传输,这为黑客留下了漏洞。像黑客可用小数攻击获得一系列口令假冒合法用户,也就是当被认证方对服务器请求认证的时候,把迭代次数改为较小的值再传给被认证方,同时再截获被认证方计算得到的一次性口令,之后用已知的安全Hash运算按顺序计算较大迭代次数的一次性口令,逐次尝试服务器,直至认证通过为止。此外,通过该系统实施身份认证,被认证方得多次Hash运算,服务器要记录每次登录的口令,且每隔段时间还要重新初始化系统,认证过程的运算量与额外花销较大。

上一篇:双因子身份认证 下一篇:密钥管理技术包括