【笔记】关于 HTTPS 的学习心得
来源:互联网 发布:小幸运网络连接 编辑:程序博客网 时间:2024/05/17 00:04
回顾一下 HTTP 协议,HTTP 协议基于 TCP/IP 进行通讯,明文传输,安全性方面没有那么高。
我们一般看到银行级的 Web 站点全是使用采用 HTTPS 方式,目的很简单就是为了确保安全,下面来总结一下自己对 HTTPS 的理解。
HTTPS 的诞生最大化的完善了 HTTP 协议传输的安全性问题,我们知道浏览器最初由网景(NetSpcape)公司研发推出的,
推出后各种 Web 开发的安全性问题不断爆发,紧接着网景公司推出了采用 SSL/TLS 层对 HTTP 明文传输的内容进行加密。
那么如何加密?
首先任何一台基于 HTTPS 的 Web 服务器,都需要一个 W3C 认证的数字证书CA(互联网证书颁发机构购买而来)
证书服务器版包含了两个密钥(公钥、私钥)
公钥:Web 浏览器首次请求时,给到浏览器,后面的请求全部采用公钥进行加密;
私钥:在 Web 服务器上对浏览器请求的密文,进行私钥解密(解析)
加密方式:对称加密(可以看看这篇文章,写不真不错 http://blog.csdn.net/clh604/article/details/22179907)
/*如果对公钥和私钥不太理解,可以想象成一把钥匙和一个锁头,只是全世界只有你一个人有这把钥匙,你可以把锁头给别人,
别人可以用这个锁把重要的东西锁起来,然后发给你,因为只有你一个人有这把钥匙,所以只有你才能看到被这把锁锁起来的东西。*/
学习 HTTPS 的通讯原理机制,先必须了解 HTTP 的通讯机制
{ @浏览器 } ---->{ @Web 服务器 }
#输入地址:www.abc.com
#本机获得 IP 地址:80 端口
#与 IP 目标服务器建立连接
TCP/IP(三次握手)响应我收到了信息
#连接成功,组合 HTTP 请求包
请求头:... W3C 标准请求内容
#请求浏览器 收到请求解析标准请求包,处理数据响应
#获取 Web 服务器响应的数据,开始渲染浏览器 GUI 信息
HTTPS,则是
#regionSSL协议通信过程(1) 浏览器发送一个连接请求给服务器;服务器将自己的证书(包含服务器公钥S_PuKey)、对称加密算法种类及其他相关信息返回客户端;(2) 客户端浏览器检查服务器传送到CA证书是否由自己信赖的CA中心签发。若是,执行4步;否则,给客户一个警告信息:询问是否继续访问。(3) 客户端浏览器比较证书里的信息,如证书有效期、服务器域名和公钥S_PK,与服务器传回的信息是否一致,如果一致,则浏览器完成对服务器的身份认证。(4) 服务器要求客户端发送客户端证书(包含客户端公钥C_PuKey)、支持的对称加密方案及其他相关信息。收到后,服务器进行相同的身份认证,若没有通过验证,则拒绝连接;(5) 服务器根据客户端浏览器发送到密码种类,选择一种加密程度最高的方案,用客户端公钥C_PuKey加密后通知到浏览器;(6) 客户端通过私钥C_PrKey解密后,得知服务器选择的加密方案,并选择一个通话密钥key,接着用服务器公钥S_PuKey加密后发送给服务器;(7) 服务器接收到的浏览器传送到消息,用私钥S_PrKey解密,获得通话密钥key。(8) 接下来的数据传输都使用该对称密钥key进行加密。上面所述的是双向认证 SSL 协议的具体通讯过程,服务器和用户双方必须都有证书。由此可见,SSL协议是通过非对称密钥机制保证双方身份认证,并完成建立连接,在实际数据通信时通过对称密钥机制保障数据安全性#endregion
- 【笔记】关于 HTTPS 的学习心得
- 关于InvocationHandler的学习心得
- 关于java的学习心得
- 关于InvocationHandler的学习心得
- 关于IOS的学习心得
- 关于多线程的学习心得
- 关于omapl138的学习心得
- 关于做软件的学习心得
- 关于多线程技术的学习心得
- Boost 关于 shared_ptr 的学习心得
- 关于缓冲区,我的学习心得
- 关于控件ID的学习心得
- 关于VC++_MFC的学习心得
- 关于文件上传的学习心得
- 关于HandlerThread类的学习心得
- 关于malloc/free的学习心得
- 关于链表的学习心得
- 关于https的配置
- SVN-分支与合并
- 【菜鸟进阶之路】20160730 遇到的一些问题?
- 树——在二叉树中找到两个节点的最低公共祖先LCA
- 指定图片某块区域加超链接
- HDU-1201-18岁生日
- 【笔记】关于 HTTPS 的学习心得
- MAC 下-- AndroidStudio SVN版本替换成1.8
- android 安装apk错误
- 列表展开
- web四种布局方式
- eclipse 安装 aptana 插件 很愚蠢的问题
- Myeclipce 配置Tomcat
- IOS Dev Intro - UIView and CALayer
- Lucene学习笔记之(三)文档加权