首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Restful的安全汇率

Restful的安全汇率
EN

Security用户
提问于 2019-03-23 03:52:09
回答 1查看 90关注 0票数 0

我需要为用户实现一个网络应用程序来交换资金。应用程序需要调用API #1来检索汇率,并将其显示在屏幕上以进行确认。然后用确认的汇率调用另一个API #2 (相同的API提供程序)来执行货币交换。

为了避免在服务器上存储状态并保护汇率不被用户修改,我可以想到的是,API #1需要使用对称密钥返回一个普通的汇率及其相应的加密汇率。然后将加密的一个传递给API #2,以便执行事务。

我说的对吗?如何安全地实现加密?每个用户具有登录名和登录时间戳的对称密钥?或者为每个登录会话随机生成会话密钥?

EN

回答 1

Security用户

回答已采纳

发布于 2019-03-23 05:27:57

没有必要使用加密,因为信息不是秘密的。重要的部分是保护信息不受修改(这甚至不是所有加密方法都提供的)。

因为这两个API都是由同一个提供程序提供的,所以这样做的方法是只有提供者知道一个秘密,然后在HMAC中一起使用这个秘密和汇率。然后,API#1可以创建此HMAC,并将其与汇率一起发送到客户端。在调用API#2时,客户端将使用给定的汇率和HMAC,其中服务器可以使用提供的汇率计算新的HMAC,并将其与客户端发送的HMAC进行比较。如果两者匹配,则该速率未被篡改。HMAC的实现可以在大多数常用语言中使用。有关更多信息,请参见维基百科:HMAC

如果两个API都不是由同一方提供的,则不能使用共享秘密。在这种情况下,可以使用数字签名: API#1的提供者将创建密钥对(RSA或ECC)并发布其公钥。私钥将用于签署所有需要保护以防止修改的消息,即在这种情况下的汇率。每个获得公钥的人都可以验证签名,从而检测篡改。有关更多信息,请参见维基百科:数字签名

票数 0
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/205923

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档