声明!
学习视频来自B站up主 泷羽sec 有兴趣的师傅可以关注一下,如涉及侵权马上删除文章,笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团队无关,切勿触碰法律底线,否则后果自负!!!!有兴趣的小伙伴可以点击下面连接进入b站主页B站泷羽sec
通讯协议所潜在的安全问题
保密性
- 是什么东西?
- 概念上指数据在传输和存储的过程中,确保信息只能被授权的用户访问,而未授权的用户无法获取,传输途中保证数据不被篡改和泄露。可以理解战争时期的电报加密,如果我党的加密方式被敌方知道了,那么将会对我们后续的计划内容的进行窃取甚至是伪造信息。
- 为什么这么做?怎么做?
- 目的
- 为了防止数据泄露,保证信息的机密性。
- 实现方法
- 可以使用一些加密的协议和算法,对访问的用户进行身份验证。
- 目的
- 所存在的问题?
- 协议
- 例如一些不安全的传输协议
HTTP
和他的安全版加密传输协议HTTPS
。未加密的协议在传输途中数据容易被窃听,且是明文传输,容易造成用户名密码泄露。HTTPS
加密协议又依赖SSL/TLS
协议来加密数据,依赖密钥的有效性,如果密钥管理不当或者泄露等会使通讯的保密性受到威胁,且密钥的分发过程中如果被窃取和篡改那么后续的通讯也会不再安全
- 例如一些不安全的传输协议
- 安全的加密算法
- 例如早期的加密算法DES,长度较短,容易受到暴力破解,可使用更高级的加密算法来减少被爆破的可能为什么这么说?当算力达到了一定高度,什么密码都不是问题。且有些加密操作依赖安全协议(如 TLS、IPSec)如果协议出了漏洞那么就可能被利用,包括一些加密依赖私钥解密。私钥被窃取那么将会失去保密性。
- 协议
完整性
- 是什么东西?
- 概念上指数据在传输和存储中保证其原有的内容不变,保证其的真实性和一致性。例如可以用现在
新闻学
来理解,完整性可以为一个事件的真实性和一致性是一个客观的事实,而不是被各大媒体添油加醋加上大量的主观想法,这样就破坏了他的完整性。
- 概念上指数据在传输和存储中保证其原有的内容不变,保证其的真实性和一致性。例如可以用现在
- 为什么这么做?怎么做?
- 目的
- 为了数据(事件)数据到达手中的时候不被篡改,且内容真实性和一致性(事件客观)。
- 实现方法
- 通过哈希算法生成数据的唯一指纹,例如MD5和SHA-256
- 目的
- 所存在的问题
- 重放攻击:截取用户请求来进行冒充用户登录
- 中间人攻击:伪造通讯双方的中介,如未知的无线网络,攻击者可以进行arp欺骗来获取双方通讯的请求包,甚至进行DNS劫持。
身份验证
- 是什么东西?
- 身份验证是指确认通信方身份的过程,确保访问系统或资源的用户是合法授权的人员。就像确认对接人身份一样可以进行暗号(
密码
)对接或者是一些物品(特征
)等。
- 身份验证是指确认通信方身份的过程,确保访问系统或资源的用户是合法授权的人员。就像确认对接人身份一样可以进行暗号(
- 为什么这么做?怎么做?
- 目的
- 防止未授权用户获取敏感信息或者进行不当操作,确保系统的安全性和资源保护。
- 实现方法
- 可通过密码验证、生物特征验证(特征需要有唯一、稳定、公私钥验证
- 目的
- 存在的问题
- 假冒身份:例如钓鱼网站获取用户信息,假冒用户进行一些操作。
- 身份验证漏洞:例如过于简单的加密方式,容易受到暴力破解
- 中间人攻击:前面说到的未知的无线网络,攻击者可以进行arp欺骗来获取双方通讯的请求包,甚至进行DNS劫持。
可用性
- 是什么东西?
- 指系统或服务在需要时能够正常工作,确保用户可以随时访问资源和执行操作。意味着哪怕在高负载的情况下用户也依然能够访问和使用服务。例如淘宝和银行这大型系统服务
- 为什么这么做?怎么做?
- 目的
- 确保系统高可用性提高用户体验、降低停机带来的损失,并增加用户对系统的信任。毕竟你也不想银行转账,钱没了又没到账吧。
- 实现方法
- 提高冗余性,相当于备用方案或者备用服务器一样,在网络设备中使用链路聚合也是为了冗余性,当一条线路出现故障,其他线路依旧可以正常工作,替代故障线路进行数据传输
- 负载均衡:通过多服务器备份和网络数据备份(每个服务器都有相应的资源)来进行均衡请求。提高响应速度的同时,当一台服务器故障,其余服务器也可以正常接受请求。
- 定时备份、实时监控
- 目的
- 存在的问题
- 拒绝服务攻击(DoS/DDoS):通过发送大量的请求来耗尽服务器资源,使合法用户无法访问,扩展:例如TCP/UDP三次握手接受到响应包时不进行回应,导致服务器等待回应请求而占用这部分资源
- 协议问题:例如一些协议存在设计缺陷,导致一些特定情况下出现故障,影响可用性。例如协议死锁、资源泄露都可以导致系统无法正常运行
- 单点故障(SPOF):某个关键组建故障导致整个系统不可用
- 资源不足、软件故障(协议)
协议实现和设计问题
- 设计问题(设计)
- 指在协议制定的过程中未充分考虑到安全因素或未能严格规范数据的传输方式,导致协议在安全性和可靠性上存在不足。导致缺乏对输入数据的类型和长度的限制、未包含足够的身份验证和加密机制,以及复杂的设计难以实现正确的安全防护(突然想起ISO参考模型)。协议设计中的这些不足会使系统暴露在潜在的攻击中,如缓冲区溢出、中间人攻击和兼容性问题等。
- 升级带来的风险(设计)
- 当通讯协议进行升级或者增添功能时会迎来新的攻击面,或者旧版协议和新版协议之间的兼容问题可能导致的安全漏洞
- 当进行升级时,因为漏洞导致的安全问题将会影响后续更新的全部设备。
- 编程问题(实现)
- 如编程未按照规范进行充分的测试和代码审查,导致发生的堆栈溢出、内存泄露等程序错误都有可能被攻击者利用从而破坏系统的安全性。
- 第三方库和组件(实现)
- 行许多通讯协议依赖第三方库和组件,如果这些第三方库和组件存在安全漏洞,将会影响到通讯协议的安全性。类似的一个Liunx一个开源组件被第三方投入恶意代码,导致众多发行版接连使用。
移动通讯协议安全问题
- 移动设备通讯方式
- 通常过无线网络进行通讯大大提高的移动性和便携性
- 不同的应用往往使用不同的通讯协议来与服务器满足特地需求
- 引发的安全问题
- 通常使用无线网络进行这使得通讯更容易受到窃听、干扰、攻击。无线网络信号可以在一定范围内被接受,攻击者也可以通过无线信号获取通讯内容,设备的移动性意味着会连接到不可信的无线网络,包括不可信的wifi和伪装基站(4G网络会出现,后续的5G网络使用了去中心化架构,但是攻击者如果破坏了边缘的设备也将会影响整个网络)
- 如果移动应用在开发时使用特定的协议与服务器进行通讯和进行相关服务时没考虑到安全问题,可能会导致通讯协议被滥用和攻击。例如泄露用户敏感信息或者被恶软件利用。移动应用的更新和管理也会导致相关的问题,如更新不安全将会被攻击者篡改从而安装恶意软件。例如不知名网站下载的程序可能就被植入大量广告木马。导致原本应用变成传播病毒的途径。
物联网(IoT)通讯协议安全问题
- 设备数量众多
- 在物联网中包含大量的设备,这些设备的管理和安全是一个巨大的挑战,如果其中一个设备被攻击将会影响到整个物联网的安全。加上物联网设备的计算能力有限,多数为单任务处理,计算能力有限难以实现复杂的安全机制
- 协议和制造商多样性
- 物联网设备可能使用多种通讯协议(如Wi-Fi、蓝牙、Zigbee、LoRaWAN等),每种协议都有其特定的安全特性和漏洞。这导致了对于不同协议安全设置复杂化。
- 而且制造厂商众多,各自对安全的标准不一致,固件和系统的版本也会有所差异这导致了其安全性能参差不齐。
工业控制系统通讯协议安全问题
- 实时性与安全冲突
- 工业控制系统(ICS)通常对实时性有很高的要求,这可能与安全机制的实施产生冲突。一些安全措施,如加密和认证,可能会引入额外的处理时间,导致通讯延迟,影响系统的实时性能。
- 与传统IT系统的融合带来的风险
- 随着工业互联网的发展,工业控制系统越来越多地与传统的IT系统进行融合。这使得工业控制系统面临来自传统IT系统的安全威胁,如病毒、恶意软件等。
- 协议的安全性问题
- 工业控制系统协议在设计时往往侧重于实时性和可用性,而缺乏足够的安全性考虑。例如,Modbus协议和S7协议等常见的工业网络协议存在严重的安全问题,缺乏认证、授权和加密,以及功能码滥用等问题,这将导致数据容易被窃听和篡改。