当客户端和服务器通信时,它们可能会受到中间人(MITM)攻击。
攻击者可以拦截来自客户端的请求,他可能选择修改数据,然后将修改后的请求发送到服务器。
在这种情况下,服务器需要验证收到的请求的完整性。
验证完整性的标准方法是在请求上附加一个称为消息认证码(MAC)的标签。
计算MAC的方法有很多,但其中一些方法并不安全。
MAC 是用密钥和消息计算出来的。 一种简单的计算 MAC 的方法是将密钥与消息连接起来组成一个字符串,然后计算其单向哈希。 这种方法看起来不错,但是会遭受长度扩展攻击。 这种攻击使攻击者可以修改消息,并可以为修改后的消息生成有效的MAC,攻击者无需知道密钥。
本实验的目的是帮助学生了解长度扩展攻击的工作原理。 学生将对服务器程序发起攻击,他们将伪造一个有效的命令让服务器执行该命令。