深圳趣网站建设,wordpress 显示页面标题,个人做搜索引擎网站违法吗,qq业务代理网站建设0. 简单回顾
在前面两篇博客中介绍了密码相关的一些基本工具#xff0c;包括#xff08;对称密码#xff0c;公钥密码#xff0c;密码散列函数#xff0c;混合密码系统#xff0c;消息认证码码#xff0c;数字签名#xff0c;伪随机数#xff0c;数字证书#xff09…0. 简单回顾
在前面两篇博客中介绍了密码相关的一些基本工具包括对称密码公钥密码密码散列函数混合密码系统消息认证码码数字签名伪随机数数字证书这几个。其中它们之间也是互相依赖的我们来简单的梳理一下它们的依赖关系。
对称密码无。公钥密码无。密码散列函数无。伪随机数可以利用密码散列函数来实现也可以不使用。混合密码系统对称密码 公钥密码 密码散列函数。消息认证码密码散列函数 对称密码。数字签名密码散列函数 公钥密码。数字证书公钥密码 数字签名。
这篇要介绍的HTTPS则把以上这些全都派上场了。
1. HTTPS 简史
在早期HTTP诞生的这几年间1990年~·1994年HTTP作为一个应用层协议它是这样工作的 后来网景公司开发了SSLSecure Sockets Layer技术然后它就变成了这样的HTTP也就是HTTPS了 后来爆发了与IE的世纪大战网景败北SSL移交给了IETFInternat Engineering Task Force互联网工程任务组标准化之后变成了现在的TLS现在一般会把它们两个放在一起称为SSL/TLS。本篇并不关注SSL/TLS具体是如何工作的只是抽象的解释下HTTPS的一个工作流程。
2. HTTPS 工作流程 Client发起一个HTTPShttps:/demo.linianhui.dev的请求根据RFC2818的规定Client知道需要连接Server的443默认端口。Server把事先配置好的公钥证书public key certificate返回给客户端。Client验证公钥证书比如是否在有效期内证书的用途是不是匹配Client请求的站点是不是在CRL吊销列表里面它的上一级证书是否有效这是一个递归的过程直到验证到根证书操作系统内置的Root证书或者Client内置的Root证书。如果验证通过则继续不通过则显示警告信息。Client使用伪随机数生成器生成加密所使用的会话密钥然后用证书的公钥加密这个会话密钥发给Server。Server使用自己的私钥private key解密这个消息得到会话密钥。至此Client和Server双方都持有了相同的会话密钥。Server使用会话密钥加密“明文内容A”发送给Client。Client使用会话密钥解密响应的密文得到“明文内容A”。Client再次发起HTTPS的请求使用会话密钥加密请求的“明文内容B”然后Server使用会话密钥解密密文得到“明文内容B”。
简单总结下HTTPS是使用了证书的一个混合密码系统其中证书的作用在于传递会话密钥以及验证网站的真实性而HTTPS真正的加密操作是由对称密码这个工具负责的有兴趣的可以找找每个步骤中都用到了密码工具箱中的那些工具。在windows系统中可以配置一个名为 SSLKEYLOGFILE 的环境变量Chrome和Firefox在访问HTTPS站点的时候会把第4步生成的会话密钥以及其他附属信息写入到这个文件中 比如下图 具体的格式可以参考MDN的一个说明https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS/Key_Log_Format。
以上只是一个抽象的HTTPS的一个工作流程实际上SSL/TLS所做的工作远不止这这些更详细的解释请参考这篇文章http://www.infoq.com/cn/articles/HTTPS-Connection-Jeff-Moser。
如有错误之处欢迎指正
3. 参考
SSL/TLShttps://en.wikipedia.org/wiki/Transport_Layer_Security
IETFhttps://en.wikipedia.org/wiki/Internet_Engineering_Task_Force
HTTPShttps://en.wikipedia.org/wiki/HTTPS
HTTPS 连接最初的若干毫秒http://www.infoq.com/cn/articles/HTTPS-Connection-Jeff-Moser
HTTPS on Stack Overflow: The End of a Long Roadhttps://nickcraver.com/blog/2017/05/22/https-on-stack-overflow/
SSL/TLS部署最佳实践https://github.com/ssllabs/research/wiki/SSL-and-TLS-Deployment-Best-Practices
HTTP Over TLShttps://tools.ietf.org/html/rfc2818
SSLKEYLOGFILEhttps://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS/Key_Log_Format
原文地址http://www.cnblogs.com/linianhui/p/security-https-workflow.html .NET社区新闻深度好文微信中搜索dotNET跨平台或扫描二维码关注