等保2.0测评深入理解—Linux操作系统(九)

admin 2024年2月15日20:21:18评论8 views字数 2672阅读8分54秒阅读模式

知识宝库在此藏,一键关注获宝藏

续上文……

七、数据完整性

a)应采用校验技术或密码技术保证重要数据在传输过程中的完整性,包括但不限于鉴别数据、重要业务数据、重要审计数据、重要配置数据、重要视频数据和重要个人信息等

针对测评对象为操作系统,我们需要考虑的应为鉴别数据、重要审计数据、重要配置数据等。

那么我们都知道Linux 服务器采用SSH进行远程管理,那么为什么SSH协议能保证数据的完整性呢?我们可以通过下面这个通信过程了解一下。

一个加密通信过程的演化,SSL原理(原文:https://blog.csdn.net/xiaopang_yan/article/details/78709574)

step1:“客户”向服务端发送一个通信请求

“客户”->“服务器” :你好

step2:“服务器”向客户发送自己的数字证书。证书中有一个公钥用来加密信息,私钥由“服务器”持有
“服务器”->“客户”:你好,我是服务器,这是我的数字证书
step3:“客户”收到“服务器”的证书后,它会去验证这个数字证书到底是不是“服务器的”,数字证书有没有什么问题,数字证书如果检查没有问题,就说明数字证书中的公钥确实是“服务器”的。检查数字证书后,“客户”会发送一个随机的字符串给“服务器”用私钥去加密,服务器把加密的结果返回给“客户”,“客户”用公钥解密这个返回结果,如果解密结果与之前生成的随机字符串一致,那说明对方确实是私钥的持有者,或者说对方确实是“服务器”。
“客户”->“服务器”:向我证明你就是服务器,这是一个随机字符串
“服务器”->“客户”:{一个随机字符串}[私钥|RSA]
“客户”用公钥解密随机字符串
step4:验证“服务器”的身份后,“客户”生成一个对称加密算法和密钥,用于后面通信的加密和解密。这个堆成加密算法和密钥,“客户”会用公钥加密后发给“服务器”,别人截获了也没用,因为只有“服务器”手中有可以解密的私钥。这样,后面“服务器”和“客户”就都可以用对称加密算法来加密和解密通信内容了。
“客户”->“服务器”:{对称加密算法和密钥}[公钥|RSA]
“服务器”->“客户”:{OK,已经收到你发来的对称加密算法和密钥!有什么可以帮到你的?}[密钥|对称加密算法]
“客户”->“服务器”:{我的帐号是aaa,密码是123,把我的余额的信息发给我看看}[密钥|对称加密算法]
“服务器”->“客户”:{你好,你的余额是100元}[密钥|对称加密算法]

……   //继续其他通信

问题:

情况1:
在检查完证书后,“客户”发送一个随机的字符串给“服务器”去用私钥加密,以判断对方是否真的持有私钥。但是有一个问题,“黑客”也可以发送一个字符串给“服务器”去加密并且得到加密后的内容,这样对于“服务器”来说是不安全的,因为黑客可以发送一些简单的有规律的字符串给“服务器”加密,从而寻找加密的规律,有可能威胁到私钥的安全。所以,“服务器”随随便便用私钥去加密一个来路不明的字符串并把结果发送给对方是不安全的。
解决方案:
每次收到“客户”发来的加密的字符串时,“服务器”并不是真正的加密这个字符串本身,而是把字符串进行一个hash计算,加密这个字符串的hash值(不加密原来的字符串)后发送给“客户”,“客户”收到后解密这个hash值并自己计算字符串的hash值然后进行对比是否一致。也就是说“服务器”不直接加密收到的字符串,而是加密这个字符串的hash值,这样就避免了加密那些有规律的字符串,从而降低被破解的几率。“客户”自己发送的字符串,因此它自己可以计算字符串的hash值,然后再把“服务器”发送过来加密的hash值和自己计算的进行对比,同样也能确定对方是否是“服务器”。
情况2:
在双方的通信过程中,“黑客”可以截获发送的加密了的内容,虽然他无法解密这个内容,但是他可以捣乱,例如把信息原封不动的发送多次,扰乱通信过程。
解决方案:
可以给通信的内容加上一个序号或者一个随机的值,如果“客户”或者“服务器”接收到的信息中有之前出现过的序号或者随机值,那么说明有人在通信过程中重发信息内容进行捣乱,双方会立刻停止通信。有人可能会问,如果有人一直这么捣乱怎么办?那不是无法通信了? 答案是的确是这样的,例如有人控制了你连接互联网的路由器,他的确可以针对你。但是一些重要的应用,例如军队或者政府的内部网络,它们都不使用我们平时使用的公网,因此一般人不会破坏到他们的通信。 
情况3:
在双方的通信过程中,“黑客”除了简单的重复发送截获的消息之外,还可以修改截获后的密文修改后再发送,因为修改的是密文,虽然不能完全控制消息解密后的内容,但是仍然会破坏解密后的密文。因此发送过程如果黑客对密文进行了修改,“客户”和“服务器”是无法判断密文是否被修改的。虽然不一定能达到目的,但是“黑客”可以一直这样碰碰运气。
解决方案(保证了数据完整性):
在每次发送信息时,先对信息的内容进行一个hash计算得出一个hash值,将信息的内容和这个hash值一起加密后发送。接收方在收到后进行解密得到明文的内容和hash值,然后接收方再自己对收到信息内容做一次hash计算,与收到的hash值进行对比看是否匹配,如果匹配就说明信息在传输过程中没有被修改过。如果不匹配说明中途有人故意对加密数据进行了修改,立刻中断通话过程后做其它处理。

等保2.0测评深入理解—Linux操作系统(九)

总结:
首先,SSH会使用加密算法来将数据进行加密,就像把信封上的信写成密码一样,这样只有合法的接收方才能读懂里面的内容。这样就能防止数据在传输途中被别人偷窥或修改。
其次,SSH还会对数据做数字签名,就像在信封上盖上自己的印章一样。这可以帮助接收方验证数据的完整性和真实性,确保数据没有被偷偷篡改。
另外,SSH还会使用一种叫做消息鉴别码的方法来检查数据的完整性。这个鉴别码就像是一个特殊的密码,只有知道密码的人才能验证数据是否正常,防止数据在传输过程中被损坏或修改。

通过这些方法,SSH能够确保通信过程中数据的完整性。它可以保护数据不被窃听、篡改或损坏,并确保只有合法的接收方能够读取和理解数据。

所以通过SSH协议进行远程管理的话,鉴别数据以及传输过程中的配置数据,这些完整性都能得到保障。另外审计数据一般是通过syslog协议发送到日志服务器上,syslog协议并不提供保密性和完整性的保证。它主要用于系统日志的传输和存储,并没有内置的加密或签名机制来确保传输的日志消息的机密性和完整性。

原文始发于微信公众号(等保不好做啊):等保2.0测评深入理解—Linux操作系统(九)

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年2月15日20:21:18
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   等保2.0测评深入理解—Linux操作系统(九)http://cn-sec.com/archives/2172639.html

发表评论

匿名网友 填写信息