2023年7月27日发(作者:)
如何理解数据的保密性与完整性?如何保证数据的保密性与完整性?⽂章⽬录前⾔在GB/T 22239-2019《信息安全技术 ⽹络安全等级保护基本要求》中对不同级别的信息系统都提出了数据完整性和数据保密性的要求,安全通⽤要求、云计算安全扩展要求、移动互联安全扩展要求、物联⽹安全扩展要求、⼯业控制系统安全扩展要求要五⼤部分均涉及数据保密性和数据完整性。很多⼩伙伴不理解数据保密性和数据完整性到底是什么,本⽂主要解释以下两个问题。1. 如何理解数据的保密性与完整性?2. 如何保证数据的保密性与完整性?第⼀章、数据这⾥我们说的数据指的是所有能输⼊计算机并被计算机程序处理的符号的介质的总称,是⽤于输⼊电⼦计算机进⾏处理,具有⼀定意义的数字、字母、符号和模拟量等的通称。第⼆章、OSI七层⽹络模型&TCP/IP四层模型在学习数据的保密性和完整性之前,先了解下数据在OSI七层模型的每⼀层是如何存在的以及数据在每层之间是如何传输的。注意:物理层并不是指具体的物理设备,也不是指⽤来传输信息的物理媒体,指的是传输原始⽐特流的物理连接,上图只有物理层是实线连接的。TCP/IP四层模型是OSI七层模型简化⽽来的,两种模型对应关系见下图。介绍完两种模型,接下来就进⼊正题了,数据在每层是如何传输的呢?2.1 数据封装与解封数据封装:数据的封装是⼀个⾃上⽽下的过程,我们在客户端应⽤(⽐如微信)上发送⼀个“hello”,数据流经每⼀层时是怎样变化的呢?⾸先⼀个⽤户在发给电脑⼀个请求,先传给应⽤层应⽤将数据处理完,之后交给传输层加好TCP或者UDP的报头,传给⽹络层再添加⼀层IP的报头,再交给数据链路层添加mac的头部和尾部,最后送到物理链路层转为⽐特流进⾏传出,这就是封装过程。数据解封:数据封装的逆过程,数据的解封是⼀个⾃下⽽上的过程。上图可以看出,每⼀层数据是由上⼀层数据+本层⾸部信息组成的,其中每⼀层的数据 ,称为本层的协议数据单元 ,即PDU。2.2 应⽤层应⽤层功能:应⽤层:为⽤户的应⽤提供服务并⽀持⽹络访问;会话层:负责管理⽹络中计算之间的通信,提供传输层不具备的连接相关功能;表⽰层:负责转化数据格式,并处理数据加密和数据压缩。即负责⼀切与应⽤程序相关的功能我们在应⽤软件(如微信、qq等)⽤户端发出⼀条消息“hello”,应⽤层将这条消息处理为⼀个五层的数据包,这⾥我们可以认为数据包的内容为我们发出的“hello”应⽤消息。2.3 传输层传输层功能:提供应⽤程序接⼝,为⽹络应⽤程序提供⽹络访问的途径;提供可以从多个应⽤层序接收消息的功能(多路复⽤),同时也提供可以把消息分发给应⽤程序的功能(多路分解);对数据进⾏错误检测、流量控制。即为上层提供端到端的(⼀台主机到另⼀台主机)、透明的、可靠的数据传输服务。所谓透明的传输是指在通信过程中传输层对上层屏蔽了通信传输系统的具体细节。应⽤层将消息封装成数据包后,将数据包传递到传输层,传输层会对五层数据包进⾏进⼀步的封装,即为该数据包添加⼀个TCP/UDP头部(TCP或者UDP⼆者其中⼀个,具体取决于软件选择那个协议),其中含有源端⼝号和⽬的端⼝号,源端⼝号即为软件使⽤的上⼀层协议的端⼝号,⽬的端⼝号为接收数据⽅接收该数据的端⼝号。例如当我们⽤浏览器访问⼀个https开头的⽹页时,实际上我们是在访问对⽅服务器的443端⼝。2.4 ⽹络层⽹络层功能:该层解决数据由⼀个计算机的IP如何路由到⽬标计算机的过程规范。即通过路由算法,为报⽂或分组通过通信⼦⽹选择最适当的路径, 确保数据及时传送。⼀个⽹络⾥有那么多主机,我们的计算机消息发送出去后,数据包怎么才能成功的传输到我们指定的主机上呢?在发送数据时,⽹络层会对该数据包添加⼀个IP包头,其中含有数据包的源IP和⽬标IP,数据传输的过程中就是根据这层的⽬标IP找到需要通信的主机。前三层的数据包很重要,在⼀个包中称为上三层数据,是最有价值的包,不能被别⼈篡改,⼀旦被篡改就有可能造成通信出错或者信息泄露。(例如本来A发给B的数据,上三层数据被篡改后发给了C)接下来的两层在⽹络中也是必不可少的,虽然上三层在数据包中指明了传输的路线,但是上三层数据包是⽆法通过介质进⾏传播的(例如⽹线、WiFi、光纤),那如果数据包想过介质进⾏传播的话怎么办呢,这就需要⽤到下⾯的两层了。2.5 数据链路层数据链路层功能:为了保证传输,从⽹络层接收到的数据被分割成特定的可被物理层传输的帧。帧是⽤来移动数据的结构包,它不仅包括原始数据,还包括发送⽅和接收⽅的物理地址以及检错和控制信息。即通过各种控制协议,将有差错的物理信道变为⽆差错的、能可靠传输数据帧的数据链路。当上三层的数据包到了数据链路层,就意味着这个信息已经成功到达计算机的⽹卡,下⼀步就可以通过⽹线传输了,这时我们的信息就需要⼀个载体来进⾏传输,于是在第⼆层会给上三层数据包加上⼀个⼆层头部(MAC⼦层)和⼆层尾部(FCS)。2.6 物理层物理层功能:为数据端设备提供传送数据通路、传输数据。所谓的物理层,是指光纤、电缆或者电磁波等真实存在的物理媒介。这些媒介可以传送物理信号,⽐如亮度、电压或者振幅。⽹卡⼆层数据帧包送到⽹线上,这时候⼆层的数据帧包会被转化成⼀段连续的⽐特流,然后以电脉冲的形式传输到交换机,最后到达⽬标主机物理层。(对于数字应⽤来说,我们只需要两种物理信号来分别表⽰0和1,⽐如⽤⾼电压表⽰1,低电压表⽰0,就构成了简单的物理层协议。针对某种媒介,电脑可以有相应的接⼝,⽤来接收物理信号,并解读成为0/1序列。)2.7 ⼩结数据封装就是不断的加头,数据解封过程就是不断的去头的过程。第三章、数据的保密性与完整性上章节介绍完了OSI和TCP/IP模型,我们⽐较清楚数据在每⼀层中是如何存在的了,以及数据是如何从主机A层层传输到主机B。要保证数据安全,就要保证数据经过每⼀层时的安全性。我们这⾥说到的数据安全是参照GB/T 22239-2019《信息安全技术 ⽹络安全等级保护基本要求》以及国际标准化组织对数据安全的定义,保障数据安全,即保障数据的可⽤性、保密性、完整性。3.1 数据可⽤性定义:指数据可被授权实体按要求访问、正常使⽤或在⾮正常情况下能恢复使⽤的特性。举个例⼦,我们常说的DDOS攻击,就是利⽤⽬标系统的⽹络服务功能缺陷或者直接消耗⼤量系统资源,使⽬标系统⽆法提供正常的服务,其实这就是破坏数据的可⽤性。现在主要是采⽤现代信息存储⼿段对数据进⾏主动防护,如通过磁盘阵列、数据备份、异地容灾等⼿段,以规避硬件故障、软件故障、环境风险、⼈为故障、⾃然灾害等风险,保证数据的可⽤性。3.2 数据完整性定义:是指信息在传输、存储和处理过程中,保持信息不被破坏或修改、不丢失和信息未经授权不能改变的特性。换句话说,接收到的数据必须与发送的数据相同。国密算法中,能够提供数据完整性的算法主要是:SM3;国际算法中,能够提供数据完整性的算法主要是:MD5、SHA256、SHA512。
8.1.4.7 数据完整性本项要求包括:a)应采⽤校验技术或密码技术保证重要数据在传输过程中的完整性,包括但不限于鉴别数据、重要业务数据、重要审 计数据、重要配置数据、重要视频数据和重要个⼈信息等;校验技术指的是类似TCP协议的CRC校验码或者海明校验码等,这是协议层⾯的,如果按照这要求连接,那么这条指标基本全部符合,所以⽬前测评难点不是在这⾥,⽽是在密码技术如何实现完整性。传输过程中的完整性主要通过协议(⽐如TLS、SSH协议)来实现,通过MAC(消息校验码)来实现整个数据报⽂的完整性和加密性,因此,在测评中,如果采⽤TLS/SSL协议、SSH协议,默认其实应该是符合传输过程中的完整性要求的。另外还记得第⼆章讲数据封装过程吗?在数据链路层需要添加头部MAC⼦层和尾部FCS,可以⽤来保证数据的完整性。b)应采⽤校验技术或密码技术保证重要数据在存储过程中的完整性,包括但不限于鉴别数据、重要业务数据、重要审计数据、重要配置数据、重要视频数据和重要个⼈信息数据存储过程中的完整性,主要是核查数据库表(业务数据、审计数据)是否存在哈希字段,在业务数据或审计数据中,数据在前端⼀般通过json或xml格式进⾏传输,那么数据在存储过程完整性应该是核查相关数据库表字段中是否包含完整性校验字段。⼀般很少有系统能实现数据存储过程的完整性校验,但是如果通过TLS/SSL、SSH等协议,可以通过传输过程中的完整性在⼀定程度上弥补存储过程中的完整性,所以在测评中,如果传输过程中能保证数据完整性,那么此项⼀般默认符合。3.3 数据保密性定义:是不将有⽤信息泄漏给⾮授权⽤户的特性。换句话说,确保数据信息只能被授权者看到。可以通过信息加密、⾝份认证、访问控制、安全通信协议等技术实现,⽬前保密性主要是通过加密算法来实现。国密算法中,能够提供数据保密性的算法主要是:SM1和SM2,少数使⽤祖冲之,⽆线局域⽹中使⽤SM4。国际算法中,能够提供数据保密性的算法主要是:DES、3DES、RSA、AES、ECC等。
8.1.4.8 数据保密性本项要求包括:a)应采⽤密码技术保证重要数据在传输过程中的保密性,包括但不限于鉴别数据、重要业务数据和重要个⼈信息;检查数据传输过程中的保密性,主要核查是否采⽤TLS/SSL、SSH等加密协议。注意:如果使⽤MD5进⾏密码加密,很多测评机构会默认不符合。原因是通常情况下客户端拿到原密码进⾏MD5加密,然后进⾏存储或者校验,但是如果⽹站使⽤http协议,那么传输数据容易被中间⼈劫持,中间⼈在得到MD5加密后的密⽂后可以采⽤跑⼤型字典的⽅法进⾏爆破,所以MD5也就不太安全了。b)应采⽤密码技术保证重要数据在存储过程中的保密性,包括但不限于鉴别数据、重要业务数据和重要个⼈信息等。数据存储过程中的保密性,这个⽐较容易理解,主要是核查相关鉴别数据(账户的⼝令)、业务数据、审计数据是否加密存储(⾮明⽂存储)。在测评中,操作系统鉴别数据⼀般都会符合,默认都是使⽤哈希算法;业务系统的鉴别数据,这个⼀般需要核查下数据库表,查看是否是明⽂存储;⾄于业务数据和个⼈信息等⼀般系统都明⽂存储(主要原因是影响系统性能),所以⼀般不符合。ps:如果使⽤有加密功能并且开启加密功能的数据库或者数据库加密设备,默认该项为符合。第四章、为什么说HTTPS能保证数据传输的完整性和保密性呢?上⽂分析我们可以看出,要想保证数据在传输过程的完整性和保密性,需要检查是否采⽤了TLS/SSL协议。我们知道HTTPS是在HTTP基础上加了SSL(Secure Socket Layer,安全套接字层),TLS是SSL的升级版。那么为什么说HTTP不能保证数据传输安全,⽽HTTPS可以保证数据传输过程的完整性和保密性呢?注意:https并⾮是应⽤层的⼀种新协议,只是http通信接⼝部分⽤SSL/TLS协议代替⽽已。通常,http是直接和tcp通信的,当使⽤SSL时,则演变成先和SSL通信,再由SSL和TCP通信了。SSL是独⽴于HTTP协议的,所以不光是http协议,其他运⾏在应⽤层的协议,如smtp和telnet协议,也可配合ssl协议使⽤。4.1 HTTP通信原理作为标准的C/S模型,http协议总是由客户端发起,服务器进⾏响应。通信过程如下:1. DNS解析,域名系统DNS将域名解析成IP地址2. 建⽴TCP连接,进⾏TCP的三次握⼿3. 浏览器发送请求4. 服务器响应浏览器,向浏览器发送数据5. 通信完成,TCP连接关闭http协议属于明⽂传输协议,通信双⽅没有进⾏认证,存在如下的问题:窃听风险:第三⽅可以获知通信内容篡改风险:第三⽅可以修改通信内冒充风险:第三⽅可以冒充他⼈⾝份参与通信4.2 HTTPS通信原理https通信是建⽴在ssl连接层之上的请求和响应,通信过程如下:1. 客户端和服务器端通过TCP建⽴连接,并发送https请求。2. 服务器响应请求,并将数字证书发送给客户端,数字证书包括公共秘钥、域名、申请证书的公司。3. 客户端收到服务器端的数字证书之后,会验证数字证书的合法性。4. 如果公钥合格,那么客户端会⽣成client key,⼀个⽤于进⾏对称加密的密钥,并⽤服务器的公钥对客户端密钥进⾏⾮对称加密。5. 客户端会再次发起请求,将加密之后的客户端密钥发送给服务器。6. 服务器接收密⽂后,会⽤私钥对其进⾏⾮对称解密,得到客户端秘钥。并使⽤客户端秘钥进⾏对称加密,⽣成密⽂并发送。7. 客户端收到密⽂,并使⽤客户端秘钥进⾏解密,获取数据。HTTPS是在HTTP基础上加了SSL(Secure Socket Layer,安全套接字层),具有如下优势:所有信息都是加密传播,第三⽅⽆法窃听具有校验机制,⼀旦被篡改,通信双⽅会⽴刻发现配备⾝份证书,防⽌⾝份被冒充4.3 抓包⽐较http和https头信息查看http中的 request 与 response,可以看出是明⽂传输的。查看https⽹站,可以看到内容全部加密。那么https是不是就是没有风险的呢?当然不是,任何安全措施或安全协议都不可能保证绝对安全,⽐如SSL 2.0就被爆出有很多安全漏洞,如同⼀加密密钥⽤于消息⾝份验证和加密、弱消息认证代码结构和只⽀持不安全的MD5哈希函数、SSL握⼿过程没有采取任何防护等等漏洞。攻击者就可以利⽤该漏洞对发起⽹络攻击。第五章、总结本⽂主要围绕数据完整性和数据保密性,在第⼆章介绍了OSI模型和TCP/IP模型,以及数据封装和解封的过程,在第三章介绍了数据完整性和保密性的具体含义,以及具体测评过程中的检查⽅法,第四章则介绍了HTTP与HTTPS的通信原理,以及HTTPS能够保证数据传输过程完整性和保密性的原理。本⽂是作者查阅了⼤量资料和平时⼯作学习归纳总结的,写的不对的地⽅欢迎指正。
发布者:admin,转转请注明出处:http://www.yc00.com/news/1690464109a353142.html
评论列表(0条)