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向客户端提供的公钥以及向服务器提供的私钥又是从哪来的?

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

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

 

 

相关文章
|
3月前
|
安全 算法 网络安全
HTTPS原理
HTTPS 通过加密、数字证书、握手过程等多种手段,确保了网络通信的安全和可靠。它为用户提供了更高级别的隐私保护和数据安全,是现代互联网中重要的安全保障机制。随着网络安全威胁的不断增加,HTTPS 的应用也越来越广泛,成为保障网络安全的重要基石。
138 70
|
2月前
|
安全 算法 网络协议
【网络原理】——图解HTTPS如何加密(通俗简单易懂)
HTTPS加密过程,明文,密文,密钥,对称加密,非对称加密,公钥和私钥,证书加密
|
2月前
|
网络协议 安全 网络安全
探索网络模型与协议:从OSI到HTTPs的原理解析
OSI七层网络模型和TCP/IP四层模型是理解和设计计算机网络的框架。OSI模型包括物理层、数据链路层、网络层、传输层、会话层、表示层和应用层,而TCP/IP模型则简化为链路层、网络层、传输层和 HTTPS协议基于HTTP并通过TLS/SSL加密数据,确保安全传输。其连接过程涉及TCP三次握手、SSL证书验证、对称密钥交换等步骤,以保障通信的安全性和完整性。数字信封技术使用非对称加密和数字证书确保数据的机密性和身份认证。 浏览器通过Https访问网站的过程包括输入网址、DNS解析、建立TCP连接、发送HTTPS请求、接收响应、验证证书和解析网页内容等步骤,确保用户与服务器之间的安全通信。
145 3
|
3月前
|
安全 算法 网络安全
一张图就把HTTPS工作原理讲明白了!
【10月更文挑战第31天】
158 1
一张图就把HTTPS工作原理讲明白了!
|
3月前
|
安全 网络安全 数据安全/隐私保护
内网IP地址实现HTTPS加密访问教程
在内网环境中,为确保数据传输的安全性,绑定SSL证书搭建HTTPS服务器至关重要。本文介绍了内网IP地址的前期准备、申请SSL证书的步骤以及客户端配置方法。具体包括选择合适的CA、注册账号、提交申请、下载证书,并在客户端导入根证书,确保通信数据的安全加密。推荐使用JoySSL提供的技术解决方案,确保内网设备通信安全。
内网IP地址实现HTTPS加密访问教程
|
3月前
|
域名解析 算法 安全
免费申请https加密全攻略
访问JoySSL官网注册账号,申请免费SSL证书。选择证书类型,填写域名信息,生成CSR文件,验证域名所有权。下载并部署证书至服务器,测试HTTPS连接。注意定期续期,确保兼容性和安全性。如有问题,可联系JoySSL客服。
|
3月前
|
安全 算法 网络协议
网易面试:说说 HTTPS 原理?HTTPS 如何保证 数据安全?
45岁老架构师尼恩在其读者交流群中分享了关于HTTP与HTTPS的深入解析,特别针对近期面试中常问的HTTPS相关问题进行了详细解答。文章首先回顾了HTTP的工作原理,指出了HTTP明文传输带来的三大风险:窃听、篡改和冒充。随后介绍了HTTPS如何通过结合非对称加密和对称加密来解决这些问题,确保数据传输的安全性。尼恩还详细解释了HTTPS的握手过程,包括如何通过CA数字证书验证服务器身份,防止中间人攻击。最后,尼恩强调了掌握这些核心技术的重要性,并推荐了自己的技术资料,帮助读者更好地准备面试,提高技术水平。
|
4月前
|
安全 算法 Java
数据库信息/密码加盐加密 —— Java代码手写+集成两种方式,手把手教学!保证能用!
本文提供了在数据库中对密码等敏感信息进行加盐加密的详细教程,包括手写MD5加密算法和使用Spring Security的BCryptPasswordEncoder进行加密,并强调了使用BCryptPasswordEncoder时需要注意的Spring Security配置问题。
270 0
数据库信息/密码加盐加密 —— Java代码手写+集成两种方式,手把手教学!保证能用!
|
5月前
|
安全 网络安全 数据安全/隐私保护
HTTPS中的加密算法
HTTPS中的加密算法
|
5月前
|
存储 安全 数据安全/隐私保护
安全升级!Python AES加密实战,为你的代码加上一层神秘保护罩
【9月更文挑战第12天】在软件开发中,数据安全至关重要。本文将深入探讨如何使用Python中的AES加密技术保护代码免受非法访问和篡改。AES(高级加密标准)因其高效性和灵活性,已成为全球最广泛使用的对称加密算法之一。通过实战演练,我们将展示如何利用pycryptodome库实现AES加密,包括生成密钥、初始化向量(IV)、加密和解密文本数据等步骤。此外,还将介绍密钥管理和IV随机性等安全注意事项。通过本文的学习,你将掌握使用AES加密保护敏感数据的方法,为代码增添坚实的安全屏障。
181 8