3. 重放攻击及防御措施
重放攻击( Replay Attacks)又称重播攻击、回放攻击,是指攻击者发送一个目的主机已接收过的包,特别是在认证的过程中,用于认证用户身份所接收的包,来达到欺骗系统的目的,主要用于身份认证过程,破坏认证的安全性。对于传输的会话凭证(口令或sesslon 等),如果仅仅采取简单加密措施进行,避免攻击者获得信息,但缺乏有效的验证机制,攻击者可以记录下来,并且在稍后的验证过程中进行重放,系统无法区分这次发送的登录信息是攻击者或是合法用户,会允许攻击者的访问。重放攻击的防御措施包括:
1)在会话中引入时间戳,由于时间戳的存在,攻击者的重放攻击会被系统拒绝;
2)使用一次性口令一次性口令即一个口令只使用一次,以确保在每次鉴别中所使用的口令不同,对付重放攻击。挑战一应答系统在某些场合使用一次性口令,此时,应答即口令,如果挑战不同,应答也不相同,每次应答都在使用后失效。使用一次性口令鉴别机制,发送方和验证方需要共同拥有一串随机口令,并在该串的某一位置保持同步,两方还要共同使用一个随机序列生成器,在该序列生成器的初态保持同步,同时,应维持两方时钟的同步。
3)在会话中引入随机数
挑战一应答是一种有效的应对口令嗅探和重放攻击的鉴别方式,在挑战一应答过程中, 用户和系统将协商一个秘密函数,鉴别时,系统首先发送一个挑战(随机数)M给用户,用户使用秘密函数生成应答N返回给系统。此时,系统独立计算出一个P,通过比较N和P是否一致判断用户的合法性。由于挑战过程带每浚缮出的M是随机生成的,因此可以有效的避免重放攻击和嗅探。