1.HTTPS加密的过程
HTTPS
是在HTTP
的基础上建立SSL
加密层,并对传输数据进行加密,是HTTP
协议的安全版。主要作用是:
(1)对数据进行加密,并建立一个信息安全通道,来保证传输过程中的数据安全;
(2)对网站服务器进行真实身份认证;
-
首先
TCP三
次握手建立链接,这是数据传输基础,在此之上开始SSL
加密; -
客户端首先发送
Client Hello
开始SSL
通信,报文中包含客户端支持的SSL版本、随机值Random1
、加密算法以及密钥长度等; -
服务器发送
Server Hello
,和客户端一样,在报文中包含SSL版本、随机值Random2
以及加密组件,此后服务端将证书也发送到客户端; -
此时客户端需要对服务端发送的证书进行验证,通过操作系统内置的CA证书,将服务器发送的证书的数字签名进行解密,并将证书的公钥进行相同算法的
HASH
与解密的数字签名解密的内容进行对比,验证证书是否合法有效,是否被劫持更换; -
客户端验证证书合法,然后生成一个随机值
Random3
,用公钥对Random3
进行加密,生成Pre-Master Key
,客户端以Client Key Exchange
报文将Pre-Master Key
发送到服务端,此后发送Change Cipher Spec
报文表示此后数据传输进行加密传输; -
服务端将
Pre-Master Key
用自己的私钥解密为Random3
,服务端发送Change Cipher Spec
报文表示此后数据传输进行加密传输;这时客户端与服务端都拥有三个随机字符串,且
Random3
是密文传输的,是安全状态的,此时则可以使用这三个字符串进行对称加密传输。由于非对称加密慢,不能每次传输数据都进行非对称加密,所以使用非对称加密将密钥协商好然后使用对称加密进行数据传输;
其中2、3、5、6
也被称为SSL四次握手。
2.名词解释
1.对称加密
使用相同的密匙对同一密码进行加密和解密。
- 加密:原文 + 密匙 = 密文
- 解密:密文 - 密匙 = 原文
- 优点:算法简单,加密解密容易,效率高,执行快。
- 缺点:相对来说不算特别安全,只有一把钥匙,密文如果被拦截,且密钥也被劫持,那么,信息很容易被破译。
2.非对称加密
非对称加密自然是使用不同的密钥进行加密和解密。
非对称加密有两个钥匙,即公钥 (Public Key)
和私钥(Private Key)
。公钥和私钥是成对的存在,如果对原文使用公钥加密,则只能使用对应的私钥才能解密。
非对称加密算法的密匙是通过一系列算法获取到的一长串随机数,通常随机数的长度越长,加密信息越安全。通过私钥经过一系列算法是可以推导出公钥的,也就是说,公钥是基于私钥而存在的。但是无法通过公钥反向推倒出私钥,这个过程的单向的。
- 优点:安全,即使密文被拦截、公钥被获取,但是无法获取到私钥,也就无法破译密文。作为接收方,务必要保管好自己的密钥。
- 缺点:加密算法及其复杂,安全性依赖算法与密钥,而且加密和解密效率很低。
3.数字证书
数字证书有点类似于我们的居民身份证,只是数字证书是基于互联网通信的,用于标记通信双方身份的一种方式。数字证书是由权威机构Certificate Authority
发行的,又称之为证书授权,简称为:CA
。
数字证书绑定了公钥及其持有者的真实身份,它类似于现实生活中的居民身份证,所不同的是数字证书不再是纸质的证照,而是一段含有证书持有者身份信息并经过认证中心审核签发的电子数据,广泛用在电子商务和移动互联网中。
4.数字签名
数字签名是指使用·Hash·函数获取原文摘要,将摘要信息使用接收者的公钥进行加密,与密文一起发送给接收者。接收者使用自己的私钥对摘要信息进行解密,然后使用·Hash·函数对收到的密文产生一个摘要信息,然后将摘要信息与发送者传输过来解密后的摘要信息对比是否一致。如果一致,则表明数据信息没有被篡改。
也就是说,数字签名能够验证收到的信息的完整性,避免中途信息被劫持篡改或丢失。对方可以根据数字签名来判断获取到的数据信息时候是最原始的数据
例如:
·