一、HTTPS简介
HTTPS(全称:Hypertext Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。HTTPS是身披SSL外壳的HTTP,HTTPS并不是应用层的一种协议,而是HTTP通信接口部分采用SSL和TSL协议代替。
1.1 HTTP数据传输
由浏览器先行发出HTTPS操作请求,再由服务端返回HTTPS证书,如若客户端验证证书非法则提示告警。当证书验证合法会在本地生成随机数,通过公钥对随机数进行加密处理,然后再将加密的随机数传输到服务端,服务端通过私钥对传输过来的随机数进行解密,通过客户端传进来的随机数构造对称加密算法对返回结果内容进行加密传输。
1.2 HTTP作用
- 内容加密:建立一个信息安全通道,来保证数据传输的安全;
- 身份认证:确认网站的真实性
- 数据完整性:防止内容被第三方冒充或者篡改
二、HTTP和HTTPS的区别
- HTTP的URL由“http://”起始且默认使用端口80,而HTTPS的URL由“https://”起始且默认使用端口443。
- HTTP协议需要到CA申请证书
- HTTP是超文本传输协议,信息是明文传输;HTTPS 则是具有安全性的ssl加密传输协议。
- HTTP的连接很简单,是无状态的;HTTPS协议是由SSL/TSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比HTTP协议安全。
- HTTPS 对数据进行加解密决定了它比HTTP慢
- HTTPS需要进行非对称的加解密,且需要三次握手。
三、对称加密和非对称加密
3.1 对称加密
密钥只有一个,加密解密为同一个密码,且加解密速度快,典型的对称加密算法有DES、AES等;
3.2 非对称加密
密钥成对出现(且根据公钥无法推知私钥,根据私钥也无法推知公钥),加密解密使用不同密钥(公钥加密需要私钥解密,私钥加密需要公钥解密),相对对称加密速度较慢,典型的非对称加密算法有RSA、DSA等。
使用公开密钥对文件进行加密传输:首先,发送方使用接收方公钥和公开的加密算法对消息加密,通过网络将消息传给接收方,然后,接收方用接收方私钥对消息进行解密得到其原始明文。
四、SSL和TSL
所有连接到互联网的设备都有一个公共点,它们依赖安全套接字层SSL和传输层安全TSL协议保护传输的信息。SSL和TSL都是加密协议,旨在基于不安全的基础设施提供安全通信。
4.1 SSL(Secure Sockets Layer,安全套接字层)
SSL是一种标准的安全技术,用于服务器和客户端之间建立加密连接。SSL为TCP/IP连接提供数据加密、服务器认证、消息完整性以及客户选的客户机认证。
SSL的主要目的是在两个通信应用程序之间提供私密性和可靠性,它包括3个元素。
- 握手协议,负责协商被用于客户机和服务器之间会话的加密参数。当一个SSL客户机和服务器第一次开始通信时, 它们在一个协议版本上达成一致,选择加密算法,选择相互认证,并使用公钥技术来生成共享密钥。
- 记录协议,用于交换应用层数据。应用程序消息被分割成可管理的数据块,压缩并应用MAC(消息认证代码),结果被加密并传输。接收方接收数据并对它解密、校验MAC,解压缩并重新组合它,并把结果提交给应用程序协议。
- 警告协议,用于指示在什么时候发生了错误或两个主机之间的会话在什么时候终止。
4.2 TLS(Transport Layer Secutity,传输层安全)
基于SSL的成功,IETF定义了一种新的协议叫做TSL。它建立在SSL3.0西医规范的基础上,用于传输层安全性的标准协议。但是,在SSL和TSL之间存在显著的差别,主要是它们支持的加密算法不同,
TLS优点
- 对于消息认证使用密钥散列法:TLS使用“消息认证代码的密钥散列法”HMAC,当记录在开放的网络上传送时,该代码确保记录不会被变更.SSL v3.0还提供键控消息认证,但HMAC比SSL v3.0使用的(消息认证代码)MAC功能更安全。
- 增强的伪随机功能(PRF):PRF生成密钥数据。在TLS中,HMAC定义PRF。PRF使用两种散列算法保证其安全性。如果任一算法暴露了,只要第二种算法未暴露,则数据仍然是安全的。
- 改进的已完成消息验证:TLS和SSLv3.0都对两个端点提供已完成的消息,该消息认证交换的消息没有被变更。然而,TLS将此已完成消息基于PRF和HMAC值之上,这也比SSLv3.0更安全。
- 一致证书处理:与SSLv3.0不同,TLS试图指定必须在TLS之间实现交换的证书类型。
- 特定警报消息:TLS提供更多的特定和附加警报,以指示任一会话端点检测到的问题。TLS还对何时应该发送某些警报进行记录。