当前位置: 代码网 > 服务器>网络>SSL > SSL加密的通俗理解

SSL加密的通俗理解

2024年08月03日 SSL 我要评论
并且我还会把我的证书包括公钥发送给你。服务器:这好办,世界上‘真拼多多服务器的【私钥】’只有两个人知道,一是证书签发机构,另一个就是【真拼多多服务器自己】,只要我能证明我手中有‘拼多多服务器的私钥’,那么我就是‘真拼多多服务器’。服务器:这种非对称加密虽然安全,但是次次都这么做太麻烦了,接下来你可以生成一个【随机密钥】,由它加密的数据也只能由它解密,然后你用公钥加密【随机密钥】发送给我。客户端:我查过了,你的证书和公钥是真的,密文也能正确解析,你确实是【真服务器】,我们就按照这种非对称加密方式传输数据吧。

ssl加密的通俗理解

ssl(secure sockets layer安全套接层加密)加密广泛应用在https上,不是新颖的技术,这篇笔记就当是我的复习笔记,用最通俗的语言记录下来,抛砖引玉。

从http和https的区别说起

https和http的区别主要如下:

1、https协议需要到ca(certificate authority)申请证书,一般免费证书较少,因而需要一定费用。(证书签发机构有很多家,比如digicert)。

2、http信息是明文传输,https是ssl加密传输。

3、用的端口不一样,前者是80,后者是443。

4、http是无状态的;

https中的“s”指的就是ssl加密,大致上,https = http + ssl。

https传输的基本原理

打个比方,我们使用拼多多时。如果一开始建立连接的是高仿的并夕夕服务器,那么即使使用加密传输也没有意义,因为一开始的“接头人”就错了。

因此,在https中,当服务器受到客户端建立链接的请求,服务器首先要证明的是”自己是正版服务器”。

https使用非对称加密巧妙实现这一点。

非对称加密的密码是一对,即公钥和私钥,并遵循:

1.由公钥加密的数据只能由私钥解密;

2.由私钥加密的数据只能由公钥解密;

3.公钥是全网公开的;

4.私钥只有证书颁发机构和服务器方掌握;

用对话模拟https的非对称加密部分

客户端:拼多多服务器你好,我想和你建立链接,但你必须首先证明你是真正的拼多多服务器,这样我才能放心传输敏感数据。

服务器:这好办,世界上‘真拼多多服务器的【私钥】’只有两个人知道,一是证书签发机构,另一个就是【真拼多多服务器自己】,只要我能证明我手中有‘拼多多服务器的私钥’,那么我就是‘真拼多多服务器’。

客户端:那你如何证明你拥有‘拼多多服务器的私钥’呢?

服务器:你首先发送一段随机数给我,我用私钥进行加密,然后返还给你。并且我还会把我的证书包括公钥发送给你。你知道的,服务器的公钥只能解密出对应私钥加密的数据;如果你解密成功,就说明我发给你的数据是由【私钥】加密的,换句话说我手里确实有【私钥】,那么我就是真服务器了。

客户端:万一你发给我的证书是假的,公钥也是你私自生成的呢?

服务器:公钥和证书是全网公开的,你可以去验证,看是不是真的。

客户端:我查过了,你的证书和公钥是真的,密文也能正确解析,你确实是【真服务器】,我们就按照这种非对称加密方式传输数据吧。

服务器:这种非对称加密虽然安全,但是次次都这么做太麻烦了,接下来你可以生成一个【随机密钥】,由它加密的数据也只能由它解密,然后你用公钥加密【随机密钥】发送给我。

客户端:懂了,公钥加密的数据只能由你的私钥解密,就算有别人拿到了的【随机密钥】也无法解析,所以这个【随机密钥】世界上只有我们两个知道。我们后续的数据传输就全通过它来加密解密。

服务器:对,这就是ssl加密的【对称加密】部分了。

ssl加密 由 非对称加密 和对称加密两部分组成,所以称为【混合加密】,兼顾了安全和效率。

以上部分的内容虽然足够通俗,但不免有些啰嗦,下面将ssl加密过程简化为四个步骤:

1.client_hello:客户端发送 随机数a 和 自己支持的几种加密算法给服务器;

2.sever_hello:服务器生成随机数b,用客户端提供的一种加密算法加密,连同自己的证书发给客户端;

3.客服端验证证书真实有效,生产随机数c,用证书附带的公钥加密,发给服务器,此后的通信,由随机数c作为临时密钥,对称加密通信。

4.安全数据传输

那么有几个问题值得思考:

1.前两步生成的随机数a、b似乎没什么用?

答:其实是有用,随机数c的生成使用了随机数a、b,至于为什么要这样,这里不做讨论(我也不会)。

2.ssl加密发生在什么位置?什么时候?

答:发生在应用层和传输层之间,tcp三次握手完成之后。

这么说是有理由的,http是应用层协议,https是http外套了一层ssl,那么ssl肯定在应用层之下。tcp协议是传输层协议,负责保障传输的稳定性。试想,如果没有tcp三次握手作为前提,ssl的每一次通信如何能确保畅通呢。所以ssl必定发生在三次握手之后,传输层之上。但它又不是应用层协议,所以正如他的名字-安全套阶层通信,是一个套接上去的新的层。

3.tls(transport layer security)和ssl的关系

ssl是tls的前身,两者加密原理大致相同,但tls支持更多种加密算法,安全性更好,现在说的ssl实际上都是tls。

一件有趣的事

有一次做项目,需要申请ssl证书,是收费的。也需要发邮件把公司的营业执照,地址,电话等信息发给证书颁发机构。并说明你做网站的目的,如果是教育,慈善之类的网站,那家证书颁发机构将会给打折。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com