基于数据加密技术的计算机网络安全策略
2022-07-11周磊
周磊
(中央广播电视总台创发中心 北京市 100038)
1 引言
随着网络的发展和普及,人们的生活和互联网关联越来越紧密,包括线上搜索、电子购物、移动支付在内的诸多场景已经成为了人们生活的必须。对计算机系统而言,数据的价值始终超过系统基础设施本身,特别是用户隐私数据、系统核心业务数据等等。因此在进行网络计算机网络安全策略构建和防护时,数据的加密保护是核心环节。常见的数据加密技术包括非对称加密、对称加密、摘要加密等,面对不同的计算机网络安全防护场景而言,只有选择适当的加密技术,才能够在保证系统运行效率和业务应用成本的同时,确保系统安全和数据完整性。本文将围绕网络安全防护对数据加密技术的需求,设计适当的网络安全防护策略,期望本文的研究能够为计算机网络安全保障提供一定的帮助。
2 计算机网络场景中的典型加密需求
2.1 网络通信中校验性数据加密需求
在网络通信中,校验性数据的应用较为广泛。典型的校验性数据有:用户鉴权信息、系统身份令牌、网络设备识别信息、数据完整性校验信息等。该场景下的加密需求如下:
(1)不需确保信息可逆向解密。对于网络通信中的校验性数据,其加密需求并不是为了防止数据被窥探,加密内容本身也并不是为了对内容本身进行保护,而是出于隐匿敏感用户信息、实现系统设备数据隔离、防止信息篡改等目的。该场景下主要运用唯一性校验算法生成与原内容唯一对应的一串校验信息,通过该信息,内容的生成方可以和内容的存储和使用方进行相互比较,从而认证原信息的一致性。
(2)加密效率要求较高。为了加快业务访问速度,实现快速的认证和比对,因此此类加密需求对效率要求较高。
2.2 链路通信数据加密需求
链路通信数据加密是一种较为严格的网络数据加密。根据OSI 模型的可以看出,计算机网络通信链路较为底层,处于网络模型的物理层之上。而链路层主要负责对介质进行访问,并完成链路管理。链路通信数据加密实质上是对链路数据整体进行加密。其加密需求如下:
(1)加解密可逆。链路层的加密需要在每个节点还原数据,并在下一次转发时重新加密,因此需要实现加解密可逆。
(2)加密方式高效或不占用业务系统资源。由于链路层数据包含了很多数据转发信息和地址信息,因此对链路通信数据一旦参与加密,则必然会涉及到频繁的节点间解密和重加密。这就要求加密方法能够高效被执行,或不影响通信链路各个节点设备的性能,以确保通信效率。
(3)加解密方式全链路共享。由于加解密由整个链路同时参与,这就就要求整个链路的加解密方法应当被各个节点所共享,这就要求加解密方式全链路唯一。
2.3 网络通信中端到端加密需求
端到端加密是以一种较为上层的网络通信加密场景。在OSI 模型中,此类加密场景处于应用层或会话层。此类通信加密主要用于应对设备与设备的点对点通信,此时的链路层仅负责对数据进行转发和处理,不需要关注消息体的内容。因此该场景下的加密需求如下:
(1)对加解密性能不敏感。端对端的加密解密主要在高性能硬件设备上进行,因此其对加解密的性能损耗容忍度较高,对加解密性能不敏感。
(2)加解密可逆。由于端对端是对内容本身进行加密,防止窃取,因此加密方式需要可逆。
(3)加解密方式端对端唯一。由于端到端加密主要是出于业务需求,用于服务端到客户端的通信数据内容加密,因此通常需要考虑端与端之间的用户或者设备差异,以确保用户或设备数据解密方的唯一性。
2.4 计算机网络中数据存储加密需求
数据存储加密是计算机系统的广泛需求。对计算机网络而言,数据安全可靠的存储是网络系统和应用的基本诉求。该场景下的数据加密主要是为了防止数据物理窃取和篡改,确保计算机网络数据的安全性和可靠性。因此该场景下的加密需求如下:
(1)加解密可逆。数据存储加密主要是为了确保数据安全,在实践过程中加密数据通常需要解密后进一步使用。
(2)加解密性能不敏感。由于网络数据存储设备性能通常较强,因此对加解密的性能不敏感。
(3)对单一数据或有加解密方式唯一需求。由于计算机网络是多用户的,为实现用户间数据隔离,通常需要对不同用户提供不同的加解密手段和凭证。
3 网络通信数据加密方式设计
3.1 摘要加密算法
摘要加密算法主要用于对待加密数据进行特征提取,用于实现对身份的认证和对数据真实性可靠性进行认证。摘要算法的应用场景主要在于用户认证、设备唯一性识别、鉴权信息对比以及数据完整性校验,尽可能降低逆向解密的可能性。
MD5 是最基础的一种单向加密校验算法,通过对被加密内容进行循环计算,利用哈希值计算方法循环获得各段的哈希字节,最后形成一段可以代表完整信息的校验信息。然而MD5 长度只有128 位,因此理论上总会存在相同的两个MD5 值,因此虽然该方式不可逆,也能够一定程度上获取到内容特征,但由于MD5 存在碰撞攻击的可能,因此通常仅被要用作信息校验,即判断信息是否被更改。
SHA 是一种严格的散列函数,目前已经出现了SHA128、SHA256、SHA512 等不同复杂度的哈希算法。由于散列函数长度较长,因此即使其也最终会被碰撞攻击所攻破,获得一个与目标值完全相同的散列值,但由于长度越长难度越高,因SHA256 及以上的哈希算法此目前相对可信,常被用作签名校验。
HMAC 是一种基于MAC 算法的摘要算法。该算法利用单向散列函数构建摘要信息。如图1 所示,HMAC 算法接受消息Message 和密钥Key 作为输入,并最终输出一个摘要信息。整个HMAC 可视作黑盒。但在黑盒的内部,实质上具备较复杂的运算过程,具体如下:
图1: HMAC 算法流程
(1)算法首先需要判断密钥key 长度是否与散列函数分组长度一致,若不足,则用0 补足位数,赋值给key;若超出,则利用hash 函数对其处理后,取其散列值赋值给key。
(2) 构 建 一 个 比 特 序 列ipad: 通 过 不 断 循 环00110110,直到获得与散列值长度相等的一个比特序列。
(3)利用前序产生的密钥key 与比特序列ipad 进行异或计算,最终获得一个与密钥特征相关的ipadkey。
(4)将ipadkey 附加在message 的头部,并将该信息利用单向散列函数进行散列值计算,获得message1。
(5) 同 时 构 建 比 特 序 列opad: 通 过 不 断 循 环01011100,直到获得与散列值长度相等的一个比特序列。
(6)利用前序密钥key 与opad 进行疑惑计算,获得一个opadkey。
(7)将opadkey 附加在message1 头部,构件用于散列计算的新消息,并同样利用散列函数对其进行计算,最终获得的就是HMAC 加密后的散列特征值。
3.2 对称加密算法
对称加密算法是一种加密和解密密钥一致的算法。该算法实质上是一种迭代型的分组加密算法,根据其密钥长度的不同,可分为AES128、192、256 等。密钥长度越长,加密密钥的逆向复杂度越高,因此破解尝试的难度越大,加密的可靠性越强。由于同时由于AES 加密使用的是轮变换方法,密钥越长,则轮数越大,密钥矩阵数越大,则其解密性能要求越高。以128 位密钥为例,其分组映射后的状态矩阵为4*4 矩阵,如表1 所示。而在其解密过程中,则反向将密文映射到同一状态矩阵进行解密。其解密过程可见图2 所示。其中轮密钥为每轮加密锁用密钥。解密时反向调度密钥,通过异或操作即可最终获得原文。该过程重复操作极多,但核心操作为异或。
图2: AES128 解密过程
表1: 状态矩阵
以AES 为代表的对称加密算法常被用于同一体系下的加解密过程,例如链路加密或加密环境单纯的环境中。在现代计算机体系中,若用计算机软件执行重复性的异或操作比较消耗资源。因此在通信网络链路加密中,或特殊的通信环境下,常常将该加密过程通过FPGA 电路进行实现。该逻辑电路在执行对称加密时效率较高,一方面可规避频繁加解密对节点设备性能的损耗,另一方面也能够通过可信硬件承载密钥,避免密钥被篡改导致链路通信异常,或密钥被窃取导致数据泄露。
3.3 非对称加密算法
非对称加密算法实质上是一种利用密钥对对数据进行加解密的方法。对称加密算法仅有一个密钥,加解密双方所使用的密钥完全一致,这就使得一旦该密钥遗失(即被公开获知),则加密数据就可以被任何人解密、窃取、篡改并重加密。因此对称加密只能在双方均可信,但对通信过程不可信时应用。为应对甲方与乙方分别多对多的场景下,对加密数据的区分和隔离的需求,非对称加密使用密钥对完成加密和解密。密钥对中的公钥是公开的,任何人和设备都可以获取该密钥,因此该密钥的传输不怕被窃听。而私钥则保存在设备本地,通过安全的方式进行存储。当需要双方通信时,持有公钥的一方通过公钥进行加密,将密文发送至持有私钥的一方,由其通过私钥进行解密,即可获得正确消息。反之,持有私钥的一方,利用私钥加密信息,并发给持有公钥的一方,由其通过公钥解密,即同样获得密文。其中私钥和公钥一一对应,可相互进行加解密认证。为进一步确认加密信息的可信度,持有私钥一方通常会利用私钥再对消息进行签名,获得签名信息。公钥持有方可通过公钥校验信息,并进行解密。由此观之,非对称加密更适宜于应用层的端对端加密。
4 基于数据加密的计算机网络安全策略
为实现更为全面的计算机网络数据安全防护,本次设计中将链路通信、系统应用、数据存储作为安全防护的关键节点,并选择适当的加密方式和安全防护策略。在最简模型下,为实现服务器与客户端通信的安全防护,可设计如图3 所示总体安全防护策略。
图3: 总体安全防护策略示意图
4.1 通信链路层数据加密策略
为提高链路安全性,可考虑在链路层增加对称加密方式。考虑到链路节点设备性能有限,为提高数据吞吐,可增加FPGA 硬件加解密模块,通过逻辑电路对加解密进行实现,其中硬件加解密密钥可预先协商一致。由于硬件本身安装在通信链路上,因此密钥相对安全,进而可推论链路数据加解密过程安全。
链路层数据加密对于应用层而言完全透明,系统应用层不需了解链路层加密的逻辑,对应用层数据包而言,前后始终为明文。这一方式能够使得链路本身安全可靠,若为实现安全性更高的加密逻辑,可通过定制加解密硬件实现链路层的特殊加密,其加密的复杂性可根据实际需要定制。
4.2 系统应用层数据加密策略
在系统应用层,为满足与不同客户机的交互,这里选择非对称加密作为应用层的互通加解密方式。对于常规的网络服务而言,客户机分散在各处,由不同的人和组织所控制,其安全性无法完全保障。而服务器硬件本身可以配置防火墙、本地安全防护策略以及杀毒软件等多重防护,因此可以将服务器环境视作相对安全的环境,存储在服务器上的信息也相对更加可信。此时若采用对称加密,则很有可能在密钥交换过程中被第三人截获信息,从而篡改与客户机的通信数据,引入不安全因素。因此这里采用非对称加密,由服务器生成公钥和私钥。服务器通过公开渠道将公钥分发给指定客户机,由其存储在本地。当需要进行交互时,服务器可通过存储在自身的私钥对数据进行加密并传输至客户机。此时客户机必须通过相应的公钥进行解密,才能获得数据。再反向通信过程中,客户机通过私钥加密,发送至服务器后,服务器通过公钥解密,获得最终消息。这一过程能够有效避免中间人截取密钥窃取数据。系统应用层所使用的非对称加密交互流程如图4 所示。
图4: 非对称加密交互流程
4.3 网络数据存储加密策略
如图4 所示,网络数据存储加密主要是在相对可信的环境下,对存储数据进行加密。加密的核心目标是对数据物理存储信息进行防护,确保在物理数据被窃取时,窃取者无法对数据进行还原,确保数据安全。同时服务器或客户机性能通常有一定保障,因此对称全文加密在这里较为适用。
5 小结
本文结合计算机网络安全防护对于数据加密技术的诸多需求,对可用于网络安全防护的数据加密技术进行选择,特别选择了摘要信息算法、对称加密算法、非对称加密算法进行了研究。此后基于上述加密算法的特性,对计算机网络安全防护策略从通信链路加密、应用层数据加密和网络数据加密等角度进行设计。本文所涉及的网络安全策略兼顾了通信效率、数据完整性和数据安全性,能够广泛适用于多种计算机网络应用场景的安全防护。