德州做网站建设的公司,黄金app软件下载大全免费,河南智能网站建设平台,在线域名注册网络协议系列文章
网络协议(一)#xff1a;基本概念、计算机之间的连接方式
网络协议(二)#xff1a;MAC地址、IP地址、子网掩码、子网和超网
网络协议(三)#xff1a;路由器原理及数据包传输过程
网络协议(四)#xff1a;网络分类、ISP、上网方式、公网私网、NAT
网络…网络协议系列文章
网络协议(一)基本概念、计算机之间的连接方式
网络协议(二)MAC地址、IP地址、子网掩码、子网和超网
网络协议(三)路由器原理及数据包传输过程
网络协议(四)网络分类、ISP、上网方式、公网私网、NAT
网络协议(五)网络互联模型、物理层、数据链路层
网络协议(六)网络层版本、首部长度、区分服务、总长度、 标识、标志、片偏移生存时间、协议、首部校验和
网络协议(七)传输层-UDP
网络协议(八)传输层-TCP可靠性传输、拥塞控制、建立连接-三次握手、释放连接-四次挥手
网络协议(九)应用层域名、DNS、DHCP
网络协议(十)HTTP报文格式、请求方法、头部字段、状态码、跨域
网络协议(十一)单向散列函数、对称加密、非对称加密、混合密码系统、数字签名、证书
网络协议(十二)HTTPSSSL/TLS、TLS1.2的连接 目录一、HTTPS二、SSL / TLS三、OpenSSL四、HTTPS的成本五、HTTPS的通信过程六、TLS 1.2 的连接ECDHE密钥交换算法一、HTTPS
HTTPS (HyperText Transfer Protocol Secure)译为超文本传输安全协议 常称为 HTTP over TLS、HTTP over SSL、HTTP Secure由网景公司于1994年首次提出 HTTPS的默认端口号是 443 (HTTP是80)现在在浏览器上输入 http://www.baidu.com会自动重定向到 https://www.baidu.com
二、SSL / TLS
HTTPS 是在 HTTP 的基础上使用 SSL/TLS来 加密报文对窃听和中间人攻击提供合理的防护 SSL/TLS 也可以用在其他协议上比如 FTP → FTPSSMTP → SMTPS TLS (Transport Layer Security)译为传输层安全性协议 前身是 SSL (Secure Sockets Layer)译为安全套接层 历史版本信息 SSL 1.0因存在严重的安全漏洞从未公开过SSL 2.01995年已于2011年弃用 (RFC 6176)SSL 3.01996年已于2015年弃用 (RFC 7568)TLS 1.01999年 (RFC 2246)TLS 1.12006年 (RFC 4346)TLS 1.22008年 (RFC 5246)TLS 1.32018年 (RFC 8446) SSL/TLS 工作在哪一层 TCP/IP协议与各种应用层协议之间 三、OpenSSL
OpenSSL 是SSL/TLS协议的开源实现始于1998年支持Windows、Mac、Linux等平台 Linux、Mac 一般自带 OpenSSLWindows下载安装OpenSSLhttps://slproweb.com/products/Win32OpenSSL.html 常用命令 生成私钥openssl genrsa -out xx.key生成公钥openssl rsa -in xx.key -pubout -out xx.pem
四、HTTPS的成本
证书的费用加解密计算降低了访问速度有些企业的做法是包含敏感数据的请求才使用HTTPS其他保持使用HTTP例如工商银行客户端首页是http登录页则是https 首页http://www.icbc.com.cn/登录页https://mybank.icbc.com.cn/
五、HTTPS的通信过程
总的可以分为3大阶段 TCP的3次握手TLS的连接HTTP请求和响应 六、TLS 1.2 的连接ECDHE密钥交换算法
TLS1.2 的连接大概有10大步骤:图中省略了中间产生的一些ACK确认 ① Client Hello TLS的版本号支持的加密组件 (Cipher Suite) 列表加密算法及密钥长度等一个随机数 (Client Random) ② Server Hello TLS的版本号选择的加密组件是从接收到的客户端加密组件列表中挑选出来的一个随机数 (Server Random) ③ Certificate 服务器的公钥证书被CA签名过的 ④ Server Key Exchange 用以实现ECDHE算法的其中一个参数 (Server Params)ECDHE是一种密钥交换算法为了防止伪造Server Params 经过了服务器私钥签名 ⑤ Server Hello Done 告知客户端协商部分结束 目前为止客户端和服务器之间通过明文共享了而且客户端也已经拿到了服务器的公钥证书接下来客户端会验证证书的真实有效性 ⑥ Client Key Exchange 用以实现ECDHE算法的另一个参数 (Client Params) 目前为止客户端和服务器都拥有了ECDHE算法需要的2个参数Server Params、Client Params客户端、服务器都可以 使用ECDHE算法根据Server Params、Client Params计算出一个新的随机密钥串Pre-master secret然后结合 Client Random、Server Random、Pre-master secret 生成一个主密钥最后利用主密钥衍生出其他密钥客户端发送用的会话密钥、服务器发送用的会话密钥等 ⑦ Change Cipher Spec 告知服务器之后的通信会采用计算出来的会话密钥进行加密 ⑧ Finished 包含连接至今全部报文的整体校验值摘要加密之后发送给服务器这次握手协商是否成功要以服务器是否能够正确解密该报文作为判定标准 ⑨ Change Cipher Spec 告知客户端之后的通信会采用计算出来的会话密钥进行加密 ⑩ Finished 给客户端发加密的报文能正常返回到此为止客户端服务器都验证加密解密没问题握手正式结束后面开始传输加密的HTTP请求和响应