总所周知,在浏览器中我们搜索某些网页打开的时候浏览器会弹出网站不安全的字样,like this:
这是为什么呢?因为我们和网站通讯使用的是未加密的http协议,与服务器之间采用明文通讯,如果在通讯链路中被监听的话,是可以看到访问内容和提交的表单。这就非常危险,如果提交表单当中包含隐私信息,比如账号密码。这就存在非常大的隐患,所以为了弥补这一缺陷,就出现了https协议。
https协议同时采用了非对称加密和对成加密,关于这两种加密的解释如下:
对称加密:使用同一个密钥进行加密和解密
非对称加密:使用一对密钥,公钥和私钥。公钥用于加密,私钥用于解密。
这两种加密方式各有利弊,比如对称加密只有一个密钥,对于密钥的管理非常重要,假如我发送一条信息:“123”,采用密钥加密后是“Ax34==/>”,那么如果被人接受到之后需要也有这个密钥才可以解析成123.但是如果密钥泄露了,也就意味着任何人都可以查看你的加密信息,采用对称加密保证安全的核心在于妥善保管自己的密钥。
使用非对称加密这是存在一个公钥和一个密钥,公钥负责加密,密钥负责解密。就像名字一样,公钥是可以公开的,让别人拿到后进行加密然后发送数据给你,你进行解密。但是你无法发送加密信息,除非你有对方的公钥。这种加密方式的好处是不用将自己的密钥传递给别人,泄露风险很小,别人拿到加密信息和公钥是无法破译数据的。
注意:这两种加密方式采用的算法都是有严格数学证明不可以被破译的,无法通过统计规律破译,数学上不存在反函数
下面来说一说https中的s的含义,其表示SSL,SSL(安全套接层)是一种用于保护网络通信的加密协议,确保数据在互联网上的安全传输。它通过加密数据,验证服务器身份,防止信息在传输过程中被窃取或篡改。
下面我们详细讲一下当我们访问服务器并采用ssl加密的流程:
当客户端向一个https网站发起请求:服务器会将SSL证书发送给客户端进行校验,SSL证书中包含一个公钥。校验成功后,客户端会生成一个随机串,并使用受访网站的SSL证书公钥进行加密,然后再发送给网站服务器。
网站服务器收到加密的随机串后:会利用自己的私钥进行解密,得到由客户端生成的随机串。服务器使用这一随机串,开始与客户端进行对称加密通信,客户端使用随机串对服务器发来的信息进行加密。
ssl的加密同时涉及两种加密方式,先使用非对称再使用对称加密,原因是非对称加密比较耗费计算资源。
SSL证书的工作流程分为三个部分:握手协议(Handshake protocol)、记录协议(Record protocol)、警报协议(Alert protocol)。 具体还涉及到CA证书颁发结构和CA证书信任链。实际上还是比较复杂的,包括当中还有防止内容被篡改的一些手段。 欲知后事如何,请待下回分解。
本文作者:James
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!