一.HTTPS是如何保证安全传输的
https通过使⽤对称加密、⾮对称加密、数字证书等⽅式来保证数据的安全传输。
- 客户端向服务端发送数据之前,需要先建⽴TCP连接,所以需要先建⽴TCP连接,建⽴完TCP连接后,服务端会先给客户端发送公钥,客户端拿到公钥后就可以⽤来加密数据了,服务端到时候接收到数据就可以⽤私钥解密数据,这种就是通过⾮对称加密来传输数据
- 不过⾮对称加密⽐对称加密要慢,所以不能直接使⽤⾮对称加密来传输请求数据,所以可以通过⾮对称加密的⽅式来传输对称加密的秘钥,之后就可以使⽤对称加密来传输请求数据了
- 但是仅仅通过⾮对称加密+对称加密还不⾜以能保证数据传输的绝对安全,因为服务端向客户端发送公钥时,可能会被截取
- 所以为了安全的传输公钥,需要⽤到数字证书,数字证书是具有公信⼒、⼤家都认可的,服务端向客户端发送公钥时,可以把公钥和服务端相关信息通过Hash算法⽣成消息摘要,再通过数字证书提供的私钥对消息摘要进⾏加密⽣成数字签名,在把没进⾏Hash算法之前的信息和数字签名⼀起形成数字证书,最后把数字证书发送给客户端,客户端收到数字证书后,就会通过数字证书提供的公钥来解密数字证书,从⽽得到⾮对称加密要⽤到的公钥
- 在这个过程中,就算有中间⼈拦截到服务端发出来的数字证书,虽然它可以解密得到⾮对称加密要使⽤的公钥,但是中间⼈是办法伪造数字证书发给客户端的,因为客户端上内嵌的数字证书是全球具有公信⼒的,某个⽹站如果要⽀持https,都是需要申请数字证书的私钥的,中间⼈如果要⽣成能被客户端解析的数字证书,也是要申请私钥的,所以是⽐较安全了。
客户但与服务端建立https连接的具体过程如下图所示:
需要注意的是服务端发送给客户端服务器证书,就相当于发送给客户端服务器的公钥,客户端可以用公钥再加密自己生成的会话密钥和非对称公钥发送给服务端。
二、HTTP与HTTP的区别
HTTP代表"超文本传输"协议,它是一种用于在网络上传输网页、图片和其他资源的协议。当你在浏览器中输入一个网址或者点击一个链接时,你的计算机会向服务器发送一个HTTP请求,然后服务器会回复一个HTTP响应,将网页内容发送给你的浏览器,然后浏览器会把这些内容呈现出来。
然而虽然HTTP在传输数据时非常快捷,但它的安全性相对较低。这就是为什么有了HTTPS协议,它代表"超文本安全传输协议"。它是通过使⽤对称加密、⾮对称加密、数字证书等⽅式来保证数据的安全传输。
因此,总结一下:
● HTTP是一种用于在网络上传输数据的协议,但不够安全。
● HTTPS在HTTP的基础上加入了安全性,通过加密数据来保护你的隐私和安全。
● HTTPS需要SSL证书来验证网站身份,确保你正在与正确的网站通信。
综上所述,HTTPS是一种更加安全的协议,适用于涉及敏感信息和隐私保护的网站和在线交流。
三、当你在浏览器输入网址并点击,之后会使用到哪些网络协议
在浏览器中输入网址并点击后,涉及到的计算机网络协议主要包括以下几个:
DNS(Domain Name System):您输入的网址首先会被解析成相应的IP地址。DNS协议负责将域名解析为IP地址,使您的计算机能够找到正确的服务器。
HTTP(Hypertext Transfer Protocol)/HTTPS(HTTP Secure):一旦浏览器获得了服务器的IP地址,它会向该IP地址发送HTTP或HTTPS请求。HTTP是一种用于在网络上传输超文本数据的应用层协议,而HTTPS是HTTP的安全版本,通过加密通信内容来确保安全传输。
TCP(Transmission Control Protocol):HTTP/HTTPS协议是建立在TCP之上的。TCP协议负责在客户端和服务器之间建立可靠的连接,并确保数据的可靠传输。它提供了流量控制、拥塞控制等功能。
IP(Internet Protocol):IP协议负责在网络上寻址和路由,将数据包从源主机传输到目标主机。它定义了数据包的格式和传输规则。
TLS/SSL(Transport Layer Security/Secure Sockets Layer):如果您访问的是HTTPS网站,那么在HTTP之上会使用TLS/SSL协议进行加密通信,确保数据的机密性和完整性。
这些协议共同组成了互联网通信的基础,使您能够通过浏览器访问网站并获取所需的信息。在请求和响应过程中,还会涉及到其他一些协议和技术,如ARP(Address Resolution Protocol)用于解析IP地址到MAC地址、HTTP/2、WebSocket等。
思考:有了ip地址为什么还需要MAC地址?
这是因为ip地址是在网络层使用的,用于实现网络间的通信和路由,而MAC地址是在数据链路层使用的,用于实现局域网内部的寻址和数据传输。