作为练习,我被要求解决这个安全问题,但我遇到了一些困难。
一些符号:
- C1 表示计算机 1
- S1 表示 Server1,
- TA 表示可信认证系统,
- X -> Y | Z 表示 X 向 Y 发送消息 Z,
- K_X,Y(m) 表示 m 用 X 和 Y 共享的对称密钥加密。
假设你有 C1 想要通过 TA 被 S1 识别,协议工作如下:
- C1 -> S1 | C1
- S1 -> C1 | 随机数1
- C1 -> S1 | K_C1,TA(nonce1)
- S1 -> 助教 | K_S1,TA(C1, K_C1,TA(nonce1))
- TA -> S1 | K_S1,TA(nonce1)
为什么这不安全?也许是因为 C1 将其身份作为明文发送给 S1,而 Eve 可以尝试使用 C1 使用重放攻击来伪造她的身份?或者还有什么?