彭嬌
摘 要:互聯(lián)網(wǎng)技術(shù)和計算機技術(shù)的發(fā)展與應(yīng)用為人們的生活和工作帶來了巨大的幫助,同時,也帶來了相應(yīng)的數(shù)據(jù)安全風(fēng)險。基于Socket的數(shù)字簽名技術(shù)主要用于網(wǎng)絡(luò)數(shù)據(jù)傳輸過程中實現(xiàn)數(shù)據(jù)的安全傳輸,對信息發(fā)送方的身份以及發(fā)送內(nèi)容的認可,還可以驗證發(fā)送的信息在傳輸過程中有無變動,以確保傳輸數(shù)據(jù)的完整、真實和不可抵賴性。
關(guān)鍵詞:互聯(lián)網(wǎng)+ 數(shù)據(jù)傳輸 數(shù)據(jù)簽名
中圖分類號:TP309 文獻標(biāo)識碼:A 文章編號:1674-098X(2017)03(b)-0132-02
1 “互聯(lián)網(wǎng)+”時代數(shù)據(jù)安全需求
隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展,云計算、大數(shù)據(jù)、物聯(lián)網(wǎng)為代表的新一代信息通信技術(shù)與經(jīng)濟社會各領(lǐng)域、各行業(yè)的深度融合和跨界融合,為行業(yè)的發(fā)展、人們的生活和工作帶來了極大的方便。同時,由于網(wǎng)絡(luò)的開放性及可擴充性,伴隨著技術(shù)的廣泛使用而出現(xiàn)許多安全問題,例如信息的丟失、泄露、服務(wù)中斷等,最終造成的經(jīng)濟損失甚至危及國家安全。所以必須運用各種服務(wù)和安全技術(shù)來保證數(shù)據(jù)的完整、機密和可用性。通常數(shù)據(jù)安全服務(wù)的分類有以下幾類。
(1)保密性:保證數(shù)據(jù)在計算機網(wǎng)絡(luò)中傳輸時僅能被已授權(quán)允許讀取的終端獲得。
(2)完整性:主要是指數(shù)據(jù)在網(wǎng)絡(luò)傳輸和使用過程中沒有被篡改、丟失等。
(3)可用性:確保授權(quán)的用戶在需要時可隨時隨地訪問數(shù)據(jù),即保障數(shù)據(jù)資源不因誤操作、系統(tǒng)故障等原因造成服務(wù)未能及時響應(yīng)、資源丟失、妨礙對資源的使用等情況。
(4)可追溯性:通過數(shù)據(jù)的標(biāo)識確保數(shù)據(jù)的來源可被跟蹤。
(5)訪問控制:確保只有合法的用戶對受保護的網(wǎng)絡(luò)數(shù)據(jù)資源進行授權(quán)的訪問,非法的用戶或合法用戶對未授權(quán)的數(shù)據(jù)資源都無法訪問。
2 數(shù)字簽名技術(shù)
科學(xué)技術(shù)的發(fā)展,使得互聯(lián)網(wǎng)、云計算、大數(shù)據(jù)逐步改變?nèi)藗兊纳?,更需要建立計算機安全機制以保證信息的完整性、機密性和可用性。本文主要以數(shù)字簽名技術(shù)為例,保證信息的來源的真實性與信息本身的完整性。
2.1 數(shù)字簽名的概念
數(shù)字簽名是一種認證機制,是公鑰密碼學(xué)發(fā)展過程中一個重要的組成部分,是公鑰密碼算法的典型應(yīng)用。在ISO7498-2標(biāo)準(zhǔn)中數(shù)字簽名定義為:“附加在數(shù)據(jù)單元上的一些數(shù)據(jù),或是對數(shù)據(jù)單元所作的密碼變換,這種數(shù)據(jù)和變換允許數(shù)據(jù)單元的接收者用以確認數(shù)據(jù)單元來源和數(shù)據(jù)單元的完整性,并保護數(shù)據(jù),防止被人(例如接收者)進行偽造”。數(shù)據(jù)的發(fā)送方使用自己的私鑰對數(shù)據(jù)校驗和其他與數(shù)據(jù)內(nèi)容相關(guān)的信息進行處理,完成對數(shù)據(jù)的合法“簽名”,數(shù)據(jù)接收方則利用發(fā)送方的公鑰來驗證收到的消息上的“數(shù)字簽名”,以確認簽名的合法性與數(shù)據(jù)的完整性。
2.2 數(shù)字簽名的基本原理
數(shù)字簽名只涉及通信雙方,即簽名方使用自己的私鑰對整個消息或者對于消息的散列值進行簽名,驗證者使用簽名者的公鑰進行驗證。其主要包括三個過程:一是生成公鑰和私鑰,其中公鑰可以對外公開,接收方用它來解密,而私鑰是信息的發(fā)送方用于數(shù)據(jù)加密使用。數(shù)字簽名中的私鑰只有簽名者自己才知道,其他人無法構(gòu)造出正確的簽名效果;二是簽名文件內(nèi)容,將生成的密鑰寫入或保存到文件中;三是發(fā)送簽名后的數(shù)據(jù)及公鑰,通過網(wǎng)絡(luò)或其他通信方式發(fā)送給用戶,用戶接收到簽名文件和數(shù)據(jù)文件后,就可以拿公鑰來檢驗數(shù)據(jù)文件中的數(shù)字簽名。在具體的使用過程中,可以通過DSA算法來實現(xiàn)。
(1)選擇系統(tǒng)參數(shù)。
p:512位的素數(shù),其中2L-1
q:160位的素數(shù)且q|p-1;
g:滿足g=h(p-1)/q mod p;
H:為散列函數(shù);
x:用戶的私鑰,0 y:用戶的公鑰,y=gxmodp; p、q、g為系統(tǒng)發(fā)布的公共參數(shù),與公鑰y公開;私鑰x保密。 (2)簽名。 設(shè)要簽名的消息為M,0 r=(gkmodp)modq s=[k-1(H(M)+xr)]modq (r,s)即為M的簽名。簽名者將M連同(r,s)一起存放,或發(fā)送給驗證者。 (3)驗證。 驗證者獲得M和(r,s),需要驗證(r,s)是否是M的簽名。 首先檢查r和s是否屬于[0,q],若不是,則(r,s)不是簽名值。 否則,計算: w=s-1modq u1=(H(M)w)modq u2=rwmodq v=((gu1yu2)modp)modq 如果v=r,則所獲得的(r,s)是M的合法簽名。 3 基于Socket的數(shù)據(jù)簽名技術(shù)的實現(xiàn) 3.1 Socket網(wǎng)絡(luò)通信的實現(xiàn)過程 Socket是網(wǎng)絡(luò)上運行的兩個程序間雙向通信連接的一個端口。當(dāng)通信時可以使用Socket建立套接字對象并連接在一起。Socket通常用于客戶/服務(wù)器程序。服務(wù)器端在運行許多服務(wù)進程時,等待客戶程序的服務(wù)請求,并處理這些服務(wù)請求。 基于Socket的網(wǎng)絡(luò)數(shù)據(jù)傳輸?shù)膶崿F(xiàn)主要包括服務(wù)器端和客戶端程序?qū)崿F(xiàn)兩部分構(gòu)成。 3.1.1 使用ServerSocket類建立服務(wù)器端Socket (1)創(chuàng)建基于某個端口的ServerSocket對象,綁定監(jiān)聽端口,即服務(wù)器端程序監(jiān)聽指定端口的Socket。 (2)ServerSocket對象一直處于監(jiān)聽狀態(tài),通過accept( )方法來接收客戶端發(fā)送過來的Socket連接請求。
(3)連接建立后,通過輸入流讀取客戶端發(fā)送的請求信息。
(4)通過輸出流向客戶端發(fā)送響應(yīng)信息。
(5)客戶端和服務(wù)器端通信完畢后,關(guān)閉相關(guān)資源。
3.1.2 使用Socket類建立客戶端Socket
相對于服務(wù)器端而言,客戶端要簡單一些,只需要知道服務(wù)器端的IP地址及服務(wù)器提供的端口號就可以創(chuàng)建一個Socket對象。
(1)以服務(wù)器的IP地址和端口號為參數(shù),調(diào)用Socket類創(chuàng)建Socket對象,在Socket對象創(chuàng)建過程中包含了向服務(wù)器請求建立通信連接。
(2)建立連接后,通過輸出流向服務(wù)器端發(fā)送請求信息;
(3)通過輸入流獲取服務(wù)器響應(yīng)的信息。
(4)客戶端和服務(wù)器端通信完畢后,關(guān)閉相關(guān)資源。
客戶端Socket與服務(wù)器端Socket的整體通信模式如圖1所示。
3.2 基于Socket的數(shù)據(jù)簽名技術(shù)的實現(xiàn)
客戶端使用Socket類建立負責(zé)連接到服務(wù)器的套接字對象,指明需要連接的服務(wù)器的地址和端口號;服務(wù)器端建立一個ServerSocket對象,綁定監(jiān)聽端口,并通過accept() 方法監(jiān)聽并接收客戶端請求,方便客戶端成功地連接到服務(wù)器上;兩者建立連接后,客戶端使用輸出流向服務(wù)器端發(fā)送請求信息,該消息使用客戶端選取的私鑰x對其進行數(shù)字簽名,服務(wù)器端則使用輸入流讀取客戶端發(fā)送的請求信息,對獲取到的請求消息使用客戶端的公鑰y對其簽名進行驗證,確認消息來源的真實性和完整性,服務(wù)器端通過輸出流向客戶端發(fā)送響應(yīng)信息,該消息使用服務(wù)器端選取的私鑰x'對其進行數(shù)字簽名,客戶端則通過輸入流獲取服務(wù)器響應(yīng)的信息,并對服務(wù)器端發(fā)送過來的響應(yīng)信息使用服務(wù)器端產(chǎn)生的公鑰y`對其簽名進行驗證,以保證消息的傳送的過程中不會被篡改、丟失;客戶端和服務(wù)器端就通過這種方式進行信息通信。
4 結(jié)語
網(wǎng)絡(luò)數(shù)據(jù)傳輸安全不僅是技術(shù)問題,同時也是一個安全管理問題。網(wǎng)絡(luò)數(shù)據(jù)傳輸安全無論現(xiàn)在乃至今后都是一個很重要的課題,它已成為網(wǎng)絡(luò)應(yīng)用發(fā)展的一個瓶頸。網(wǎng)絡(luò)數(shù)據(jù)傳輸安全的有效控制和網(wǎng)絡(luò)安全技術(shù)的正確使用,決定著互聯(lián)網(wǎng)技術(shù)的發(fā)展方向。如何保障網(wǎng)絡(luò)數(shù)據(jù)傳輸安全已成為未來網(wǎng)絡(luò)應(yīng)用的重中之重,成為人們?nèi)粘jP(guān)注的焦點。該文主要分析研究了網(wǎng)絡(luò)數(shù)據(jù)基于Socket的數(shù)字簽名技術(shù),不僅能保證通信雙方之間的信息不被第三方篡改,并能防止通信過程中雙方發(fā)生否認的現(xiàn)象。
參考文獻
[1] 郭亞軍,宋建華.信息安全原理與技術(shù)[M].北京:清華大學(xué)出版社,2015.
[2] 宋秀娥.高校數(shù)字圖書館安全體系及問題研究[J].福建電腦,2016(2):60-61.
[3] 路璐,王新龍.探究云計算下數(shù)字圖書館數(shù)據(jù)安全的問題[J].山西電子技術(shù),2014(3):90-91.
[4] 王新忠,楊波.基于SOCKET的數(shù)據(jù)傳輸安全技術(shù)研究[J].科技廣場,2016(7):72-77.