详细介绍https

以下是阿鲤对https的学习总结,希望对大家有所帮助。

一:什么是https

二:为什么需要https

三:TLS/SSL的介绍

四:数字证书

五:HTTPS的加密流程


一:什么是https

https是基于http协议的,通过对http的传输加密和身份认证保证了传输的安全性。如果你还 不了解http请看阿鲤的这篇博客简单介绍http协议

https的主要作用:

对数据进行加密,并建立一个信息安全通道,来保证传输过程数据的安全;对网站服务器进行真实的身份认证。 比如我们访问一个https会发现上面有一个锁:

二:为什么需要https

这是因为http协议没有对数据加密和身份认证,在传输过程中是明文的,这样就会导致很多问题,比如数据泄露,数据篡改,流量劫持,钓鱼攻击。

那么https就是来解决这个问题的,首先需要明白的是http并非应用层的新协议,而是将http通信接口部分用SSL和STL协议所代替 + 数字签证;

接下来我们就详细介绍TLS/SSL协议,和数字签证

三:TLS/SSL的介绍——解决数据加密和防止篡改

TSL/SSL协议主要依赖于三类基本算法:散列函数,对称加密,非对称加密;

1:散列函数——防止数据被篡改

也称哈希算法,其将任意长度的二进制值映射为较短的固定长度的二进制值,该二进制值被称为哈希值;用于检验数据的完整性,检验数据有没有被篡改过。常见的有MD5,SHA-1;

MD5的介绍

它可以将任意长度的输入串经过计算得到固定长度的输出,而且只有在明文相同的情况下,才能等到相同的密文,并且这个算法是不可逆的,即便得到了加密以后的密文,也不可能通过解密算法反算出明文;

MD5算法的原理:来源于百度百科

MD5码以512位分组来处理输入的信息,且每一分组又被划分为16个32位子分组,经过了一系列的处理后,算法的输出由四个32位分组组成,将这四个32位分组级联后将生成一个128位的散列值;

总体流程如下图所示,每次的运算都由前一轮的128位结果值和当前的512bit值进行运算

 

图1.MD5算法的整体流程图

2:对称加密——对数据进行加密

这种方式的加密和解密都是使用同一个密钥。常见的对称加密方式有DES、3DES(TripleDES)、AES、RC2、RC4、RC5和Blowfis等,我们这里介绍一下DES算法

DES的介绍

DES算法全称为Data Encryption Standard,即数据加密算法,它是IBM公司于1975年研究成功并公开发表的。DES算法的入口参数有三个:Key、Data、Mode。其中Key为8个字节共64位,是DES算法的工作密钥;Data也为8个字节64位,是要被加密或被解密的数据;Mode为DES的工作方式,有两种:加密或解密

DES的原理

DES算法把64位的明文输入块变为64位的密文输出块,它所使用的密钥也是64位,其算法主要分为两步:

a:初始置换

其功能是把输入的64位数据块按位重新组合,并把输出分为L0、R0两部分,每部分各长32位,其置换规则为将输入的第58位换到第一位,第50位换到第2位……依此类推,最后一位是原来的第7位。L0、R0则是换位输出后的两部分,L0是输出的左32位,R0是右32位,例:设置换前的输入值为D1D2D3……D64,则经过初始置换后的结果为:L0=D58D50……D8;R0=D57D49……D7。

b:逆置换

经过16次迭代运算后,得到L16、R16,将此作为输入,进行逆置换,逆置换正好是初始置换的逆运算,由此即得到密文输出。

3:非对称加密——解决对称加密密钥无法加密发送的问题

有了对称加密,那么为什么还需要非对称加密呢?这是因为在每一次链接通道建立的时候,通信双方都需要沟通确定对称加密的方法,和密钥;那么这次的传输安全就需要得到保证,所以就需要非对称加密来建立;

非对称加密算法,会生产一个公钥,一个私钥;公钥是公开,私钥是私有的。在使用的时候,发送密文的一方使用对方公开密钥进行加密处理,接收方收到信息之后使用私钥解密处理;利用这种方式4,就可以在不发送密钥的情况下进行数据加密传输 。常见的非对对称加密有RSA算法;

非对称加密的优缺点:

公钥是公开的,所以针对私钥加密的信息,黑客截获后可以使用公钥进行解密,获取其中的内容;

公钥并不包含服务器的信息,使用非对称加密算法无法确保服务器身份的合法性,存在中间人攻击的风险,服务器发送给客户端的公钥可能在传送过程中被中间人截获并篡改;

使用非对称加密在数据加密解密过程需要消耗一定时间,降低了数据传输效率;

RSA算法

RSA加密算法原理

阿鲤之前写过RSA加密算法的代码,有兴趣的同学可以看看:含有清晰注释的RSA实现

四:数字证书——解决通信方身份可能被伪装的问题

数字证书是指在互联网通讯中标志通讯各方身份信息的一个数字认证,人们可以在网上用它来识别对方的身份。 [1] 

因此数字证书又称为数字标识。数字证书对网络用户在计算机网络交流中的信息和数据等以加密解密的形式保证了信息和数据的完整性和安全性。

数字证书流程

服务器的运营人员向第三方机构CA提交公钥、组织信息、个人信息(域名)等信息并申请认证;

CA通过线上、线下等多种手段验证申请者提供信息的真实性,如组织是否存在、企业是否合法,是否拥有域名的所有权等;

如信息审核通过,CA会向申请者签发认证文件-证书。证书包含以下信息:申请者公钥、申请者的组织信息和个人信息、签发机构 CA的信息、有效时间、证书序列号等信息的明文,同时包含一个签名。其中签名的产生算法:首先,使用散列函数计算公开的明文信息的信息摘要,然后,采用 CA的私钥对信息摘要进行加密,密文即签名;

客户端 Client 向服务器 Server 发出请求时,Server 返回证书文件;

客户端 Client 读取证书中的相关的明文信息,采用相同的散列函数计算得到信息摘要,然后,利用对应 CA的公钥解密签名数据,对比证书的信息摘要,如果一致,则可以确认证书的合法性,即服务器的公开密钥是值得信赖的。

客户端还会验证证书相关的域名信息、有效时间等信息; 客户端会内置信任CA的证书信息(包含公钥),如果CA不被信任,则找不到对应 CA的证书,证书也会被判定非法。

五:HTTPS的加密流程

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值