SSL:客户端如何解密来自服务器的消息

Posted

技术标签:

【中文标题】SSL:客户端如何解密来自服务器的消息【英文标题】:SSL: How the client decrypt message from server 【发布时间】:2015-07-16 16:36:24 【问题描述】:

我已经阅读并观看了很多关于 SSL AES 和 RSA 的文章和视频,但每一个解释中总是缺少一件事(或者我只是不明白)是客户端如何解密来自的敏感数据服务器!(例如你有多少钱)

我知道您的公钥可以加密任何内容并将其发送到服务器,任何人都可以拥有它,但是当您想从服务器检索某些内容时该怎么办? 它是纯文本格式的吗?

任何文章和视频都指出了这一点,他们都只是说您有一个不应该共享的私钥和一个可以加密您的消息并在互联网上共享的公钥,但他们没有不能说明客户端如何使用加密消息发出 GET 请求并对其进行解密以便人类可读。

正如 this link 关于 AES 所说:

非对称加密的工作原理是有两个不同的密钥,一个用于 加密和解密。它通常也被称为“公钥” 密码学”,因为可以公开一个密钥(允许 某人加密消息),同时保持另一个私密(仅 私钥的持有者可以解密用 其相关的公钥)。

欢迎任何帮助!

我将留下一些我认为对学习有用的有关网络安全的链接: https://www.coursera.org/learn/internet-history/lecture/L7HzI/security-integrity-and-certificate-authorities

【问题讨论】:

简短版:您(客户端)选择一个(随机)对称密钥。您使用服务器的公钥对其进行加密并将其发送到服务器。服务器(并且只有服务器)可以解密它。从那时起,您将使用对称密钥,而不是公钥/私钥对。 跨站复制:How does SSL/TLS work? @Damien_The_Unbeliever 简短且错误的版本。请参阅接受的答案或 RFC 2246 #8.1。 【参考方案1】:

如果您想要所有详细信息,请获取SSL and TLS: Designing and Building Secure Systems 的副本。如需更枯燥的讲座,请阅读RFC2246 The Transport Layer Security (TLS) Protocol。

简短的故事是这样的:在 TLS/SSL 握手期间,客户端和服务器交换一个秘密(PMS,pre-master-secret)。此密钥用于派生会话密钥、初始化向量和 HMAC 密钥以供客户端和服务器使用。每个人都使用这个密钥来加密和签署从自己这边发送的所有内容,并且每个人都使用对方的密钥来解密和验证对方发送的数据。 任何方向都不会以明文形式出现。

基于所用证书的授权和认证是一个完全正交的问题。

【讨论】:

你能看看我的问题吗:***.com/questions/41227491/…

以上是关于SSL:客户端如何解密来自服务器的消息的主要内容,如果未能解决你的问题,请参考以下文章

简述SSL记录协议的操作步骤

使用php mcrypt加密解密

使用php mcrypt加密解密

https原理

如何使用来自 extjs 的 SSL 调用 rest

SSL/TLS通信