java - 在 HTTP 连接中使用基于 token 的身份验证时如何防止重放攻击

标签 java security jwt jwe

在使用基于 token 的身份验证(例如:JSON Web 身份验证)时,如何防止重放攻击并为我的应用程序添加另一层加密?

最佳答案

如果您想保护您的应用程序身份验证免受重放攻击,您可以包括随机数 (jti)、过期时间 (exp) 和颁发时间 (iat)。

有关详细信息,请参阅 spec .

更多细节。

A replay attack (also known as playback attack) is a form of network attack in which a valid data transmission is maliciously or fraudulently repeated or delayed. [wikipedia]

因此,如果您使用随机数,则数据只能传输一次,因此不可能重新传输。这可以防止经典的重放攻击。

为避免延迟攻击,使用到期时间和发布时间。这种攻击不仅包括捕获数据流量,还包括中断受害者的流量。中断交通需要时间。

当然,使用到期时间和发行时间并不是 100% 的解决方案,但如果您明智地选择这些值,则可以将风险降至最低。

关于java - 在 HTTP 连接中使用基于 token 的身份验证时如何防止重放攻击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43327829/

相关文章:

python - 使用 Django GraphQL JWT 和 Graphene Relay 进行身份验证和授权

Java - 文本文件 - 在某些字符串之间读取

java - 无法理解remove()函数

java - 使用相同的镜像名称更新 kubernetes 部署

php - 如何在不使用 OAuth 的情况下制作安全 API?

php - 在安全方面,汇比源更重要吗?

java - 错误: Invalid Client - Sign In With Apple with Spring Boot

java - 如何正确调用延迟处理程序方法?

java - 反射安全

node.js - 模拟 jwt 签名的私钥