发表于: 2017-06-25 23:06:25
1 1143
一、今天完成的事情:
学习了https运作原理
我们知道HTTP属于应用层协议,HTTP将要传输的信息传送给传输层的TCP,依次往下。
而HTTPS则是安全传输的HTTP,其原理就是在信息传送给TCP之前,先将信息传送给一个安全层,经安全层加密处理之后才传送给TCP.上我的神笔马良图!
其中安全层就是由SSL或者TLS组层的。至于什么是SSL?什么是TLS。我们这篇文章不做过多的阐述,大家可以理解SSL为一种安全的协议,它能通过数字认证、使用数字签名确保完整性以及加密保证私密性,来保证客户端和服务器之前可以安全的进行通讯。
而TLS则是SSL的一种升级版。
在这里发送加密的HTTP报文之前,客户端和服务器要进行一次握手,握手的主要目的是:
1、对两端的身份进行身份认证 2、协商加密过程中使用的密钥
SSL的握手过程:
上图就是SSL握手的一个基本流程,至于具体的握手细节,传输什么样的信息,有兴趣的话可以去了解一下,还是比较复杂的!
所以说,HTTPS是在HTTP的基础上,在HTTP与TCP之间添加了一层安全层,这个安全层主要是是有SSL或者TLS协议构建的,用来将信息进行一些列的加密处理之后,再传送给TCP的!
单向认证,双向认证:
我们知道在客户端和服务器协商使用什么加密算法的这个过程中,需要首先验证对方的真实性。而这个身份认证主要分为单向认证和双向认证。其实,认证就是上面说的握手过程。
单向认证:就是客户端需要认证一下服务器发来的数字证书的合规性! 双向认证:那就简单了,客户端和服务器互相认证。
那么具体是怎么个认证过程?我从网上找了一张图片来说明,花一张神笔马良图实在是太累了。
单向认证的过程:
1、首先客户端会发送一个“hello”给服务器 2、服务器将自己的数字证书(内含非对称加密的公钥)发送给客户端 3、客户端验证服务器的数字证书(验证一下证书是否过期,CA是否合法、证书上的域名和服务器域名是否相同、数字签名是否正确),并解密出非对称加密的公钥 4、身份验证通过之后,客户端告诉服务器自己支持的对称加密的算法 5、服务器根据需要选择对称加密算法,通过明文告诉客户端自己的选择结果 6、客户端生成随机对称密钥对Key,将key通过非对称加密算法的公钥加密之后,发送给服务器 7、服务器用自己的非对称加密的私钥去解密,获得对称加密的密钥。 8、客户端和服务器就通过对称加密的密钥进行加密通信!
双向认证的过程:
1、客户端发送hello给服务器 2、服务器将自己的数字证书(内含非对称加密的公钥)发送给客户端。 3、客户端验证服务器的数字证书(验证一下证书是否过期,CA是否合法、证书上的域名和服务器域名是否相同、数字签名是否正确),并解密出非对称加密的公钥 4、验证通过之后,客户端将自己的证书发送给服务器,供父服务器进行验证。 5、服务器对客户端的证书进行验证。 6、服务器验证通过之后,客户端将自己支持的对称加密算法告诉服务器,供服务器选择。 7、服务器根据需要选择对称加密算法,通过明文告诉客户端自己的选择结果 8、客户端生成随机对称密钥对Key,将key通过非对称加密算法的公钥加密之后,发送给服务器 9、服务器用自己的非对称加密的私钥去解密,获得对称加密的密钥。 10、客户端和服务器就通过对称加密的密钥进行加密通信!
看了付老师数据结构ppt,
写方案设计,在rolemodel模块管理上没想好权限设置的问题、该怎么做怎么处理.
二、遇到的问题
三、明天计划
四、收获:没有带电脑线回家真的痛苦…………
评论