【问题标题】:SSL - man in the middle attack - stealing jsonwebtokenSSL - 中间人攻击 - 窃取 jsonwebtoken
【发布时间】:2016-06-08 12:40:53
【问题描述】:

据说当你使用 ssl 时,你可以防止中间人从服务器窃取信息到客户端,反之亦然。在我的情况下窃取 jsonwebtoken。我从其他答案中也了解到 ssl 使用私钥和公钥。私钥存储在服务器上,公钥分发给客户端。您可以使用私钥加密信息,但不能使用私钥解密,因为您需要公钥。您也可以使用公钥加密信息,但无法使用公钥解密信息,因此您需要私钥。

我目前的看法是,当服务器将公钥发送给客户端时,中间的人也能够获得公钥的副本,他将能够将信息从服务器解密到客户端客户。我是对的还是我错过了什么。我知道中间的人无法解密从客户端到服务器的信息,因为他没有私钥,但是如果他已经可以将信息从服务器到客户端解密,那么他就可以窃取 jsonwebtoken 哪个使他能够代表客户登录。

对我来说,当客户同时拥有私钥和公钥时,这会更符合逻辑。私钥应该存储在他的计算机上,公钥发送到服务器。因此,服务器使用客户端的公钥而不是他自己的私钥对发送给客户端的信息进行加密。然后,服务器上的私钥仅用于解密来自客户端的信息。在这种情况下,您将进行 2 路加密,而中间的人根本无法解密任何信息。但到目前为止,我知道它不是这样工作的。

也许我完全错了,或者我忽略了一些东西。希望有人可以点亮一些东西,因为我不是 100% 清楚。 提前感谢您的帮助。

【问题讨论】:

    标签: ssl


    【解决方案1】:

    服务器公钥/私钥仅用于建立会话密钥。不加密会话期间发送的数据。

    这由客户端生成预主密钥并使用服务器公钥加密。然后客户端和服务器都可以使用预主密钥创建会话密钥,并且没有窃听者或中间人可以知道它。

    此外,我们还采取了更多措施来提供机密和经过身份验证的通信。

    【讨论】:

    • 那么会话密钥用于另一种类型的加密?这是有道理的。
    • 客户端不生成会话密钥;不加密;并且不发送。它通过密钥协议协议进行协商。
    • @EJP,我已经更新了文本,说发送的是 premaster secret 而不是 sesison 密钥。为简化起见,我只描述基于 RSA 的密钥协议。
    猜你喜欢
    • 2014-03-25
    • 2013-03-28
    • 2014-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-31
    • 2011-01-07
    • 2021-11-14
    相关资源
    最近更新 更多