HTTPS协议学习总结

时间:2023-03-08 17:56:53
HTTPS协议学习总结
目录
一:什么是HTTPS协议?
二:客户端与服务端如何建立HTTPS协议连接?
三:证书、加密协议、信息摘要、签名算法概念解释与关系梳理
四:低版本操作系统作为客户端发送HTTPS失败分析
五:参考资料
一:什么是HTTPS协议?
HTTPS协议有两部分组成:HTTP + SSL / TLS,一般来说,SSL主要完成两件事:身份认证和数据加密 ,身份认证保证客户端请求服务端是真实可信的,数据加密保证数据传递的安全性,SSL协议在TCP协议和HTTP协议之间(HTTP->SSL->TCP->IP),第一次身份认证采用非对称加密,后续握手环节采用对称加密机制(节省性能开支)。
二:客户端与服务端如何建立HTTPS协议连接?
1:Server部署HTTPS(通过WEB服务器导入证书),这份证书包含了一对公钥和私钥,Client请求 Server,Server响应给Client证书信息;
2:Client的TLS验证证书信息(颁发机构、有效期、公钥有效性),验证失败做安全提示,验证成功 则生成一个随机值,然后用证书对随机值加密,传给Server(随机值用于后续连接的加解密凭证);
3:Server用私钥解密得到随机值,然后把需要传递的数据通过该值做对称加密,后续的数据交换采 用同样方式处理;
三次握手相当于混合试用了非对称加密(生成签名密钥)和对称加密,再保证数据一致性和安全性的前提下减少性能开支。
三:证书、加密协议、信息摘要、签名算法概念解释与关系梳理
1:数字证书
CA证书颁发机构颁发的用于签名验证的文件,主要用于客户端和服务端建立HTTPS连接的身 份认证过程,证书中包含了颁发机构、合法域名来源、有效期,如果该证书不是CA授信机构颁发的,客户端会有安全提醒弹窗,证书本质上是服务端给客户端提供了公钥,客户端用来生成随机串传给服务端 ;
2:SSL/TSL协议
Netscape公司设计的主要用于WEB安全传输协议,提供身份认证和数据加密的规则,TSL1.0是建立在SSLV3版本的新协议,;

3:SHA/SHA2

信息摘要算法,用于签名验证(对称加密)保证数据一致性;
RSA256:
数据加密算法(非对称加密),用于保护数据安全;
4:关系梳理
客户端证书和TLS协议在WEB服务器配置,客户端证书也可以用程序自定义生成和使用,信息摘算法在操作系统的组件中(WIN系统:Win32 crypto service CryptSignHash 函数)。
四:低版本操作系统作为客户端发送HTTPS失败分析:
国际惯例是2016年1月1日起停止签发SHA1签名算法的各种证书,低版本操作系统(XP2003 SP2内、 Server2003 SP2内)不支持SHA256信息摘要算法,客户端请求服务端(使用SHA2)就会超时错误,解决方案是给客户端系统打补丁(KB968730或KB938397或SP3补丁);
五:参考资料
 HTTPS连接的前几毫秒发生了什么(http://blog.jobbole.com/48369