聯系我們 - 廣告服務 - 聯系電話:
您的當前位置: > 關注 > > 正文

環球微資訊!如何理解數據的保密性和完整性?數據的保密性與完整性

來源:CSDN 時間:2023-04-10 08:32:46

文章目錄


(資料圖片)

前言第一章、數據第二章、OSI七層網絡模型&TCP/IP四層模型2.1 數據封裝與解封2.2 應用層2.3 傳輸層2.4 網絡層2.5 數據鏈路層2.6 物理層2.7 小結 第三章、數據的保密性與完整性3.1 數據可用性3.2 數據完整性3.3 數據保密性 第四章、為什么說HTTPS能保證數據傳輸的完整性和保密性呢?4.1 HTTP通信原理4.2 HTTPS通信原理4.3 抓包比較http和https頭信息 第五章、總結

前言

在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。

校驗技術指的是類似TCP協議的CRC校驗碼或者海明校驗碼等,這是協議層面的,如果按照這要求連接,那么這條指標基本全部符合,所以目前測評難點不是在這里,而是在密碼技術如何實現完整性。 傳輸過程中的完整性主要通過協議(比如TLS、SSH協議)來實現,通過MAC(消息校驗碼)來實現整個數據報文的完整性和加密性,因此,在測評中,如果采用TLS/SSL協議、SSH協議,默認其實應該是符合傳輸過程中的完整性要求的。

另外還記得第二章講數據封裝過程嗎?在數據鏈路層需要添加頭部MAC子層和尾部FCS,可以用來保證數據的完整性。

數據存儲過程中的完整性,主要是核查數據庫表(業務數據、審計數據)是否存在哈希字段,在業務數據或審計數據中,數據在前端一般通過json或xml格式進行傳輸,那么數據在存儲過程完整性應該是核查相關數據庫表字段中是否包含完整性校驗字段。

一般很少有系統能實現數據存儲過程的完整性校驗,但是如果通過TLS/SSL、SSH等協議,可以通過傳輸過程中的完整性在一定程度上彌補存儲過程中的完整性,所以在測評中,如果傳輸過程中能保證數據完整性,那么此項一般默認符合。

3.3 數據保密性

定義:是不將有用信息泄漏給非授權用戶的特性。換句話說,確保數據信息只能被授權者看到。

可以通過信息加密、身份認證、訪問控制、安全通信協議等技術實現,目前保密性主要是通過加密算法來實現。

國密算法中,能夠提供數據保密性的算法主要是:SM1和SM2,少數使用祖沖之,無線局域網中使用SM4。 國際算法中,能夠提供數據保密性的算法主要是:DES、3DES、RSA、AES、ECC等。

檢查數據傳輸過程中的保密性,主要核查是否采用TLS/SSL、SSH等加密協議。注意:如果使用MD5進行密碼加密,很多測評機構會默認不符合。原因是通常情況下客戶端拿到原密碼進行MD5加密,然后進行存儲或者校驗,但是如果網站使用http協議,那么傳輸數據容易被中間人劫持,中間人在得到MD5加密后的密文后可以采用跑大型字典的方法進行爆破,所以MD5也就不太安全了。

數據存儲過程中的保密性,這個比較容易理解,主要是核查相關鑒別數據(賬戶的口令)、業務數據、審計數據是否加密存儲(非明文存儲)。

在測評中,操作系統鑒別數據一般都會符合,默認都是使用哈希算法;業務系統的鑒別數據,這個一般需要核查下數據庫表,查看是否是明文存儲;至于業務數據和個人信息等一般系統都明文存儲(主要原因是影響系統性能),所以一般不符合。

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協議總是由客戶端發起,服務器進行響應。通信過程如下:

DNS解析,域名系統DNS將域名解析成IP地址建立TCP連接,進行TCP的三次握手瀏覽器發送請求服務器響應瀏覽器,向瀏覽器發送數據通信完成,TCP連接關閉

http協議屬于明文傳輸協議,通信雙方沒有進行認證,存在如下的問題:

竊聽風險:第三方可以獲知通信內容篡改風險:第三方可以修改通信內冒充風險:第三方可以冒充他人身份參與通信

4.2 HTTPS通信原理

https通信是建立在ssl連接層之上的請求和響應,通信過程如下:

客戶端和服務器端通過TCP建立連接,并發送https請求。服務器響應請求,并將數字證書發送給客戶端,數字證書包括公共秘鑰、域名、申請證書的公司??蛻舳耸盏椒掌鞫说臄底肿C書之后,會驗證數字證書的合法性。如果公鑰合格,那么客戶端會生成client key,一個用于進行對稱加密的密鑰,并用服務器的公鑰對客戶端密鑰進行非對稱加密。客戶端會再次發起請求,將加密之后的客戶端密鑰發送給服務器。服務器接收密文后,會用私鑰對其進行非對稱解密,得到客戶端秘鑰。并使用客戶端秘鑰進行對稱加密,生成密文并發送??蛻舳耸盏矫芪?,并使用客戶端秘鑰進行解密,獲取數據。

HTTPS是在HTTP基礎上加了SSL(Secure Socket Layer,安全套接字層),具有如下優勢:

所有信息都是加密傳播,第三方無法竊聽具有校驗機制,一旦被篡改,通信雙方會立刻發現配備身份證書,防止身份被冒充

4.3 抓包比較http和https頭信息

查看http中的 request 與 response,可以看出是明文傳輸的。 查看https網站,可以看到內容全部加密。

那么https是不是就是沒有風險的呢?當然不是,任何安全措施或安全協議都不可能保證絕對安全,比如SSL 2.0就被爆出有很多安全漏洞,如同一加密密鑰用于消息身份驗證和加密、弱消息認證代碼結構和只支持不安全的MD5哈希函數、SSL握手過程沒有采取任何防護等等漏洞。攻擊者就可以利用該漏洞對發起網絡攻擊。

關于http是如何一步一步演變成https的,可以看下https://blog.csdn.net/csdnlijingran/article/details/88922340?,介紹的很詳細。

第五章、總結

本文主要圍繞數據完整性和數據保密性,在第二章介紹了OSI模型和TCP/IP模型,以及數據封裝和解封的過程,在第三章介紹了數據完整性和保密性的具體含義,以及具體測評過程中的檢查方法,第四章則介紹了HTTP與HTTPS的通信原理,以及HTTPS能夠保證數據傳輸過程完整性和保密性的原理。

本文是作者查閱了大量資料和平時工作學習歸納總結的,寫的不對的地方歡迎指正。

責任編輯:

標簽:

相關推薦:

精彩放送:

新聞聚焦
Top 岛国精品在线