对HTTPS的思考之HTTPS如何做到数据传输安全的呢?

本文主要讲述了我的两点思考:

1、HTTPS凭什么保证数据的传输安全

2、为什么要使用混合加密的方式

【前言】

       前段时间被同事问到一些安全相关东西,问题是这样的:我们的软件做了哪些安全相关的工作呢?我的回答是:1、采用了HTTPS加密协议,防止被截取数据进行分析;2、做了数据校验,对发送过来的东西进行过滤,以防被sql注入等;3、限流策略;之后要是有必要的话,我们还可以上个waf。

       可随后被反问,我采用HTTPS加密协议,那又怎样呢?在客户端不还是会被解密出来里面的信息吗?我当时瞬间被问蒙了(只能怪我基础不扎实吧)。这个问题的方向和HTTPS加密传输粗看确实有联系,我客户端都能解密了,还要加密干嘛呢?仔细回过头来想一想,其实这个加密说的很清楚了,是为了防止被其他人从中间截获,换句话说就是为了防止中间人攻击。一句话总结,采用HTTPS目的是为了保护客户端和服务端传输的信息,不被第三方截获破解。

       好了,说到这里,也就解决了同事的那个问题。既然谈到了HTTPS,那就再深入思考一下,在这里小伙伴可以看这里再了解下什么是HTTS、TLS、SSL以及HTTPS建立连接过程(点击后文即可跳转原文,统一简称为文章里)。

【HTTPS凭什么保证数据的传输安全】

 深入思考一下,HTTPS在连接的过程,是如何保证安全的呢?在我个人理解主要有以下三点:

1、加密

       在文章里我提到过传输时候是先用随机数对握手信息也就是传输的数据进行加密,再用公钥对随机数进行加密,用通俗的话来说就是,先用一把锁(我们称之为锁1)把信息锁起来,再用另外一把锁(称之为锁2)把这个钥匙也锁起来,而锁2的钥匙(即私钥)只有对方有。如此一来,就做到了信息加密,一定程度上有效的防止了中间人攻击,换句话说也就是用户的信息有效的得到了保护。

2、身份认证

【CA证书认证】

       在文章里有我提到随ca证书一起发给客户端的有这些内容:1、证书颁发机构;2、使用机构;3、公钥;4、有效期;5、签名算法;6、指纹算法;7、指纹。那么问题来了,指纹算法和指纹是什么呢?顾名思义它们像人类的指纹一样独一无二,也是用来证明证书是它自己的。指纹就是一个证书的签名,这个签名是CA机构在发布证书之前,用证书自己的根私钥通过指纹算法对证书的内容进行计算,得到的一个hash值。可以类比为人们的签名,证明一下是自己(证书自己),那么怎么证明这个签名就是你自己(证书)的呢?很好办,我们人类可以拿你以前的签名进行对比就可以分辨出来了,这种数字签名当然也可以,用发过来的指纹算法,对证书内容进行一次hash计算,得到另外一个hash值h2,将这个签名和新的hash值h2一对比就可以知道真假了。

【URL认证】

       验证了证书是真的,接下来对比一下证书中的URL和我们所请求的URL是否一致,就可以判断是不是钓鱼网站之类的了。

3、保证数据没有被篡改

【保证传输的通信数据没有被篡改】

       在前面的加密里面提到了随机数,按照我个人的理解,这个随机数是Client和Server协商的对称加密的密钥,提到的用随机数给握手信息进行加密的讲法并不完整,其实被随机数一起加密的除了握手信息原始数据,还有用CA证书中的签名算法计算的握手信息原始数据的hash值。

       当服务端收到上面一段操作后传过来的信息后,先用自己的私钥解密出随机值,这个随机值之后就是CS传输用的对称加密的密钥了。然后用这个随机值对传输过来的握手信息原始数据握手信息原始数据的hash值h3进行解密,再用自己之前的签名算法,对握手信息原始数据进行一次hash计算,得到另一个hash值h4,将两个hash值h3和h4进行对比,如果一样,那么通信数据就没有被篡改。

【为什么要使用混合加密的方式】

       这个时候你或许会问,我可以不可以全程都用安全性更高的非对称加密呢(非对称加密不可逆)?也就是说客户端并不是生成一个随机值作为对称加密的密钥,而是把自己生成的公钥发过去给到服务端,之后服务端每次都用这个公钥来加密数据怎样?

听起来似乎是个goot idea,但是,作为一名运维民工,对资源的消耗情况固然是敏感的,那么我们谈谈对称/非对称加解密的资源消耗吧。

       众所周知,非对称加密的运算速度非常慢,比如我们常见的RSA加密算法,稍微去了解一下你就知道这个算法有多么的复杂。算法复杂了,运算起来必然就快不了,如果想要加快速度,那必然要消耗更多的资源,这样一来就有点得不偿失的感觉了。那么这个时候对资源消耗较小的对称加密(比如常见的AES)就可以缓解一下这个问题。

       所以,TLS采用了对称+非对称结合这种混合加密方式。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
对计算机网络安全的几点思考全文共6页,当前为第1页。对计算机网络安全的几点思考全文共6页,当前为第1页。对计算机网络安全的几点思考 对计算机网络安全的几点思考全文共6页,当前为第1页。 对计算机网络安全的几点思考全文共6页,当前为第1页。 摘要:近年来,计算机网络的发展非常迅速并且得到了广泛的应用。然而,计算机网络面临的安全问题也是不容忽视的。基于此,进行关于计算机网络安全的几点思考具有非常重要的意义。本文首先分析了计算机网络安全的主要隐患及攻击的主要方式,然后,从管理和技术的角度就加强计算机网络安全提出了针对性的建议。 关键词:关键词:计算机网络;安全;隐患;建议 1. 计算机网络安全的主要隐患及攻击的主要方式 1.1 计算机网络安全的主要隐患 (1)当前许多计算机网络用户的个人计算机并未安装相应的杀毒软件及防火墙,这就导致用户计算机非常容易受到计算机病毒的攻击。 (2)当前许多计算机网络用户计算机的操作系统存在安全漏洞,计算机网络木马、病毒和黑客攻击都会导致计算机受到威胁。由于计算机系统软件方面的问题,用户的计算机系统或多或少都存在着各种各样的漏洞,计算机网络又是开放共享的,从而导致接入计算机网络的用户会由于自身系统的漏洞而对于整个计算机网络产生安全威胁,而流行于计算机网络上的"震荡波、冲击波、尼姆达"等各种各样的病毒都是利用系统的漏洞来进行病毒传播的,这对于计算机网络带来了非常严重的安全隐患。 (3)当前许多计算机网络用户设置目录共享导致信息的外泄。计算机网络用户通常会通过设置目录共享的方式来进行文件传输,然而,大对计算机网络安全的几点思考全文共6页,当前为第2页。对计算机网络安全的几点思考全文共6页,当前为第2页。部分计算机网络用户却并未充分认识到他们在设置目录共享之后的后果,计算机网络中的多台计算机都能够对共享目录进行访问,这就导致其共享的信息面临着安全隐患。 (4)当前许多计算机网络用户的网络安全意识不强,这就导致计算机网络络中频繁出现黑客入侵他人计算机,盗用他人帐号非法使用网络、非法获取未授权的文件、通过邮件等方式进行骚扰和人身攻击等事件经常发生、屡见不鲜。 (1)计算机病毒攻击方式。计算机病毒主要是利用计算机网络和操作系统的薄弱环节来发起攻击。在当前的计算机系统尤其是在视窗操作系统中都会有一定的安全漏洞,特别是在计算机网络系统软件方面也都有一定的安全漏洞。所以,计算机病 就会通过计算机软件的破绽以及开发的过程中由于程序员的疏忽而留下的"后门"而大肆发起对计算机网络的攻击。 (2)网络攻击方式。网络攻击方式具有非常强的破坏力,主要包括电子邮件攻击、利用黑客软件攻击、拒绝服务攻击等几种。其中,拒绝服务攻击最为常见,这是一种通过攻击计算机主机、服务器、路由器、交换机等网络设备,导致被攻击的网络不能够继续提供服务的网络攻击方式。通常情况下,拒绝服务攻击表现为攻击者向被攻击网络发送巨量的数据导致其资源被消耗殆尽,从而导致用不能够进行访问,因此造成了拒绝服务的局面。 2. 从管理的角度加强计算机网络安全的建议 2.1 加强计算机网络用户的法制教育和德育教育 计算机网络用户在使用计算机的过程中出于兴趣和好奇而进行的相对计算机网络安全的几点思考全文共6页,当前为第3页。对计算机网络安全的几点思考全文共6页,当前为第3页。应的操作和验证,会给计算机网络的管理和监测造成许多困难。怎样去正确引导计算机网络用户就成为我们工作的重点之一,作为计算机网络管理人员,一定要想方设法加强计算机网络用户的法制教育和德育教育。 2.2 计算机网络管理员应该做好计算机操作系统权限管理以及密码管理 计算机网络管理员应该在保证计算机网络安全可靠运行的前提条件下,按照用户的实际需要,为所有的用户设置账户、密码和分配不同的网络访问权限,保证用户只能够在其特定的权限范围内进行计算机网络的访问,避免非法用户的访问。同时,计算机网络管理员应该以IP为目标或以注册的用户名为目标限制非法用户的网络访问,监控在线用户的网络访问,能责任落实到人。 3. 从技术的角度加强计算机网络安全的建议 3.1 安装防火墙,合理设置访问控制列表 在与计算机网络相连接的每一台计算机上,都必须安装防火墙,将防火墙作为内外网之间的一道牢固的安全屏障。在安装配置防火墙的过程中,一定要严格遵守下面的方法,从而确实保证计算机网络的安全: (1)按照计算机网络安全策略和安全目标,规划设置正确的安全过滤规则,对于IP数据包的下列内容进行审核:端口、源地址、协议、目的地址、流向等,严格禁止来自非法用户的入侵。总体上遵从"不被允许的服务就是被禁止"的原则。 (2)禁止对于HTTP、FTP等一系列的系统级别的服务的访问。计算机对计算机网络安全的几点思考全文共6页,当前为第4页。对计算机网络安全的几点思考
流密码算法是一种使用密钥和伪随机数生成器(PRNG)生成密钥流,将明文与密钥流进行异或运算来进行加密的算法。下面让我们来思考两个流密码算法的安全性和优缺点。 1. RC4(Rivest Cipher 4) 安全性: RC4 并不是一个非常安全的算法,存在诸如密钥长度不足、密钥流的偏置等问题,容易受到攻击。因此,现在不建议使用 RC4 算法。 优点: - RC4 算法非常简单,容易实现。 - RC4 算法加密速度非常快,适用于对实时性要求较高的数据传输。 缺点: - RC4 算法存在着许多安全问题,比如密钥长度不足和密钥流的偏置等问题。 - RC4 算法的密钥流是可预测的,这使得它容易受到攻击。 2. Salsa20 安全性: Salsa20 是一种安全性更高的流密码算法,被广泛应用于TLS、SSH、IPsec等安全协议中。它的安全性已被广泛认可。 优点: - Salsa20 算法具有非常高的安全性和抗攻击性。 - Salsa20 算法的加密速度比较快,适用于对实时性要求较高的数据传输。 - Salsa20 算法的密钥长度可以达到 256 位,可以满足更高的安全性需求。 缺点: - Salsa20 算法相对于 RC4 算法而言,实现起来稍微复杂一些。 - Salsa20 算法的性能在处理大量数据时可能会变差。 综上所述, Salsa20 算法相对于 RC4 算法而言具有更高的安全性和更灵活的密钥长度,但是实现起来稍微复杂一些,性能在处理大量数据时可能会变差。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hobby云说

你的鼓励将是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值