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

标签 security ssl encryption cryptography

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

我知道你的公钥可以加密任何东西并将它发送到服务器并且任何人都可以拥有它,但是当你想从服务器检索一些东西时你会怎么做? 它以纯文本形式出现吗?

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

正如 this link 中所说关于 AES:

Asymmetric cryptography works by having two different keys, one for encryption and one for decryption. It's also often called 'public key cryptography' because it's possible to make one key public (allowing someone to encrypt a message) while keeping the other private (only the holder of the private key can decrypt the message encrypted with its related public key).

欢迎任何帮助!

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

最佳答案

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

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

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

关于security - SSL:客户端如何解密来自服务器的消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30078466/

相关文章:

java - 如何创建密码?

php - $_SERVER 容易被用户更改

C++ (win)OpenSSL MD5 崩溃

php - 在保存到数据库之前清理 $_SERVER ['HTTP_USER_AGENT' ] & $_SERVER ['HTTP_REFERER' ]?

java - 用户可以设置 JSF 支持 bean 中的哪些属性?

security - 如何在 tomcat 6 中将 session cookie 标记为安全(仅限 https)

ssl - 与在 RedHat 上使用 curl 相关的未知 SSL 协议(protocol)错误

iPhone:为 SSL 连接安装证书

ssl - SSL 有多安全?

.net - .Net 3.5 中可用的最强加密是什么