为什么 RESTful api 中通常不使用 RSA 签名?

2023-12-25

我开发了一个简单的应用程序,不使用(至少在开始时)任何第三方授权。我想创建一个供 iOS/Android/任何客户端使用的 RESTful api,因此我阅读了很多有关 RESTful API 实现的信息。然而,实现它们的通常方法包括发送某种用于签署请求的安全“令牌”;这使得 API 容易受到中间人攻击,建议的应对方法是使用 HTTPS。

然而,阅读所有这些让我想知道,为什么不使用私钥/公钥签名(如 RSA)来实现此目的。这样,客户端将根据密码生成私钥和公钥,在注册时发送公钥并将私钥保留在客户端上,即使有人掌握了服务器和客户端之间的所有通信,他仍然不会'无法冒充客户。

但我对密码学和安全性几乎一无所知,所以一定有我想不到的原因不使用这种方法,对吗?


目前还没有允许从密码派生非对称密钥对的方案。

另一个问题是公钥注册。进行身份验证存在问题,因为任何人都可以拥有非对称密钥对,因此必须提供一些附加信息。 公钥证书可以是这样的信息,但是,这要求客户端是某些公钥基础设施的用户。实践中使用的另一个选项是预先向服务器提供客户端公钥/证书。

最后,TLS (HTTPS) 已经使用非对称密钥来执行身份验证和交换会话密钥。客户端验证服务器的公钥证书(服务器身份验证),并且服务器可以选择对客户端的公钥证书执行相同的操作(客户端身份验证)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么 RESTful api 中通常不使用 RSA 签名? 的相关文章

随机推荐