https是如何加密的 (知道了原理之后,希望自己能用代码实现一下,还有用于对个人信息和公钥进行加密的哈希算法,有时间也去查一下)

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: 由于http协议是明文传输数据,数据的安全性没有保障。为了改进这种明文传输协议,https诞生了。 https是在应用层和传输层之间,增加了一层ssl加密。

由于http协议是明文传输数据,数据的安全性没有保障。为了改进这种明文传输协议,https诞生了。

 

https是在应用层和传输层之间,增加了一层ssl加密。对于加密,请往下看:

 

1、对称加密

 

每次在发送数据之前,服务器先生成一把密钥,然后先通过明文传输的方式将密钥传递给客户端。之后服务器给客户端传送数据的时候,会用着把密钥对数据进行加密,客户端收到加密数据之后,用刚刚收到的密钥对数据进行解密。

 

弊端:(1)密钥在传输的过程中容易被人截取; (2)客户端并不知道与自己建立连接的服务器是不是真的目标服务器。

那么,如何把密钥安全的传给客户端呢?这就要看非对称加密了。

 

2、非对称加密

 

客户端和服务器各自都拥有两把钥匙,一把钥匙是公开的,称为公钥;一把是保密的(只有自己本人知道),叫做私钥

用公钥加密的数据,只有对应的私钥才能解密;用私钥加密的数据,只有对应的公钥才能解密

如此,服务器在给客户端传输数据的过程中,可以用客户端明文传输给他的公钥进行加密,然后客户端收到后,再用自己的私钥进行解密。客户端给服务器发送数据的时候,也采用相同的方式,这样就能保证数据的安全传输了。

 

 

但是,非对称加密的加密时间是对称加密的上百倍。如果一直采用非对称加密来进行数据的传输,速度会比较慢,如何改进?

 

3、对称加密+非对称加密结合

 

用非对称加密的方式去传输对称加密的密钥,这样可以保证对称加密的密钥可以安全的交付给对方

(也就是

1、客户端先把非对称加密的公钥明文传输给服务器;

2、服务端在接到密钥之后,会生成一把用于对称加密的密钥

3、服务器用之前接到的公钥对刚刚生成的密钥进行加密,然后传输给客户端;

4、客户端通过自己的密钥对服务器传过来的被公钥加密过的密钥进行解密;)

 

此时,服务端和客户端就都拥有了一把用于对称传输的密钥,而且这个密钥是没有被截取风险的。

但是,这样就能确保万无一失了吗?

如果你的回答是“是”,那你就太嫩了。

 

如果在步骤一的时候,公钥被第三方截取,之后客户端与第三方走完了上述的四个步骤,建立了对称加密的传输。第三方再和服务器走完上面的四步。如此,第三方拥有了和客户端进行对称传输的密钥,以及和服务器传输的密钥。而这个第三方的存在,服务器和客户端都没办法察觉到。

 

怎么办?关键问题就是客户端不知道和自己建立连接的是不是真的目标服务器。那么,我们需要在建立连接的时候,对服务器的身份进行验证。https加密的过程,闪亮登场了

 

数字证书

我们需要一个大家都认可的认证中心(CA)

 

服务器产生数字证书的过程:

1、服务器在给客户端传送公钥的过程中,会把公钥以及服务器的个人信息通过哈希算法(这个算法以后研究一下)生成信息摘要

2、之后服务器利用CA提供的私钥对信息摘要进行加密,来形成数字签名

3、将没有经过哈希算法处理的个人信息以及公钥,和数字签名合并在一起,形成数字证书

 

客户端拿到数字证书之后:

1、就会利用CA提供的公钥对数字证书里面的数字签名进行解密来得到信息摘要

2、然后对数组证书里面的服务器公钥以及服务器的个人信息进行hash得到另一份信息摘要

3、最后把两份信息摘要进行对比,如果一样,则证明是服务器。

 

如此,保证服务器的公钥就安全的交给客户端了。

 

那么CA向客户端提供的公钥以及向服务器提供的私钥又是从哪来的?

服务器需要向认证中心去申请证书,客户端也会内置这些证书。

当客户端收到服务器传来的数据数字证书时,会在内置的整数列表里,查看是否有解开该数字特征的公钥。

 

 

相关文章
|
4天前
|
安全 算法 网络安全
一张图就把HTTPS工作原理讲明白了!
【10月更文挑战第31天】
11 1
一张图就把HTTPS工作原理讲明白了!
|
1月前
|
存储 安全 算法
网络安全与信息安全:构建数字世界的防线在数字化浪潮席卷全球的今天,网络安全与信息安全已成为维系现代社会正常运转的关键支柱。本文旨在深入探讨网络安全漏洞的成因与影响,剖析加密技术的原理与应用,并强调提升公众安全意识的重要性。通过这些综合性的知识分享,我们期望为读者提供一个全面而深刻的网络安全视角,助力个人与企业在数字时代中稳健前行。
本文聚焦网络安全与信息安全领域,详细阐述了网络安全漏洞的潜在威胁、加密技术的强大防护作用以及安全意识培养的紧迫性。通过对真实案例的分析,文章揭示了网络攻击的多样性和复杂性,强调了构建全方位、多层次防御体系的必要性。同时,结合当前技术发展趋势,展望了未来网络安全领域的新挑战与新机遇,呼吁社会各界共同努力,共筑数字世界的安全防线。
|
2月前
|
安全 网络安全 数据安全/隐私保护
HTTPS中的加密算法
HTTPS中的加密算法
|
2月前
|
安全 网络安全 数据安全/隐私保护
https的原理
https的原理
48 2
|
2月前
|
算法 安全 网络安全
概念区分:对称加密、非对称加密、公钥、私钥、签名、证书
概念区分:对称加密、非对称加密、公钥、私钥、签名、证书
81 0
|
3月前
|
算法 安全 数据安全/隐私保护
Android经典实战之常见的移动端加密算法和用kotlin进行AES-256加密和解密
本文介绍了移动端开发中常用的数据加密算法,包括对称加密(如 AES 和 DES)、非对称加密(如 RSA)、散列算法(如 SHA-256 和 MD5)及消息认证码(如 HMAC)。重点讲解了如何使用 Kotlin 实现 AES-256 的加密和解密,并提供了详细的代码示例。通过生成密钥、加密和解密数据等步骤,展示了如何在 Kotlin 项目中实现数据的安全加密。
110 1
|
3月前
|
算法 安全 数据安全/隐私保护
Android经典实战之常见的移动端加密算法和用kotlin进行AES-256加密和解密
本文介绍了移动端开发中常用的数据加密算法,包括对称加密(如 AES 和 DES)、非对称加密(如 RSA)、散列算法(如 SHA-256 和 MD5)及消息认证码(如 HMAC)。重点展示了如何使用 Kotlin 实现 AES-256 的加密和解密,提供了详细的代码示例。
72 2
|
3月前
|
算法 JavaScript 前端开发
国标非对称加密:RSA算法、非对称特征、js还原、jsencrypt和rsa模块解析
国标非对称加密:RSA算法、非对称特征、js还原、jsencrypt和rsa模块解析
255 1
|
3月前
|
算法 JavaScript 前端开发
消息摘要算法:MD5加密
消息摘要算法:MD5加密
57 1
|
3月前
|
JSON 算法 API
【Azure API 管理】APIM 配置Validate-JWT策略,验证RS256非对称(公钥/私钥)加密的Token
【Azure API 管理】APIM 配置Validate-JWT策略,验证RS256非对称(公钥/私钥)加密的Token
下一篇
无影云桌面