课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
随着互联网的不断发展,企业在使用https协议来开发网站的成本也大幅度下降了,今天我们就通过案例分析来简单了解一下,https实现原理与问题分析。
一、HTTPS的实现原理
大家可能都听说过HTTPS协议之所以是安全的是因为HTTPS协议会对传输的数据进行加密,而加密过程是使用了非对称加密实现。但其实,HTTPS在内容传输的加密上使用的是对称加密,非对称加密只作用在证书验证阶段。
HTTPS的整体过程分为证书验证和数据传输阶段,具体的交互过程如下:
①证书验证阶段
浏览器发起HTTPS请求
服务端返回HTTPS证书
客户端验证证书是否合法,如果不合法则提示告警
②数据传输阶段
1.当证书验证合法后,在本地生成随机数
2.通过公钥加密随机数,并把加密后的随机数传输到服务端
3.服务端通过私钥对随机数进行解密
4.服务端通过客户端传入的随机数构造对称加密算法,对返回结果内容进行加密后传输
二、为什么数据传输是用对称加密?
非对称加密的加解密效率是非常低的,而http的应用场景中通常端与端之间存在大量的交互,非对称加密的效率是无法接受的;
在HTTPS的场景中只有服务端保存了私钥,一对公私钥只能实现单向的加解密,所以HTTPS中内容传输加密采取的是对称加密,而不是非对称加密。
三、本地随机数被窃取怎么办?
证书验证是采用非对称加密实现,但是传输过程是采用对称加密,而其中对称加密算法中重要的随机数是由本地生成并且存储于本地的,HTTPS如何保证随机数不会被窃取?
其实HTTPS并不包含对随机数的安全保证,HTTPS保证的只是传输过程安全,而随机数存储于本地,本地的安全属于另一安全范畴,应对的措施有安装杀毒软件、反木马、浏览器升级修复漏洞等。
四、用了HTTPS会被抓包吗?
HTTPS的数据是加密的,常规下抓包工具代理请求后抓到的包内容是加密状态,无法直接查看。关注微信公众号:Java技术栈,在后台回复:工具,可以获取我整理的N篇新开发工具教程,都是干货。
但是,正如前文所说,浏览器只会提示安全风险,如果用户授权仍然可以继续访问网站,完成请求。因此,只要客户端是我们自己的终端,我们授权的情况下,便可以组建中间人网络,而抓包工具便是作为中间人的代理。
通常HTTPS抓包工具的使用方法是会生成一个证书,用户需要手动把证书安装到客户端中,然后终端发起的所有请求通过该证书完成与抓包工具的交互,然后抓包工具再转发请求到服务器,后把服务器返回的结果在控制台输出后再返回给终端,从而完成整个请求的闭环。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。