
HTTPS协议是啥?有何特点?
HTTPS是一种通过计算机网络进行安全通信的传输协议,经由HTTP进行通信,利用SSL/TLS(传输加密协议)建立安全信道,加密数据包。HTTPS使用的主要目的是提供对网站服务器的身份认证,同时保护交换数据的隐私和完整性。HTTPS的特点包含以下几个方面:
① 内容加密:采用混合加密技术,通信报文全部为密文,即使抓包进行分析也很难进行破解。
② 验证身份:服务端和客户端进行双向认证时,双方通过数字证书认证机制相互校验对方的身份是否合法。
③ 保护数据完整性:通信过程中,采用签名机制,防止传输内容被中间人冒充和篡改。
HTTPS与HTTP协议的区别?
1、HTTP协议通过明文进行传输,可以通过抓包技术查看传输的内容。
2、HTTP连接很简单,是无状态的。
3、HTTPS协议是安全加密传输协议,使用前提,需要到合法的数字证书颁发机构申请证书才能应用。
4、HTTP和HTTPS使用的是完全不同的连接方式,HTTPS连接建立时会进行SSL握手、证书验证、加密密钥协商等过程。二者使用的端口也不一样,网站建设中,前者一般常用80端口,后者是一般常用443端口。
HTTPS协议是如何加密的?
在谈到如何加密之前,我们先来了解下常用的加密技术,常用的加密技术有对称加密、非对称加密。对称加密中,加密和解密使用的密钥是同一个;非对称加密中,有一个密钥对的概念,密钥对包含一个公钥,一个私钥。通常用公钥进行加密、私钥进行解密。有人会问,为啥不用私钥加密,公钥解密?这个问题可以这样回答,在非对称加密中私钥加密一般称作“签名”,公钥解密一般称作“验签”,为啥是这样,我在以后的文章中会陆续介绍基于PKI数字证书认证体系相关的知识,有兴趣的朋友可以加关注。
好了言归正传,我们回过头来看看HTTPS协议是如何进行通信的,通信过程中又是如何加密的?HTTPS是安全通信协议,通信过程是在SSL(Secure Sockets Layer)协议+HTTP协议的基础上完成的,HTTPS相比HTTP协议,多了一个SSL安全通道建立的过程,SSL的过程包含身份认证、秘钥协商、通信加密3个重要的子过程。下面分别逐一介绍这几个过程。
1.身份认证
身份认证分为单向认证和双向认证两种场景,单向认证是指客户端与服务器端通信过程中,客户端只校验服务端的身份;双向认证是指客户端即校验服务端的身份、服务端也校验客户端的身份。上面提到了身份校验,有人会问到身份校验是如何实现的呢?让我来告诉你,身份认证就是证书验证的过程,在上面提到的单向认证场景中,服务端会将自己的证书(你可以理解为身份证,由合法的证书颁发机构生成的根证书签发)发送给客户端,客户端拿到服务端的证书后,通过内置的根证书来验证其签名是否正确、有效性等。
2.秘钥协商
身份认证完成后,接下来就是秘钥协商的过程了,秘钥协商的过程比较复杂,涉及到密码学和算法相关的知识,这里不再详细介绍了,大家了解即可。秘钥协商的目的是为了协商出来一个临时会话秘钥,这个秘钥作为本次通信报文的加密密钥。
3. 通信加密
秘钥协商完成后,下面的过程就是对通信的报文进行加密,加密采取对称加密的方式,加密算法由客户端和服务端共同协商完成,服务端会把自己支持的加密算法发送给客户端,客户端在这些加密算法中找出自己所支持的一个算法进行加解密。
上面的讲解中提到了证书这个东西,什么是证书?证书怎么来?怎么签发?又是如何应用?都是由PKI体系来完成的,涉及到这一块的知识,我后面的文章会陆续分享给大家。