Security 如何使用RSA、AES和JWT进行安全授权?
首先,让我向你解释一下我想做什么: 让我们想象一下Bob想要获得Alice的授权(经典示例),在我的示例中Alice是一个服务器 让我们想象一下Bob和Alice已经获得了每个RSA密钥(4096) 因此,BOB要做到这一点的步骤是:Security 如何使用RSA、AES和JWT进行安全授权?,security,encryption,jwt,aes,rsa,Security,Encryption,Jwt,Aes,Rsa,首先,让我向你解释一下我想做什么: 让我们想象一下Bob想要获得Alice的授权(经典示例),在我的示例中Alice是一个服务器 让我们想象一下Bob和Alice已经获得了每个RSA密钥(4096) 因此,BOB要做到这一点的步骤是: 用SHA512和他的私钥签署信用证(明文) 使用AES CBC 256加密签名数据和信用 用RSA加密AES密钥 向Alice发送数据 因此,Alice会从相反方向执行关于ve的步骤,对其进行解密,并从Bob处验证其正确性 在Alice验证其Bob之后,她生成一个
已经感谢您的回答了。如果Alice不确定是谁发送了请求,那么Bob也不确定,因此这是一个双向问题,没有人确定对方的身份,您可以通过证书颁发机构的签名证书来解决。
如果您发送带有签名的证书,此证书由证书颁发机构(第三方)的私钥签署,以确保客户端-服务器之间的连接安全并防止任何修改 到目前为止还不错,但我现在的问题是,我们如何保护JWT不被踩死 正如你已经发现的,它是https 让我们想象一下,他将能够破坏HTTPS并窃取令牌 如果有人能够破坏HTTPS,那么我们有一个更大的问题,而不是被盗的头。默认情况下,您可以信任https(某些国家的特殊情况除外)
让我们假设通道不安全,例如,您可以分别对每条消息进行签名(对于不安全的通道,仅保护一个标头是不够的) 尝试发送带有signature@Makdous谢谢我编辑我的问题。忘了指出TTL的sry。但是当有人能够偷到头球时,这没什么用?我的意思是,确保来自例如GoDaddy的证书无论如何都更好,并且无论如何都可以使用HTTPS。但我的意思是,如果失败了,那么有人就不能准备加密的内容,但他可以得到标题并伪造身份。比如说,他偷了标题,然后他必须修改时间戳以使接收者可以接受,这意味着他必须更改与标题一起发送的签名,这将使其无效,因为它是用私钥签名的,最后是证书,它将确保签名或解密的头中没有任何修改或更改,因此我发现有人窃取头并能够重用它几乎是不可能的。我完全同意这一点。当然,他不能修改它,但只要它有效,他仍然可以使用它。也许我没有指出它对下一个请求有好处Alice会相信它的Bob或者我的思维方式失败了?请记住,如果它封装在所有这些安全层中,中间人无法单独获取标题。这是真的,但正如我在帖子中所说,在这一点上,我可能想得有点过头了,但无论如何,谢谢你的回答,伙计,你说得对,如果HTTPS坏了,那将是一个巨大的错误。为此,我使用了一个例子,其中的内容将被单独加密。当然,如果爱丽丝的PK被偷了,你就可以自己在JWT上签名,爱丽丝会相信的。当然在这个世界上没有什么是安全的,我只是想知道它是否提供了一个处理JWT的好方法