Https建立连接

链接:https://www.jianshu.com/p/f6aaa42e09d4

https是什么?

https, 全称Hyper Text Transfer Protocol Secure,相比http,多了一个secure,这一个secure是怎么来的呢?这是由TLS(SSL)提供的,这个又是什么呢?估计你也不想知道。大概就是一个叫openSSL的library提供的。https和http都属于application layer,基于TCP(以及UDP)协议,但是又完全不一样。TCP用的port是80, https用的是443(值得一提的是,google发明了一个新的协议,叫QUIC,并不基于TCP,用的port也是443, 同样是用来给https的。谷歌好牛逼啊。)总体来说,https和http类似,但是比http安全。

在http(应用层) 和TCP(传输层)之间插入一个SSL协议, 就是https。一句话:http+加密+认证+完整性保护=https

http缺省工作在TCP协议80端口(需要国内备案),用户访问网站http://打头的都是标准http服务,http所封装的信息都是明文的,通过抓包工具可以分析其信息内容,如果这些信息内容包含你的银行卡账号、密码,你肯定无法接受这种服务,那有没有可以加密这些敏感信息的服务呢?那就是https!

https是http运行在SSL/TLS之上,SSL/TLS运行在TCP之上。所有传输的内容都经过加密,加密采用对称加密,但对称加密的密钥用服务器方的证书进行了非对称加密。此外客户端可以验证服务器端的身份,如果配置了客户端验证,服务器方也可以验证客户端的身份。

https缺省工作在tcp协议443端口,它的工作流程一般如以下方式:

1、完成tcp三次同步握手;

2、客户端验证服务器数字证书,通过,进入步骤3;

3、DH算法协商对称加密算法的密钥、hash算法的密钥;

4、SSL安全加密隧道协商完成;

5、网页以加密的方式传输,用协商的对称加密算法和密钥加密,保证数据机密性;用协商的hash算法进行数据完整性保护,保证数据不被篡改。

附:https一般使用的加密与hash算法如下:

非对称加密算法:RSA,DSA/DSS

对称加密算法:AES,RC4,3DES

hash算法:MD5,SHA1,SHA256

如果https是网银服务,以上SSL安全隧道成功建立才会要求用户输入账户信息,账户信息是在安全隧道里传输,所以不会泄密!


HTTP与TCP/IP区别?

TPC/IP协议是传输层协议,主要解决数据如何在网络中传输,而HTTP是应用层协议,主要解决如何包装数据。Web使用HTTP协议作应用层协议,以封装HTTP 文本信息,然后使用TCP/IP做传输层协议将它发到网络上。

下面的图表试图显示不同的TCP/IP和其他的协议在最初OSI(Open System Interconnect)模型中的位置:

(图片来源网络)

CA证书是什么?

CA(Certificate Authority)是负责管理和签发证书的第三方权威机构,是所有行业和公众都信任的、认可的。

CA证书,就是CA颁发的证书,可用于验证网站是否可信(针对HTTPS)、验证某文件是否可信(是否被篡改)等,也可以用一个证书来证明另一个证书是真实可信,最顶级的证书称为根证书。除了根证书(自己证明自己是可靠),其它证书都要依靠上一级的证书,来证明自己。


https和ssl在握手方向有什么区别:

https大致过程:

1、建立服务器443端口连接 ;

2、SSL握手:随机数,证书,密钥,加密算法;

3、发送加密请求 ;

4、发送加密响应;

5、关闭SSL;

6、关闭TCP.

SSL握手大致过程:

1、客户端发送随机数1,支持的加密方法(如RSA公钥加密);

2、服务端发送随机数2,和服务器公钥,并确认加密方法;

3、客户端发送用服务器公钥加密的随机数3;

4、服务器用私钥解密这个随机数3,用加密方法计算生成对称加密的密钥给客户端;

5、接下来的报文都用双方协定好的加密方法和密钥,进行加密.
 

猜你喜欢

转载自blog.csdn.net/w450093854/article/details/84978711
今日推荐