Https的含义
- Https属于Http加上TLS/SSL协议构建的可进行加密传输、身份认证的网络协议,主要通过数字证书、加密算法、非对称密钥等技术完成互联网数据加密传输,实现互联网传输安全保护。
- SSL证书是数字证书的一种,因为配置在服务器上也称为服务器SSL证书,由受信任的数字证书颁发机构CA在验证服务器身份后颁发的数字证书。
通过http协议访问网站时,浏览器和服务器之间是明文传输。服务器安装SSL证书后,使用https加密协议访问网站,可激活客户端浏览器到网站服务器之间的“SSL加密通道”
HTTPS的优点
尽管HTTPS并非绝对安全,掌握根证书的机构、掌握加密算法的组织同样可以进行中间人形式的攻击,但HTTPS仍是现行架构下最安全的解决方案,主要有以下几个好处:
HTTPS的优点
(1)使用HTTPS协议可认证用户和服务器,确保数据发送到正确的客户机和服务器;
(2)HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全,可防止数据在传输过程中不被窃取、改变,确保数据的完整性。
(3)HTTPS是现行架构下最安全的解决方案,虽然不是绝对安全,但它大幅增加了中间人攻击的成本。
(4)谷歌曾在2014年8月份调整搜索引擎算法,并称“比起同等HTTP网站,采用HTTPS加密的网站在搜索结果中的排名将会更高”。
HTTPS的缺点
虽然说HTTPS有很大的优势,但其相对来说,还是存在不足之处的:
(1)HTTPS协议握手阶段比较费时,会使页面的加载时间延长近50%,增加10%到20%的耗电;
(2)HTTPS连接缓存不如HTTP高效,会增加数据开销和功耗,甚至已有的安全措施也会因此而受到影响;
(3)SSL证书需要钱,功能越强大的证书费用越高,个人网站、小网站没有必要一般不会用。
(4)SSL证书通常需要绑定IP,不能在同一IP上绑定多个域名,IPv4资源不可能支撑这个消耗。
(5)HTTPS协议的加密范围也比较有限,在黑客攻击、拒绝服务攻击、服务器劫持等方面几乎起不到什么作用。最关键的,SSL证书的信用链体系并不安全,特别是在某些国家可以控制CA根证书的情况下,中间人攻击一样可行。
TCP协议
- 它的可靠就是数据包不丢失、不错误、不乱序。
TCP协议结构
它是由两个部分组成的:一部分是TCP首部(头部)+TCP数据部分(我们需要传输的东西)
TCP首部也是有两个部分组成:一个部分是20个字节的固定首部,一个是选项部分
-
端口号分为:熟知端口(公认端口)、注册端口、动态端口(临时端口或者短暂端口,范围:49152-65535)
两个端口的作用:用于区别应用程序的。 -
序号:在TCP协议当中,它传送的数据流中,每一个字节都会遍上一个序号。
URG:紧急比特(紧急数据),它可以是0也可以是1.表示紧急指针字段有效。
ACK:确认。当这个字段值是1时,回复才算有效,如果为0时,确认号就是无效的。
RST:复位比特,拒绝连接请求时会出现(对应不上端口或对端没有这个端口) RST=1.
异常终止的情况或者终止空闲的情况。
SYN:初始或者同步。第一访问远端设备的时候,经过三次握手,第一次请求就是SYN=1;
FIN:结束(终止比特) FIN=1。
表示的是标志位
- 窗口:用来控制对方发送数据的量(大小)
- 检验和:主要是保障数据从源端到目的端 发送数据的过程中,不要出现 差错、不要被修改、不要被丢弃。
三次握手(建立联系)
- 客户端发报文:SYN=1,seq=x;
- 服务器回应报文:SYN=1,ACK=1,seq=y,ack=x+1;
- 客户端回应报文:ACK=1,,seq=x+1,ack=y+1;
易受攻击点
SYN:泛洪,或拒绝式服务攻击。(用错误的ip进行去占用端口号)客户端和服务器都是要有 IP 端口号
- RWND:是服务器告诉客户端,我现在可以接收多少个字节。窗口–提高数据传输的效率设置。反之客户端也可以给服务器发送
四次挥手(关闭链接)
- 客户端发送报文:FIN=1,seq=a;
- 服务器响应报文:ACK=1,seq=b,ack=a+1;
- 服务器发送报文:FIN=1,ACK=1,seq=c,ack=a+1;
- 客户端响应报文:ACK=1,seq=a+1,ack=c+1