searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

HTTPS为什么是安全的?(上)

2023-06-28 01:42:50
21
0

HTTPS为什么是安全的?(上)

  • 背景知识介绍:

1.1、对称加密技术

使用相同的密钥和算法对数据进行加密和解密的加密技术,其主要优点是加解密速度快,因为加密和解密使用同样的算法,不需要复杂的数学运算;而缺点则是在密钥分发和管理方面存在一定的安全风险,如果密钥被泄露,那么加密的数据就会变得不安全,常见的对称加密算法包括DES\AES等。

       加密过程是通过算法将明文和密钥通过加密算法运算生成密文,而解密过程是将密文和密钥通过解密算法生成明文的过程。

1.2、非对称加密技术

使用不同的密钥进行加密和解密的加密技术,与对称加密不同的是,非对称加密使用一对密钥,分别是一个可以公开传输的公钥和一个必须保密存放的私钥。其主要的优点是公钥可以公开传输,密钥分发更加安全。相对于对称加密,非对称加密的缺点是加解密速度较慢,因为涉及到复杂的数学运算。常见的非对称加密算法有RSA\DSA\ECC等。

       其主要特点是,公钥加密的信息,只有私钥才能解密,而私钥加密的信息,只有公钥才能解密。

1.3、数字签名

一种用来防止数字信息被修改、保证信息完整性的技术。原理和过程如下:

  • 发送方将消息用hash算法产生数字摘要。
  • 发送方用自己的私钥对摘要进行加密,这就形成了数字签名。
  • 将消息和数字签名一起发送给接收方。
  • 接收方用发送方的公钥对数字签名解密,同时对收到的消息用用和发送方相同的hash算法生成一个摘要,将解密后的摘要和重新生成的摘要进行比较。

如两者一致,则说明消息是发送方发送的且在传输过程中信息未被破坏或篡改。否则不然。

1.4、数字证书

在现实生活中,如果要证明我是谁,可以使用身份证,而在网络世界中,怎么实现这样一种身份认证呢?数字证书就是一种用于证实用户身份的数字凭证,其是由权威、受信任的证书颁发机构(CA)颁发的。

       证书主要包含以下内容:

  • 证书拥有者;比如baidu。
  • 证书拥有者的公钥;
  • 证书的有效期;
  • 证书的序列号;
  • 颁发证书的单位机构;
  • 颁发证书单位的数字签名。

      

       数字证书两个主要的作用是:

  • 证明证书拥有者的身份。
  • 传递公钥。

 

  • HTTP为什么不安全?

前言:互联网是众多规模大小不同的网络通过相互连接而形成的全球性的网络,互联网上任何数据包的传输都需要经过许许多多的网络设备(比如网卡、路由器等),如果其中任意一台设备是恶意的或者被恶意的人劫持,那传输的数据就有可能被窃取或者修改,这就是“中间人”攻击。

       HTTP最初的设计是用于共享和传输,没有考虑数据的安全性,因为采用的是明文传输方式,传输的数据没有进行任何加密,数据就会被轻易窃取,而且数据没有进行任何完整性的校验,被篡改也无法被感知到。此外在通信过程中,通信双方也没有进行身份认证,通信对象可能不是目标对象,收到的数据可能都是伪造的,所以HTTP存在以下三种安全风险:

  • 窃听风险。
  • 篡改风险。
  • 冒充风险。

     

  为了应对HTTP存在的安全风险,可以采用那些措施呢?接下来分别看看。

       一、为了防止通信数据被窃听,很容易想到的方式就是对数据进行加密后再进行传输,要实现数据加密,首先需要确定加密方法,加密方法分为对称加密和非对称加密。

假设1:使用对称加密传输数据。由于浏览器和服务器交换密钥的过程必须经过网络,而且密钥不适合像银行系统的U盾或口令卡一样离线分发,因此采用对称加密无法保证密钥的安全交换,也无法消除密文被解密偷窥的风险。

 

假设2:使用非对称加密传输数据。那么一次完整的请求分为四个阶段。

  • 浏览器向服务器发起获取公钥的请求。
  • 服务器收到请求,返回自己的公钥。
  • 浏览器将请求数据使用公钥加密后发送给服务器。服务器收到密文,使用自己的私钥进行解密,获取请求数据。
  • 服务器将响应数据使用私钥加密后发送给浏览器。

     

  上述整个过程都离不开路由器等网络设备转发数据,假设这里的路由器是恶意的,数据会被窃听吗?

       服务器拥有非对称的公钥和私钥,在第一、二步获取公钥的过程中,请求和响应报文是未被加密的,所以路由器是可以获取到公钥的。第三步浏览器使用公钥加密数据请求服务器,因为路由器没有私钥,因此无法解密获取明文,因此是安全的。第四步服务器使用私钥加密响应发送给浏览器,由于路由器能拿到公钥,因此可以解密密文,所以存在数据被窃听的风险。

结论:非对称加密无法解决数据被窃听的风险。

 

假设3、非对称和对称混合加密。那么一次完整的请求分为五个阶段。

  • 浏览器向服务器发起获取非对称加密公钥的请求。
  • 服务器收到请求返回自己的公钥。
  • 浏览器将对称加密密钥使用公钥加密后发送给服务器,服务器收到密文后使用自己的私钥解密获得对称加密的密钥。
  • 浏览器将请求数据使用对称加密密钥加密后发送给服务器,服务器使用上一步使用非对称私钥解密的对称密钥进行解密,得到请求数据。
  • 服务器使用对称加密密钥将响应数据进行加密后发送给浏览器。,浏览器使用对称加密密钥解密得到响应数据。

       第一、二步浏览器和服务器交换公钥。第三步浏览器将对称加密密钥使用非对称加密公钥加密传递给服务器,由于路由器没有非对称加密私钥,因此无法解析获得对称加密密钥。

安全交换对称加密密钥后,第四、五步中,浏览器和服务器就可以通过对称加密密钥进行数据加解密传输,安全性得以保证。

       二、为了防止通信数据被篡改,确保数据的完整性,可以使用数字签名技术对数据信息校验。

浏览器和服务器在通信时先将明文使用HASH算法生成签名,再使用密钥将明文和签名一起生成密文,然后发送给对方,接收方通过密钥解密后拿到明文,也使用HASH生成一个签名,通过比较两个签名是否一致,便可以验证数据是否被修改。

 

       三、为了防止通信数据拥有者的身份被冒充,需要使用数字证书的支持,在进行通信之前,浏览器会先向服务器请求数字证书,收到数字证书后,会先对其进行合法性校验,校验通过之后再进行通信。

       合法性校验主要包括:

  • 证书是否在有效期内。
  • 证书的域名与请求的域名是否匹配。
  • 比对数字签名校验证书是否被篡改。

如果证书校验失败,就会发现响应这身份异常,可以选择终止通信。

       通过以上三点风险分析,HTTP的安全风险是可以被解决的,传输的安全性理论上可以得到保障。

       非对称加密结合对称加密可以实现传输数据的保密性。

       数字签名校验可以保证数据的完整性。

       数字证书可以保证通信对象的合法性身份。

 

那么HTTPS又是如何实现的呢?请看下一次分享!

0条评论
0 / 1000
DAY_DAY_UP
2文章数
0粉丝数
DAY_DAY_UP
2 文章 | 0 粉丝
DAY_DAY_UP
2文章数
0粉丝数
DAY_DAY_UP
2 文章 | 0 粉丝
原创

HTTPS为什么是安全的?(上)

2023-06-28 01:42:50
21
0

HTTPS为什么是安全的?(上)

  • 背景知识介绍:

1.1、对称加密技术

使用相同的密钥和算法对数据进行加密和解密的加密技术,其主要优点是加解密速度快,因为加密和解密使用同样的算法,不需要复杂的数学运算;而缺点则是在密钥分发和管理方面存在一定的安全风险,如果密钥被泄露,那么加密的数据就会变得不安全,常见的对称加密算法包括DES\AES等。

       加密过程是通过算法将明文和密钥通过加密算法运算生成密文,而解密过程是将密文和密钥通过解密算法生成明文的过程。

1.2、非对称加密技术

使用不同的密钥进行加密和解密的加密技术,与对称加密不同的是,非对称加密使用一对密钥,分别是一个可以公开传输的公钥和一个必须保密存放的私钥。其主要的优点是公钥可以公开传输,密钥分发更加安全。相对于对称加密,非对称加密的缺点是加解密速度较慢,因为涉及到复杂的数学运算。常见的非对称加密算法有RSA\DSA\ECC等。

       其主要特点是,公钥加密的信息,只有私钥才能解密,而私钥加密的信息,只有公钥才能解密。

1.3、数字签名

一种用来防止数字信息被修改、保证信息完整性的技术。原理和过程如下:

  • 发送方将消息用hash算法产生数字摘要。
  • 发送方用自己的私钥对摘要进行加密,这就形成了数字签名。
  • 将消息和数字签名一起发送给接收方。
  • 接收方用发送方的公钥对数字签名解密,同时对收到的消息用用和发送方相同的hash算法生成一个摘要,将解密后的摘要和重新生成的摘要进行比较。

如两者一致,则说明消息是发送方发送的且在传输过程中信息未被破坏或篡改。否则不然。

1.4、数字证书

在现实生活中,如果要证明我是谁,可以使用身份证,而在网络世界中,怎么实现这样一种身份认证呢?数字证书就是一种用于证实用户身份的数字凭证,其是由权威、受信任的证书颁发机构(CA)颁发的。

       证书主要包含以下内容:

  • 证书拥有者;比如baidu。
  • 证书拥有者的公钥;
  • 证书的有效期;
  • 证书的序列号;
  • 颁发证书的单位机构;
  • 颁发证书单位的数字签名。

      

       数字证书两个主要的作用是:

  • 证明证书拥有者的身份。
  • 传递公钥。

 

  • HTTP为什么不安全?

前言:互联网是众多规模大小不同的网络通过相互连接而形成的全球性的网络,互联网上任何数据包的传输都需要经过许许多多的网络设备(比如网卡、路由器等),如果其中任意一台设备是恶意的或者被恶意的人劫持,那传输的数据就有可能被窃取或者修改,这就是“中间人”攻击。

       HTTP最初的设计是用于共享和传输,没有考虑数据的安全性,因为采用的是明文传输方式,传输的数据没有进行任何加密,数据就会被轻易窃取,而且数据没有进行任何完整性的校验,被篡改也无法被感知到。此外在通信过程中,通信双方也没有进行身份认证,通信对象可能不是目标对象,收到的数据可能都是伪造的,所以HTTP存在以下三种安全风险:

  • 窃听风险。
  • 篡改风险。
  • 冒充风险。

     

  为了应对HTTP存在的安全风险,可以采用那些措施呢?接下来分别看看。

       一、为了防止通信数据被窃听,很容易想到的方式就是对数据进行加密后再进行传输,要实现数据加密,首先需要确定加密方法,加密方法分为对称加密和非对称加密。

假设1:使用对称加密传输数据。由于浏览器和服务器交换密钥的过程必须经过网络,而且密钥不适合像银行系统的U盾或口令卡一样离线分发,因此采用对称加密无法保证密钥的安全交换,也无法消除密文被解密偷窥的风险。

 

假设2:使用非对称加密传输数据。那么一次完整的请求分为四个阶段。

  • 浏览器向服务器发起获取公钥的请求。
  • 服务器收到请求,返回自己的公钥。
  • 浏览器将请求数据使用公钥加密后发送给服务器。服务器收到密文,使用自己的私钥进行解密,获取请求数据。
  • 服务器将响应数据使用私钥加密后发送给浏览器。

     

  上述整个过程都离不开路由器等网络设备转发数据,假设这里的路由器是恶意的,数据会被窃听吗?

       服务器拥有非对称的公钥和私钥,在第一、二步获取公钥的过程中,请求和响应报文是未被加密的,所以路由器是可以获取到公钥的。第三步浏览器使用公钥加密数据请求服务器,因为路由器没有私钥,因此无法解密获取明文,因此是安全的。第四步服务器使用私钥加密响应发送给浏览器,由于路由器能拿到公钥,因此可以解密密文,所以存在数据被窃听的风险。

结论:非对称加密无法解决数据被窃听的风险。

 

假设3、非对称和对称混合加密。那么一次完整的请求分为五个阶段。

  • 浏览器向服务器发起获取非对称加密公钥的请求。
  • 服务器收到请求返回自己的公钥。
  • 浏览器将对称加密密钥使用公钥加密后发送给服务器,服务器收到密文后使用自己的私钥解密获得对称加密的密钥。
  • 浏览器将请求数据使用对称加密密钥加密后发送给服务器,服务器使用上一步使用非对称私钥解密的对称密钥进行解密,得到请求数据。
  • 服务器使用对称加密密钥将响应数据进行加密后发送给浏览器。,浏览器使用对称加密密钥解密得到响应数据。

       第一、二步浏览器和服务器交换公钥。第三步浏览器将对称加密密钥使用非对称加密公钥加密传递给服务器,由于路由器没有非对称加密私钥,因此无法解析获得对称加密密钥。

安全交换对称加密密钥后,第四、五步中,浏览器和服务器就可以通过对称加密密钥进行数据加解密传输,安全性得以保证。

       二、为了防止通信数据被篡改,确保数据的完整性,可以使用数字签名技术对数据信息校验。

浏览器和服务器在通信时先将明文使用HASH算法生成签名,再使用密钥将明文和签名一起生成密文,然后发送给对方,接收方通过密钥解密后拿到明文,也使用HASH生成一个签名,通过比较两个签名是否一致,便可以验证数据是否被修改。

 

       三、为了防止通信数据拥有者的身份被冒充,需要使用数字证书的支持,在进行通信之前,浏览器会先向服务器请求数字证书,收到数字证书后,会先对其进行合法性校验,校验通过之后再进行通信。

       合法性校验主要包括:

  • 证书是否在有效期内。
  • 证书的域名与请求的域名是否匹配。
  • 比对数字签名校验证书是否被篡改。

如果证书校验失败,就会发现响应这身份异常,可以选择终止通信。

       通过以上三点风险分析,HTTP的安全风险是可以被解决的,传输的安全性理论上可以得到保障。

       非对称加密结合对称加密可以实现传输数据的保密性。

       数字签名校验可以保证数据的完整性。

       数字证书可以保证通信对象的合法性身份。

 

那么HTTPS又是如何实现的呢?请看下一次分享!

文章来自个人专栏
文章 | 订阅
0条评论
0 / 1000
请输入你的评论
0
0