什么是SSL?
成都创新互联主营安多网站建设的网络公司,主营网站建设方案,重庆App定制开发,安多h5微信小程序开发搭建,安多网站营销推广欢迎安多等地区企业咨询
SSL 代表安全套接字层。它是一种用于加密和验证应用程序(如浏览器)和 Web 服务器之间发送的数据的协议。 身份验证 , 加密 Https 的加密机制是一种共享密钥加密和公开密钥加密并用的混合加密机制。
SSL/TLS 协议作用:认证用户和服务,加密数据,维护数据的完整性的应用层协议加密和解密需要两个不同的密钥,故被称为非对称加密;加密和解密都使用同一个密钥的对称加密。优点在于加密、解密效率通常比较高 HTTPS 是基于非对称加密的, 公钥是公开的,
(1)客户端向服务器端发起 SSL 连接请求;
(2) 服务器把公钥发送给客户端,并且服务器端保存着唯一的私钥;
(3)客户端用公钥对双方通信的对称秘钥进行加密,并发送给服务器端;
(4)服务器利用自己唯一的私钥对客户端发来的对称秘钥进行解密;
(5)进行数据传输,服务器和客户端双方用公有的相同的对称秘钥对数据进行加密解密,可以保证在数据收发过程中的安全,即是第三方获得数据包,也无法对其进行加密,解密和篡改。
因为数字签名、摘要是证书防伪非常关键的武器。 “摘要”就是对传输的内容,通过 hash算法计算出一段固定长度的串。然后,在通过 CA 的私钥对这段摘要进行加密,加密后得到的结果就是“数字签名”
SSL/TLS 协议的基本思路是采用公钥加密法,也就是说,客户端先向服务器端索要公钥,然后用公钥加密信息,服务器收到密文后,用自己的私钥解密。
如何保证公钥不被篡改?
将公钥放在数字证书中。只要证书是可信的,公钥就是可信的。
公钥加密计算量太大,如何减少耗用的时间?
每一次对话(session),客户端和服务器端都生成一个”对话密钥”(session key),用它来加密信息。由于”对话密钥”是对称加密,所以运算速度非常快,而服务器公钥只用于加密”对话密钥”本身,这样就减少了加密运算的消耗时间。
(1)客户端向服务器端索要并验证公钥。
(2)双方协商生成”对话密钥”。
(3)双方采用”对话密钥”进行加密通信。上面过程的前两步,又称为”握手阶段”(handshake)。
《计算机网络》书本:
SSL 工作过程,A:客户端,B:服务器端
1.协商加密算法:A 向 B 发送 SSL 版本号和可选加密算法,B 选择自己支持的算法并告知 A
2.服务器鉴别:B 向 A 发送包含公钥的数字证书,A 使用 CA 公开发布的公钥对证书进行验证
3.会话密钥计算:A 产生一个随机秘密数,用 B 的公钥进行加密后发送给 B,B 根据协商的算法产生共享的对称会话密钥并发送给 A.
4.安全数据传输:双方用会话密钥加密和解密它们之间传送的数据并验证其完整性
HTTP(Hyper Text Transfer Protocol),超文本传输协议。它是从WEB服务器传输超文本标记语言(HTML)到本地浏览器的传送协议。HTTP是一个基于TCP/IP通信协议来传递数据的协议,传输的数据类型为HTML 文件、图片文件、查询结果等。
HTTP的安全缺陷:
非对称加密可以为网络数据传输安全性提供保障。
MAC(Message Authentication Code):消息验证码
为了避免网络中传输的数据被非法篡改,SSL利用基于MD5或SHA的MAC算法来保证消息的完整性。MAC算法是在密钥参与下的数据摘要算法,能将密钥和任意长度的数据转换为固定长度的摘要数据,这串摘要值与原数据存在对应关系,就是原数据会生成这个摘要,但是,这个摘要是不能还原成原数据的。也就是说,发送者使用共享密钥通过MAC算法计算出消息的MAC值,并将其加在消息之后发送给接收者。接收者利用同样的密钥和MAC算法计算出消息的MAC值,并与接收到的MAC值比较。如果二者相同,则报文没有改变;否则,报文在传输过程中被修改,接收者将丢弃该报文。
MAC消息验证码摘要算法为网络数据传输的完整性提供保障。
CA(Certificate Authority):证书授权认证中心
CA中心是被认可的权威、可信、公正的第三方机构,专门负责发放并管理所有参与网上业务的实体所需的数字证书。数字证书是网络世界中的身份证。因为数字证书是CA颁发的所以也叫CA证书。国内外有很多权威CA机构,如:DigiCert、GeoTrust等。
如上图所示,CA证书申请者向CA机构提交公钥、域名和申请者信息,CA机构经线上或线下审核后颁发CA证书。CA证书文件包含了公钥、公钥拥有者名称、CA的数字签名、有效期、授权中心名称、证书序列号等信息。下图是cn.bing.com的CA证书(浏览器查看):
X.509是一种 数字证书 的 格式标准 。SSL/TLS使用的证书就是x.509格式的。
CA证书为身份认证提供了保障。
HTTPS 协议(HyperText Transfer Protocol over Secure Socket Layer):一般理解为HTTP+SSL/TLS,通过 SSL证书来验证服务器的身份,并为浏览器和服务器之间的通信进行加密。
SSL(Secure Socket Layer,安全套接字层):1994年为 Netscape 所研发,SSL 协议位于 TCP/IP 协议与各种应用层协议之间,为数据通讯提供安全支持。
TLS(Transport Layer Security,传输层安全):其前身是 SSL,它最初的几个版本(SSL 1.0、SSL 2.0、SSL 3.0)由网景公司开发,1999年从 3.1 开始被 IETF 标准化并改名,发展至今已经有 TLS 1.0、TLS 1.1、TLS 1.2 三个版本。SSL3.0和TLS1.0由于存在安全漏洞,已经很少被使用到。TLS 1.3 改动会比较大,目前还在草案阶段,目前使用最广泛的是TLS 1.1、TLS 1.2。
SSL/TLS发展史:
SSL/TLS认证过程:
从上图可见SSL/TLS解决了HTTP的安全问题,握手建立SSL连接通过CA证书认证服务器身份,使用非对称公私钥加密保证共享密钥(对称加密密钥)协商的安全性,握手完成后双方使用共享了的会话密钥加解密传输数据保证数据不被窃取和篡改。
另外,如果服务器需认证客户端身份可使用SSL/TLS双向认证,客户端需将它的证书发送服务器以验证其身份。如银行网银账号登录使用的U盾。
蓝海大脑液冷服务器事业部经理表示:我统一认为如果抛开Jeston而言,一个边缘端的数据传输安全保障有多个维度,第一个是从硬件上,我们的硬件设备上会有一些安全保障措施和安全机制。安全机制包括设备本身的安全,例如我们可以增加一些加密的芯片等做一些数据安全的保密传输。第二个是在软件层面上,我们的SDK里有一些数据保密传输和保密加密的开发套件,大家可以关注下SDK。在整个数据传输过程中,不仅仅是我们的边缘端设备,包括我们的通讯设备以及服务器等,其实是一连串的。从end-to-end来看,信息从采集传输到最终的处理,每个环节其实都有安全保障。