PKCE with RSA both ways



PKCE可以在服务器和客户端同时生成公钥和私钥的情况下实现吗?值得吗?我认为是这样的流程:

  1. 客户端生成私钥和公钥
  2. 客户端向服务器发送公钥
  3. 服务器生成私钥和公钥,生成随机秘密并使用客户端公钥加密秘密
  4. 服务器发送回客户端加密密钥和服务器公钥
  5. 客户端用自己的私钥解密秘密,用服务器的公钥再次加密,并将加密后的秘密发送回服务器
  6. 服务器用他的私钥解密秘密,并检查生成的秘密和现在解密的秘密是否相同

我错过了什么吗?这种方法不好吗?这个加密/解密/生成密钥的计算是否繁重?

你的算法似乎和PKCE标准一样安全。我不认为加密随机字符串有任何附加价值。您还向服务器添加了一次往返,因为在PKCE中,是客户机生成初始随机字符串。

加密消耗资源,并且很容易实现错误。您还需要在服务器端和客户端同时支持加密算法。因此,我认为尝试将这种加密添加到经过验证的标准中是多余的。

最新更新