HTTPS协议
HTTPS的协议本质上就是在HTTP协议连接发起之前,先使用SSL/TLS协议,协调客户端和服务器端,在两端各自产生一个堆成加密算法的秘钥,然后以RSA(对之前生成的秘钥进行非对称加密)的方式安全地传输数据。因为对称加密算法是安全的,所以使用对称加密算法加密的网页也是安全的。
非对称加密算法(对称加密算法的秘钥,RSA) + 对称加密算法(加密内容,DES) + 数字证书(防止篡改非对称加密算法的公钥,CA) + HASH算法(防止篡改消息,MD5/SHA1)== HTTPS。
HTTPS 结合使用了 非对称加密算法,对称加密算法,hash算法,分别利用他们的优势,避免他们的缺点。利用非对称加密算法获得对称加密算法的秘钥,保证他的安全性;然后实际的网页内容的加密使用的是对称加密算法,利用了对称加密算法速度快的优势,hash算法主要是防止篡改的发生,是一种校验机制,最后数字证书,保证了服务器在将非对称加密算法的公钥传给浏览器时的安全性(不会被中间人篡改),同时也标志了服务器的身份。
对称加密算法
对称加密算法:就是加密和解密使用同一个密钥的加密算法。因为加密方和解密方使用的密钥相同,所以称为称为对称加密,也称为单钥加密方法。
- 优点是:加密和解密运算速度快,所以对称加密算法通常在消息发送方需要加密大量数据时使用;
- 缺点是:安全性差,如果一方的密钥遭泄露,那么整个通信就会被破解。另外加密之前双方需要同步密钥;
常用对称加密算法有:DES、3DES、TDEA、Blowfish、RC2、RC4、RC5、IDEA、SKIPJACK、AES等;
非对称加密算法
非对称加密算法:而非对称加密算法需要两个密钥来进行加密和解密,这两个秘钥是公开密钥(public key,简称公钥)和私有密钥(private key,简称私钥)。
公钥和私钥是一对:公钥用来加密,私钥解密,而且公钥是公开的,私钥是自己保存的,不需要像对称加密那样在通信之前要先同步秘钥。
- 优点是:安全性更好,私钥是自己保存的,不需要像对称加密那样在通信之前要先同步秘钥。
- 缺点是:加密和解密花费时间长、速度慢,只适合对少量数据进行加密。
常用的非对称加密算法有:RSA、Elgamal、Rabin、D-H、ECC等;
HASH算法
HASH算法:也称为消息摘要算法。将任意长度的二进制值映射为较短的固定长度的二进制值,该二进制值称为哈希值。
常用于检验数据的完整性,检验数据没有被篡改过。常见的又 MD5(MD系列),SHA-1(SHA系列)
HTTPS协议的运行过程
1.使用对称加密算法加密网页内容
2.使用非对称加密算法来加密对称加密算法的秘钥。
如何保证非对称加密算法公钥不会被篡改?
解决方法:将非对称加密算法的公钥放到CA(数字证书中)只要证书是可信的,那么公钥就是安全的。
公钥加密计算量太大,如何减少耗用的时间?
解决方法:每一次对话(session),客户端和服务器端都生成一个"对话密钥",用它来加密信息。由于"对话密钥"是对称加密算法,所以运算速度非常快,而服务器公钥只用于加密"对话密钥"本身,这样就减少了加密运算的消耗时间。(也就是网页内容的加密使用的是对称加密算法)
因此SSL/TLS协议的过程如下:
(1) 客户端向服务器端索要并验证非对称加密算法的公钥。
(2) 双方协商生成对称加密算法的"对话密钥"。
(3) 双方采用对称加密算法和它的"对话密钥"进行加密通信
HTTP与HTTPS的区别
1.HTTPS需要用到CA证书,一般都需要收费。
2.HTTP是超文本传输协议,信息是明文传输,而HTTPS是是具有安全性的SSL/TLS的加密传输协议
3.HTTP和HTTPS的连接方式不同端口号不一样,且HTTP使用的端口号是80,而HTTPS用的端口号是443
4.http的连接很简单,是无状态的;HTTPS协议是由SSL/TLS+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。