Security 散列并将时间用作盐,以防止未经授权的系统访问和重播攻击

Security 散列并将时间用作盐,以防止未经授权的系统访问和重播攻击,security,sha,hmac,hmacsha1,Security,Sha,Hmac,Hmacsha1,我目前正在为一款手机游戏编写一个用户认证API。我想确保用户只能通过移动应用程序访问系统。也就是说,如果从浏览器或未经授权的系统访问服务器API,即使确切的POST参数有效,服务器也必须拒绝访问。理想情况下,系统也不应允许重播攻击 有人知道如何做到这一点吗 我正在考虑添加一个具有当前时间戳的唯一的每用户salt,并在客户端应用程序上使用私钥对参数进行加密,然后在服务器上对其进行验证。这种方式将阻止来自浏览器或CURL的访问,因为攻击者需要获取私钥才能计算SHA256哈希。包含时间戳的salt也将

我目前正在为一款手机游戏编写一个用户认证API。我想确保用户只能通过移动应用程序访问系统。也就是说,如果从浏览器或未经授权的系统访问服务器API,即使确切的POST参数有效,服务器也必须拒绝访问。理想情况下,系统也不应允许重播攻击

有人知道如何做到这一点吗

我正在考虑添加一个具有当前时间戳的唯一的每用户salt,并在客户端应用程序上使用私钥对参数进行加密,然后在服务器上对其进行验证。这种方式将阻止来自浏览器或CURL的访问,因为攻击者需要获取私钥才能计算SHA256哈希。包含时间戳的salt也将作为参数之一发送,服务器将获得时间戳并在超过某个时间时拒绝访问。但我不太确定安全性,也不确定这是常见的还是正确的做法,因为我从来没有设计过安全的应用程序,也没有看过它的源代码


谢谢你的意见

这将阻止用户截取网络上的请求并将其与CURL一起使用。但是私钥和签名算法都可以为你的应用提取并重新实现,所以这个解决方案不会完全安全


遗憾的是,如果没有向用户提供一些自定义的防篡改硬件,您将无法获得完全的安全性。

谢谢您的输入!我不会太担心那些试图从应用程序中提取密钥的玩家,因为我正在根据一些类似密钥的字符串动态生成密钥。一些字符串是虚拟的,用来欺骗黑客。我只需要让大多数球员很难回避