亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于JAVA的簡單Socket通信

        2020-08-04 09:49:21孫炳潤馬剛
        關(guān)鍵詞:數(shù)字簽名

        孫炳潤 馬剛

        摘? 要:隨著信息技術(shù)的飛速發(fā)展,Socket的數(shù)據(jù)傳輸安全技術(shù)成為近幾年的熱點研究問題,為了實現(xiàn)網(wǎng)絡(luò)數(shù)據(jù)傳輸安全技術(shù)的功能,必須充分利用Socket通信的自身優(yōu)勢,并結(jié)合Java語言的安全性特點來完成。本文分析了Java平臺下Socket數(shù)據(jù)傳輸安全的特點,研究了三種基于Socket數(shù)據(jù)傳輸安全技術(shù)。希望給后續(xù)研究提供一定的參考

        關(guān)鍵詞:JAVA;傳輸安全;對象序列化;數(shù)字簽名;SSL

        一、JAVASOCKET網(wǎng)絡(luò)通信編程的實現(xiàn)過程

        1.1建立服務(wù)器端

        (1)調(diào)用ServerSocket類,以某個端口號為參數(shù)創(chuàng)建一個ServerSocket實例,即是服務(wù)器端的服務(wù)程序在監(jiān)聽該指定端口的Socket。

        (2)創(chuàng)建ServerSocket并保持監(jiān)聽狀態(tài),調(diào)用了ServerSocket對象的accept()方法,隨后接收來自客戶發(fā)送的Socket連接請求。在服務(wù)器程序監(jiān)聽Socket連接請求時,也可采用Java的多線程技術(shù),實現(xiàn)并發(fā)服務(wù)器連續(xù)監(jiān)聽連接請求。

        (3)調(diào)用Socket對象的getInputStream和getOutputStream方法建立輸入流和輸出流,并進行封裝。不過在調(diào)用這兩個方法時可能會產(chǎn)生I/O異常,必須要去捕獲這個I/O異常。

        (4)使用建立好的輸入輸出流對象的read和write方法完成和客戶端的數(shù)據(jù)傳輸,并把處理結(jié)果返回給客戶端。

        (5)在服務(wù)器與客戶機雙方通訊結(jié)束以后,服務(wù)器端應(yīng)該及時關(guān)閉輸入和輸出這兩個數(shù)據(jù)流。

        1.2建立客戶端

        (1)以服務(wù)器指定的IP地址或主機名以及服務(wù)器指定的端口號為參數(shù),調(diào)用Socket類的構(gòu)造方法,創(chuàng)建一個Socket對象。

        (2)建立了客戶端通信的Socket后,就可以像服務(wù)器一樣使用Socket的getInputStream和getOutputStream方法來創(chuàng)建輸入流和輸出流。

        (3)調(diào)用輸入流和輸出流對象相應(yīng)的方法讀寫字節(jié)流或字符流數(shù)據(jù),完成雙方的通信任務(wù)。

        (4)在客戶機與服務(wù)器雙方通訊結(jié)束以后,我們也要用字節(jié)流或字符流對象的close()方法來關(guān)閉用于網(wǎng)絡(luò)通信的輸入流和輸出流,再用Socket對象的close()方法來關(guān)閉Socket。

        二、基于SOCKET數(shù)據(jù)傳輸?shù)陌踩夹g(shù)分析

        2.1基于Socket的對象序列化的安全技術(shù)分析

        (1)對象序列化的安全技術(shù)分析

        對象一旦被序列化后,作為對象序列化結(jié)果的字節(jié)流可以讀取,也可以被任何能訪問該流的對象改變,這就允許任何對象訪問序列化對象的狀態(tài),因而違背了用戶所期望的隱私權(quán)。同時,用戶也可以任何方式改變流中的字節(jié),并允許重新構(gòu)造Java平臺下保護范圍內(nèi)從未創(chuàng)建的對象。

        2.2基于SOCKET的數(shù)字簽名的安全技術(shù)分析

        數(shù)字簽名的技術(shù)主要有DSA和RSA算法兩種,而DSA比RSA產(chǎn)生密鑰速度快,但它們的安全性差不多。其主要包括三個過程:一是生成公鑰和私鑰,其中公鑰可以對外公開,私鑰用于加密;二是簽名文件內(nèi)容,即將生成的密鑰對寫入或保存到文件中;三是發(fā)送簽名后的數(shù)據(jù)及公鑰,拿公鑰來檢驗數(shù)據(jù)文件中的數(shù)字簽名。

        2.3基于SOCKET的SSL的安全技術(shù)分析

        (1)安全套接層協(xié)議

        a.客戶端向服務(wù)器端發(fā)起通信對話,協(xié)商傳送加密算法,準(zhǔn)備進行安全的對話,并告之所用的對稱加密算法、密鑰交換算法、摘要算法等。

        b.服務(wù)器收到請求后向客戶端發(fā)送服務(wù)器數(shù)字證書,并確定使用一種加密組合進行通信,為了證明確實是服務(wù)器端,必須發(fā)送服務(wù)器端的數(shù)字證書給客戶端,并且讓客戶端驗證服務(wù)器端的身份。

        c.客戶端再向服務(wù)器端傳送本次對話的密鑰,檢查服務(wù)器端的數(shù)字證書是否正確,通過證書驗證了服務(wù)器端證書的真實有效性后,利用服務(wù)器端的公鑰生成本次對話的密鑰發(fā)送給服務(wù)器端,并告之服務(wù)器端。

        d.服務(wù)器端向客戶端獲取密鑰,并用自己的私鑰解密獲取本次通訊的密鑰,并告之客戶端已經(jīng)獲取了密鑰可以開始通信了。

        e.服務(wù)器端與客戶端進行通訊。

        (2)安全套接層協(xié)議

        一般的SSL套接字有許多默認(rèn)選項,如果想修改其中的某些選項,就要用到SSLContext類的對象來實現(xiàn)。

        三、基于Socket數(shù)據(jù)傳輸安全方案的研究

        3.1基于Socket的對象序列化安全方案

        (1)將要保密的數(shù)據(jù)標(biāo)記為transient屬性

        如將某一對象中password字段保護起來,可以對該字段屬性設(shè)置為PrivatetransientStringpassword;當(dāng)對象在序列化發(fā)生時,Java虛擬機將被聲明為transient的所有域。

        (2)實現(xiàn)Externalizable接口

        Externalizable接口屬于Serializable接口的子類。但是如果采用這種Externalizable接口的方法,必須就要聲明writeExternal()和readExternal()兩個函數(shù)。將不需要被序列化的字段提取出來放到父類中去,讓子類實現(xiàn)Serializable接口,這樣的話父類相應(yīng)的字段數(shù)據(jù)就可以不被序列化。

        3.2基于Socket的數(shù)字簽名安全方案

        (1)開發(fā)簽名的數(shù)據(jù)對象

        首先需要有一個待簽名的對象,而這個對象在進行序列化時,對象中只出現(xiàn)公鑰。

        (2)開發(fā)客戶端

        客戶端需要實現(xiàn)讀取文件內(nèi)容,使用安全API接口來產(chǎn)生一對密鑰(包含公有和私有)、簽名文件內(nèi)容,并且通過網(wǎng)絡(luò)來發(fā)送加密后的對象給服務(wù)器,相關(guān)類和方法及步驟如下:

        a.使用KeyPairGenerator類來產(chǎn)生公共及私有密鑰。

        b.使用KeyPairGenerator類的initialize()方法來完成初始化密鑰對。

        c.獲得密鑰。

        d.獲取一個簽名的對象。e.初始化簽名對象。

        e.把需要簽名的數(shù)據(jù)提供給簽名對象,將需要簽名的數(shù)據(jù)讀到一個字節(jié)數(shù)組,然后再通過調(diào)用Signature類的update方法,再把數(shù)組提供給簽名對象。

        f.產(chǎn)生簽名,然后通過網(wǎng)絡(luò)發(fā)送。

        (3)開發(fā)服務(wù)器端

        a.創(chuàng)建Signature類的一個實例。

        b.用公有密鑰初始化對象。

        c.使用update()方法提供簽名的數(shù)據(jù)來給需要驗證的簽名。

        3.3基于Socket的SSL安全方案

        SSL協(xié)議可分為兩層:第一層是SSL記錄協(xié)議,它是建立在可靠的傳輸層協(xié)議之上,為應(yīng)用層協(xié)議提供數(shù)據(jù)壓縮、封裝、加密等基本功能;第二層是SSL握手協(xié)議,它是建立在SSL記錄協(xié)議之上,用在數(shù)據(jù)傳輸開始前,通信雙方身份認(rèn)證、交換加密密鑰、協(xié)商加密算法等初始化協(xié)商功能?;赟ocket的采用SSL協(xié)議的傳輸安全方案需要用到一個Java數(shù)據(jù)證書的管理工具Keytool。Keytool將密鑰(key)和證書(certificates)保存在一個稱為keystore的文件當(dāng)中,每個keystore都關(guān)聯(lián)著這一個獨一無二的公鑰。

        四、結(jié)束語

        網(wǎng)絡(luò)數(shù)據(jù)傳輸安全已成為網(wǎng)絡(luò)應(yīng)用發(fā)展的一個瓶頸。本文分析研究了網(wǎng)絡(luò)數(shù)據(jù)基于JavaSocket的傳輸安全問題,對基于JavaSocket的網(wǎng)絡(luò)數(shù)據(jù)傳輸安全的三種技術(shù)進行了深入研究和探討,提出了三種基于JavaSocket網(wǎng)絡(luò)數(shù)據(jù)傳輸?shù)陌踩募夹g(shù)方案。

        參考文獻

        [1]? 耿祥義.Java2實用教程[M].北京:清華大學(xué)出版社,2013.

        [2]? 王一飛.Java網(wǎng)絡(luò)程序設(shè)計[M].北京:中國電力出版社,2010.

        [3]? 姚凱,劉琳琳.基于Java多線程技術(shù)的網(wǎng)絡(luò)編程研究[J].電子技術(shù)與軟件工程,2017,8:12

        猜你喜歡
        數(shù)字簽名
        淺析計算機安全防護中數(shù)字簽名技術(shù)的應(yīng)用
        基于數(shù)字簽名的QR碼水印認(rèn)證系統(tǒng)
        數(shù)字簽名簡述
        掌握方法用好數(shù)字簽名
        個人電腦(2014年12期)2014-12-29 13:29:47
        基于數(shù)字簽名和HSM的數(shù)據(jù)庫篡改檢測機制
        復(fù)制數(shù)字簽名,巧妙偽裝病毒
        久久人妻AV无码一区二区| 少妇被粗大的猛进69视频| 日日高潮夜夜爽高清视频| av影院手机在线观看| 综合五月激情二区视频| 久久久无码精品亚洲日韩按摩| 丰满少妇高潮惨叫正在播放| 亚洲欧美偷拍视频| 极品人妻少妇一区二区| av一区二区三区有码| 18禁裸体动漫美女无遮挡网站| 午夜福利av无码一区二区| 一级免费毛片| 免费国产调教视频在线观看| 亚洲天堂一区二区三区视频| 日本一区二区视频在线| 日本在线 | 中文| 男女18禁啪啪无遮挡| 97精品国产91久久久久久久| 国产三级一区二区三区在线观看| 女同性恋一区二区三区av| 夜夜爽日日澡人人添| 成 人 网 站 免 费 av | 精品久久久久久午夜| 国产专区亚洲专区久久| 日韩精品亚洲一区二区| 国产熟妇另类久久久久| 国产第一页屁屁影院| 天堂Av无码Av一区二区三区| 国产精品一区二区熟女不卡| 亚洲国产精品成人综合色| 亚洲综合久久成人a片| 中文亚洲成a人片在线观看| 久久精品视频日本免费| 日韩精品熟妇一区二区三区| 中文字幕久久久人妻无码| 蜜臀av免费一区二区三区| 官网A级毛片| 日本视频一中文有码中文| 日本怡春院一区二区三区| 欧美日韩国产亚洲一区二区三区 |