Android https 可以解决数据安全问题,但是你真的理解 https 吗?

时间:2021-6-11 作者:qvyue

总是感叹时间过得很快,有个词是转眼即逝,确实,不知不觉走出校门已将近五年,到了三十而立的年纪,作为码农自己慌得一逼,一直就想通过写点东西来记录下自己的成长……

站在巨人的肩膀上,幻想着在未来的十年、二十年 ,实现网数分离,数据像水电一样标准化使用。

数据传输安全也就至关重要了。

我们真的了解http 与https 吗??大多数人也仅仅浅于表面;使用 https 可以解决数据安全问题,但是你真的理解 https 吗?


我们应该知道,http 通信存在以下问题

1、通信使用明文可能会被窃听

2、不验证通信方的身份可能遭遇伪装

3、无法证明报文的完整型,可能已遭篡改

关于https 我们思索以下几个问题

(1)什么是 https,为什么需要 https

(2)https 的连接过程

(3)https 的加密方式是怎样的,对称加密和非对称加密,为什么要这样设计?内容传输为什么要使用对称机密

什么是 https

简单来说, https 是 http + ssl,对 http 通信内容进行加密,是HTTP的安全版,是使用TLS/SSL加密的HTTP协议

Https的作用

内容加密 建立一个信息安全通道,来保证数据传输的安全;身份认证 确认网站的真实性;数据完整性 防止内容被第三方冒充或者篡改。

什么是SSL

它是一种标准协议,用于加密浏览器和服务器之间的通信。它允许通过Internet安全轻松地传输账号密码、银行卡、手机号等私密信息。

SSL证书就是遵守SSL协议,由受信任的CA机构颁发的数字证书。

SSL/TLS的工作原理

需要理解SSL/TLS的工作原理,我们需要掌握加密算法。加密算法有两种:对称加密和非对称加密:

对称加密:通信双方使用相同的密钥进行加密。特点是加密速度快,但是缺点是需要保护好密钥,如果密钥泄露的话,那么加密就会被别人破解。常见的对称加密有AES,DES算法。

非对称加密:它需要生成两个密钥:公钥(Public Key)和私钥(Private Key)。

公钥顾名思义是公开的,任何人都可以获得,而私钥是私人保管的。相信大多程序员已经对这种算法很熟悉了:我们提交代码到github的时候,就可以使用SSH key:在本地生成私钥和公钥,私钥放在本地.ssh目录中,公钥放在github网站上,这样每次提交代码,不用麻烦的输入用户名和密码了,github会根据网站上存储的公钥来识别我们的身份。

公钥负责加密,私钥负责解密;或者,私钥负责加密,公钥负责解密。这种加密算法安全性更高,但是计算量相比对称加密大很多,加密和解密都很慢。常见的非对称算法有RSA。

https 的连接过程

https 的连接过程大概分为两个阶段,证书验证阶段和数据传输阶段。

Android   https 可以解决数据安全问题,但是你真的理解 https 吗?

https 的加密方式是怎样的,对称加密和非对称加密,为什么要这样设计

从上面我们可以知道,https 加密是采用对称加密和非对称机密一起结合的。

在证书验证阶段,使用非对称加密。 在数据传输阶段,使用对称机密。这样设计有一个好处,能最大程度得兼顾安全效率。

在证书验证阶段,使用非对称加密,需要公钥和私钥,假如浏览器的公钥泄漏了,我们还是能够确保随机数的安全,因为加密的数据只有用私钥才能解密。这样能最大程度确保随机数的安全。

在内容传输阶段,使用对称机密,可以大大提高加解密的效率。

内容传输为什么要使用对称机密

对称加密效率比较高;一对公私钥只能实现单向的加解密。只有服务端保存了私钥。如果使用非对称机密,相当于客户端必须有自己的私钥,这样设计的话,每个客户端都有自己的私钥,这很明显是不合理的,因为私钥是需要申请的。

声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:qvyue@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。