https协议分析

一:什么是HTTPS

https全称是超文本传输安全协议,https利用SSL/TLS加密数据包来进行http通信。https开发的主要目的,是提供对网站服务器的身份认证,保护交换数据的隐私与完整性。

通常,HTTP直接和TCP通信,当使用SSL时,则变成了HTTP先和SSL通信,再由SSL和TCP通信 ,如下图所示。

一个安全的网络环境包含以下3个方面:

  • 通信内容的保密
  • 通信双方身份的真实
  • 通信内容的完整

而https的诞生就是为了解决这3个问题。所以可以理解为:HTTP + 加密 + 认证 + 完整性保护 = HTTPS

 

二:密码学基本概念

https中就是应用了各种密码学技术,保证

1、数字证书 

一种文件的名称,好比一个人或者机构的名称,能够证明这个人或者机构的真实性。其中包含的信息,用于实现上述功能。其作用类似于生活中的身份证。最简单的证书包含一个公开秘钥、公钥的数字签名,公钥拥有者的信息。

2、数字签名

对文件加密只是确保了文件的完整性,通过数字签名的技术可以确定发件人的身份。而如何实现发件人的身份不是伪造的呢,简单来说,数字签名(digital signature)是公钥密码的逆应用:用私钥加密消息,用公钥解密消息。

生成签名过程:

一般来说,不直接对消息进行签名,而是对消息的哈希值进行签名,步骤如下。

  1. 对消息进行哈希计算,得到哈希值
  2. 利用私钥对哈希值进行加密,生成签名
  3. 将签名附加在消息后面,一起发送过去

验证签名过程:

  1. 收到消息后,提取消息中的签名
  2. 用公钥对签名进行解密,得到哈希值1。
  3. 对消息中的正文进行哈希计算,得到哈希值2。
  4. 比较哈希值1和哈希值2,如果相同,则验证成功。

3、对称加密

对称加密又叫做共享秘钥加密,加密和解密使用的是同一秘钥。当传输时也必须把密钥传给对方,这就造成密钥传输的安全问题,如果密钥被窃取,那么加密就变得毫无意义。常见的对称加密算法有DES,AES等。

4、非对称加密

非对称加密又叫做公开秘钥加密,顾名思义,加密的秘钥是公开的。之所以叫非对称加密,是因为秘钥是一对的,分为公钥和私钥。公钥公开给大家,私钥自己保存,任何人都可以通过公钥加密明文,但只有私钥拥有者才可以通过私钥解读公钥加密后的密文。常见的非对称加密又RSA,DH等

 

安全算法

不使用自己开发的加密算法,而使用没有专利的、安全的、公开的标准加密算法。

说明:

  1. 当前的专利算法包括但不限于:IDEA。已过专利保护期的加密算法已不再受专利保护;
  2. 不推荐的加密算法包括:DES、MD5、SHA1、HMAC-MD5、HMAC-SHA1;
  3. 对称加密算法建议使用:AES;
  4. 密钥交换算法建议使用:DH;
  5. 数字签名算法建议使用:SHA1withDSA;
  6. 非对称算法建议使用:ECC、RSA;
  7. HASH(哈希)算法建议使用:SHA;
  8. HMAC(基于哈希的消息验证码)算法建议使用:HMAC-SHA;
  9. 建议的各算法建议采用如下的加密强度:

  

 

三:HTTPS工作流程

https工作流程可以分为3个阶段:

1、认证服务器:客户端确认服务器证书的认证机构是否在受信任的CA机构列表中,从证书中获取服务器的公钥。

2、协商会话秘钥:客户端通过服务器公钥进行通信,协商出会话密码。这个会话秘钥是对称加密的类型,因为非对称加密算法开销计算量大,不适合对大数据加密。另外,会话密钥是随机生成,每次协商都会有不一样的结果,所以安全性也比较高。

3、此时客户端服务器双方都有了本次通讯的会话密钥,之后传输的所有Http数据,都通过会话密钥加密。

 

四:使用HTTPS的流程

1、使用openssl等工具生成web服务器的私钥key

2、使用openssl等工具,结合key以及服务器的其他信息,生成证书请求csr文件

3、发送csr文件给CA的其中一个机构,支付相应费用,获得服务器证书

4、通过webServer(Nginx等)中配置Http服务

总结:

https就是在http上面加入了ssl/tls协议,保证数据传输的安全性。但由于https比http耗费资源,所以一般比较重要的站点才会用https。

转载于:https://www.cnblogs.com/he1m4n6a/p/9218725.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值