互联网安全性问题
谈到互联网安全,会想起中间人攻击,DNS劫持,代理服务器等,对于这么多的危险,怎么保证我们的系统真的足够安全呢?
一个有效的方法:End to End Encryption(端对端加密)
怎么去理解端对端加密呢?核心有如下两点:
- 客户端和服务端交换期间,数据是加密的
- 既然加密,就用到加密的key,每个客户端使用到的加密key都应该不一样
解决方法:
- 模拟Https的加密流程,生成一个sessionKey,用于加密交互时的数据
- 这种方式经过骇客的评估,确实有效地防止被攻击
流程
- 前端请求后端拿到public key
- 前端生成一个16位的cKey(UUID),用public key加密,传给后端
- 后端拿到加密内容后,用private key解密,拿到cKey
- 后端又生成一个16位的sKey(UUID),然后两个key一起做异或,生成一个sessionKey
- 将cKey,sKey,sessionKey保存到DB,而且数据要进行加密的,并且有一个sessionId(UUID)作为唯一标识,sessionId不用加密
- 然后用cKey加密sKey和sessionId返回给前端,前端用自己的cKey解密,拿到sKey
- 然后前端做一次异或,生成一个sessionKey保存在App的runtime
- 每次请求的参数,以userId=1&name=AA这样的一个字符串用sessionKey进行加密,然后sessionId放在请求的header中,
- 后端拿到数据后,先根据sessionId找到数据库对应的sessionKey 和 IV,然后解密这两个值,然后再用这另个值来解密encData。
问题一:End to End Encryption 过程中,需要拿到后端的公匙,可不可以再改进?
问题关键:
- 现在服务端的public key、private key是固定的,放在服务器的一个安全机器上,能不能将其改成可变的?
解决思路:
- 每次用户需要生成sessionKey的时候,先用deviceId作为key,在redis中查查,看有没有对应吖pubic key、private key,如果有就拿出来用,如果没有就重新生成一对。
- 因为deviceId每台机器都不一样,所以生成的public key、private key是不一样的。
问题二:即使做好了加密,如果被人拦截到请求的所有数据,怕不怕被用来重复提交
问题关键:
- 这种敏感的请求,应该有个超时时间来记录什么时候无效
- 同时,不能重复使用
解决思路:
- 客户端发起请求时,生成一个timeStemp,这是当前提交的时间。
- 服务端拿到请求后,首先检查timeStemp,跟当前时间比较,看是否超过5分钟,如果超过就是无效的,如果不超过就是有效的。
- 那在这5分钟的时间内,怎么保证不会被重复请求呢?
- 使用redis做分布式锁,设置一个clientRef(16位UUID)作为key,在第一次请求时,看拿不拿得到redis的一个key。
- 如果拿得到,证明已经执行过了,可以直接抛异常。
- 如果拿不到,证明还没有执行过,那就执行请求。
- key的超时时间是5分钟,5分钟后自动删除,这样就可以补充这5分钟的空隙了。
问题三:如果跟第三方系统交互,要防止请求数据被中间人篡改了,怎么办?
关键问题:
- 怎么检查被篡改过?数字签名
解决思路:
- 先跟第三方约定数字签名的加密算法,如:SHA256
- 第三方请求过来时,生成timeStamp,clientRef,以及request json body一起组成一串字符串,用算法进行加密,名字叫signature(数字签名)
- 第三方请求中,header中,放timeStamp,clientRef,signature
- 我们服务端收到请求后,将timeStemp,clientRef,request json body,以相同的规则,组成字符串,再用算法进行加密
- 加密后的值和signature比较,看是否相等
- 如果相等就没问题,不相等就抛异常
如何改进:
- 可以从加密算法中改进,可以用Hash,对称加密,非对称加密(事先要把public key的证书给第三方)
- timeStamp,clientRef,signature,组成字符串的规则可以跟第三方约定好,保证不会那么容易被猜到
相关推荐
计算机网络安全性分析中存在的一些挑战是计算机网络中的安全性问题非常复杂,例如,计算机病毒、木马程序、黑客攻击等,这些安全性问题可以对计算机网络的稳定性和安全性产生严重的影响。因此,计算机网络安全性分析...
网上银行 网络 支付 安全性问题 我国网上银行安全性问题分析
然而,这同时也提高了对网络安全隔离能力的要求,因为网络切片技术的引入使得网络环境变得更加复杂。切片间的互操作性、切片内的安全威胁、以及切片与外部网络间的交互都需要特别的安全措施。 例如,非法访问和资源...
曾经,许多的组织因为在使用网络的过程中未曾意识到网络安全性的问题,知道受到了资料安全的威胁,才开始重视和采取相应的措施。可以举例我们身边的例子,如网上银行。用户可能没有意识到网络是木马程序的现象,未经...
有关加强互联网安全性稳定性和灵活性的计划 在互联网发展的今天,安全性、稳定性和灵活性是互联网健康发展的关键要素。ICANN 作为互联网域名系统的核心机构,肩负着维护互联网安全性、稳定性和灵活性的重要职责。...
1.机构人员:电信和互联网企业在网络数据安全合规性评估中应明确数据安全管理责任部门,负责数据安全管理工作,包括制定数据安全管理制度规范、协调强化数据安全技术能力、开展数据安全合规性评估、安全审计管理、...
然而,云计算在带来便利的同时,也引发了诸多网络安全问题,尤其是针对客户端和服务器端信息的安全性: 1. **客户端信息的安全风险**:云计算依赖于广泛的网络分布,任何接入互联网的设备都可能成为攻击目标。随着...
总结了目前电梯硬件中存在的安全问题、视频、数据传输线路的安全性问、基本网络安全问题
但是,这种模式下的网络安全性问题需要给予足够的关注和研究。 由于云计算采用的是虚拟化技术,虚拟环境、服务模式和数据管理等方面可能存在缺陷。例如,在虚拟化环境下,多个用户的数据可能共享同一物理资源,从而...
电信和互联网企业网络数据安全合规性评估要点.pdf
目前,随着科学技术和社会经济的飞速发展,计算机和网络的普及程度...不断的增加,因此,要想确保计算机能够在安全的环境下服务于人们的生活、学习,就必须要加强对计算机安全性问题的研究,并要做好相关的 防范措施。
在现代信息技术迅猛发展的背景下,计算机网络作为信息传播的重要载体,其安全性问题显得尤为突出。计算机网络安全性分析建模研究,旨在通过建立数学模型的方式,对网络中的安全特性进行深入研究,评估潜在风险,并...
随着网络技术的飞跃发展,互联网的使用更加普及与广泛,安全问题成为了人们关注的重要课题。而网上的信息都保存在数据库中,其中不乏企业中的重要信息。如果数据库一旦被黑客入侵破坏,就会带来不可估量的损失。因此,...
计算机网络安全性是当今信息化社会的关键议题,它涵盖了网络信息的完整性、保密性和不可篡改性。随着计算机技术的广泛应用,网络安全问题日益凸显,不仅影响到个人隐私,还对社会稳定和国家安全构成潜在威胁。 首先...
心跳包技术在核电仪控网络安全性设计中的应用研究 心跳包技术是一种重要的手段来提高核电仪控网络的安全性。通过心跳包数据,可以判断网络节点之间的连接状况,从而提高总线网络通信的安全性。本研究设计了一种改进...
无线网络技术的安全性问题及其安全策略研究.doc
尤其是HFC系统(即综合数字服务宽带网接入技术)的安全性问题日益突出,如黑客可以通过木马程序入侵,窃取用户信息,并通过信号跟踪破坏网络系统。为了应对这些问题,技术上需对用户访问内容进行加密,使用PKI技术...
根据CNNIC于2006年发布的中国互联网发布的19次报告显示,有62.1%的用户质疑网络安全性问题。在Internet上进行的电子商务交易过程中,最核心和关键的问题就是交易的安全性,由于Internet本身的开放性,使网上交易...
电信和互联网企业网络数据安全合规性评估要点(2020年).pdf