本帖最后由 暖风 于 2017-10-8 13:37 编辑
关于字典攻击: 首先字典攻击是指在破解密码或 密钥时,逐一偿试用户自定义词典中的单词或短语的攻击方式。
那么目标系统该怎样改进以免受字典攻击带来的入侵风险呢? 口令的设置更加强壮(具有足够长度,含有字母、数字、符号等各种类型),更新更加频繁。这样可以减少被字典攻击猜测成功的几率。 采取针对字典攻击更为有效的入侵检测的机制,如某个客户端向系统频繁发起认证请求并失败时,系统应及时向管理员发出告警,发起分析和调查并在必要时更换新口令。 采用更加健壮的加密算法和策略,使得常规的字典攻击难以生效。 --来自百度百科
目前,大多数系统使使用口令进行用户身份验证,但这种方案易于猜测,在传输过程中容易被窃听,并且如不加密,可以被清楚的看到明文,即使加密,也易受到重放攻击,差分密码分析和线性密码分析等攻击手段。 在解决方案上,可以通过例如EKE等认证协议实现,但到目前还没有一个完美的方法来低于字典攻击,只能说各有各的缺陷,本文主要介绍在挑战-响应方案的基础上,基于安全的单项哈希函数设计一种实用有效的一次性口令身份验证方案即下面的第4个方案。 通过查找资料得知,目前也有很多方法可以实现一次性口令,可以在一定程度上防御字典攻击: 1、Lamport方案。在初始化阶段选取一个口令pw和一个数n,利用哈希函数f,通过计算y=Fn(pw),把y和n的值存到服务器上。用户端计算y'=Fn-1(pw)的值,服务器计算z=F(y’)通过比较z=y,判断是否验证成功。其安全性依赖与哈希函数F,不宜在分布式的网络环境下使用。此外,该方案因为要多次用到哈希函数所以,所要的系统服务器开销比较大。 2、时间同步方案。每个系统用户都有一个时间同步的令牌。令牌内置时钟。时间同步令牌根据当前时间和种子密钥可以每分钟生成一个一次性口令。用户访问系统时,系统通过种子密钥和当前时间计算出动态口令期望值,对用户进行验证。从这种角度上保证,口令的实时更新。但是该方案从技术角度很难保证用户的时间同步令牌在时间上和认证服务器严格同步,与其同时,在数据传输和处理过程有一定的延时,所以也存在一定的缺陷。 3、挑战-响应方案。每个用户都持有相应的挑战-相应令牌。令牌内置种子密钥和加密算法。服务器随机升成一个数发送给用户,用户人工输入令牌计算出的应答数。服务器通过与用户相同的密钥和加密算法计算出应答数验证用户。此方案所具有的安全性是目前最高的,但是需要特殊硬件(令牌)的支持,增加了实现成本,另外,用户人工输入容易产生差错,用户的身份标识直接在网络上明文传输,容易引起信息泄漏;没有实现用户的服务器的相互认证,不能抵抗来自服务器端的假冒攻击。 4、基于3,哈尔滨理工大学的王春晓和空军第一航空学院的张鹏提出来一种新型抵御字典攻击的方案。如下图: 其中Alice是用户端,Bob是服务端,KBob是Bob的私钥;P:用户的口令;n:不成功登录的次数;r:随机产生的20bit的数;R:随机产生的128bite的数;MAC:认证信息代码,由服务器发向用户;H(x):变量为x的标准哈希函数; 该方案使得服务器不需要再储存明文的用户口令,并且SSL的使用也不是必需的。
关于红色字体的注释: 重放攻击(Replay Attacks) 又称重播攻击、回放攻击,是指攻击者发送一个目的主机已接收过的包,来达到欺骗系统的目的,主要用于身份认证过程,破坏认证的正确性。 差分分析 是一种选择明文攻击,其基本思想是:通过分析特定明文差分对相对应密文差分影响来获得尽可能大的密钥 线性密码攻击 通过寻找一个给定密码算法有效的线性近似表达式来破译密码系统。 分布式网络 是由分布在不同地点且具有多个终端的节点机互连而成的
|