999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

一種基于TSL的安全TCP通信實現方法

2019-03-07 05:22:46文志華周序生
電腦知識與技術 2019年36期

文志華 周序生

摘要:TSL(Transpon Layer Security)協議是重要的互聯網標準協議。重點分析了TSL協議握手協議的過程,通過請求公鑰與多次協商最終形成會話密鑰。描述了證書、私鑰的生成方法,實現一個服務端、客戶端使用TSL協議傳輸的方法,并驗證TSL安全傳輸的效果。

關鍵詞:傳輸層安全傳輸;TSUSSL; TCP安全通訊信

中圖分類號:TP393.08

文獻標識碼:A

文章編號:1009-3044(2019)36-0040-03

1概述

傳輸層安全協議(TSL, Transport Layer Security)是如今互聯網上應用最廣泛的加密方法[1],是重要的互聯網標準,其前身為網景公司于提出的安全套協議(SSL, Secure Socket Layer)。在TLS/SSL出現之前,大部分應用層協議(http、ftp、smtp等)存在著網絡安全問題。例如,互聯網重要的基礎協議http協議,在傳輸過程中使用的是明文信息,傳輸報文一旦被截獲便會泄露傳輸內容;傳輸過程中報文如果被篡改,無法輕易發現;無法保證消息交換的對端身份的可靠性。為了解決此類場景下的問題.研究人員提出了在應用層和傳輸層之間加入了TLS/SSL協議[2-4]。https協議由此產生,并廣泛運用于互聯網的安全傳輸。但是,由此也容易讓人誤以為類似于https是一種全新的安全協議,然而其本質是包裹于TLS/SSL之上的http協議[5]。因此,基于TSL協議直接實現TCP的安全傳輸,通過代碼分析和還原TSL安全傳輸的本質是有必要的。

2 TSL原理

TLS協議可以分為兩部分:記錄協議(ReCord ProtoCol)和握手協議(Handshake Protocol)。記錄協議通過使用客戶端和服務端協商后的秘鑰進行數據加密傳輸。握手協議客戶端和服務端進行協商,確定一組用于數據傳輸加密的密鑰串[6]。在握手協議階段的基本過程是:1)客戶端向服務器端索要并驗證公鑰;2)雙方協商生成“對話密鑰”。

TSL的關鍵在握手協議階段,握手協議完成之時就已經構建了基于“對話密鑰”的安全傳輸基礎。握手階段的過程及原理分為6個步驟[7]:

第一步客戶端發起請求:客戶端給出協議版本號、一個自動生成的隨機數(Client random),以及客戶端支持的加密方法。第二步服務端回應:服務端確認雙方使用的加密方法,并給出數字證書以及一個服務端生成的隨機數(Server random)。第三步證書校驗及客戶端請求:客戶端確認數字證書有效,然后生成一個新的隨機數(Premaster secret),并使用數字證書中的公鑰,加密這個隨機數,發給服務端。第四步服務端解密:服務端使用自己的私鑰,獲取客戶端發來的隨機數(即Premaster se-eret)。第五步對話密鑰生成:客戶端和服務端根據約定的加密方法,使用前面的三個隨機數,生成”對話密鑰”(session key),用來加密接下來的整個對話過程。第六步握手結束:客戶端計算所有接收信息的hash值,并采用協商密鑰解密encrypt-ed_handshake_message,驗證服務器發送的數據和密鑰,驗證通過則握手完成。

3基于TSL的安全TCP傳輸實現

3.1密鑰及證書的生成

在TSL的握手階段,至少需要一個證書及密鑰,才能完成握手生成一個安全的對話密鑰。OpenSSL是一個開放源代碼的軟件庫包,能通用于主流操作系統。利用OpenSSL,可以生成服務端密鑰及證書[8]。

(1)OpenSSL安裝

下并安裝好之后,需要用openssl version在命令行查看當前版本,驗證是否安裝成功。如果安裝成功,需要配置OpenS-SL的兩個環境變量信息,在命令行中輸入:set RANDFILE=D:\OpenSSL-Win64V rnd和set OPENSSL_CONF=D: \OpenSSL-Win64\bin\cnflopenssl.enf'。其中“D:\OpenSSL-Win64”是OpenS-SL的安裝目錄,“openssl.enf'”是OpenSSL的配置信息。

(2)生成私鑰

使用命令openssl genrsa -des3 -out privatekey.pem 2048生成一個2048位的RSA密鑰privatekey.pem,同時需要輸入一個des3加密的密碼,如果不想每次輸入密碼,則可以使用命令openssl genrsa -out privatekey.pem 2048生成一個無密的2048位密鑰。如果需要生成安全的密鑰,可以將2048更改為4096或更長。

(3)生成公鑰

利用上一步中生成的私鑰文件privatekey.pem,使用命令openssl req -new -keyprivatekey.pem -out cert.csr生成cert.csr證書請求文件。在互聯網環境中,需要用cert.csr證書請求文件去數字證書頒發機構(即CA)申請一個正式的數字證書。為了便于測試,使用命令openssl req -new -x509 -key privatekey.pem -out cert.crt -days 365生成一個申請機構和頒發機構都是自身的測試數字證書cert.crt。

數字證書生成中需要輸入的一些信息說明:Country Name(2 letter code) [AU]:CN ISO國家代碼(只支持兩位字符)State or Province Name (full name) [Some-State]:ZJ所在省份Locality Name (eg, city) []:HZ所在城市Organization Name (eg, company):SW_TECH公司名稱Organizational Unit Name (eg,section) []:SW_TECH組織名稱Common Name (eg,YOUR name) []:127.0.0.1申請證書的域名(為了測試方便,此處使用本機回環地址)Email Address []:admin@aclmin.com管理員郵箱

(4)清除私鑰密碼

將加密的RSA密鑰轉成未加密的RSA密鑰,避免每次讀取都要求輸入解密密碼。使用命令openssl rsa -in privatekey.pem-out privatekey.pem.un

用私鑰privatekey.pem.un和公鑰cert.crt證書文件,在程序中使用并開發一個加密通訊的服務器。

3.2安全服務端實現

在安全服務端,需要傳人私鑰privatekey.pem.un和公鑰cert.ert證書文件。私鑰文件需要謹慎保存,一旦文件泄露或被第三方獲取內容,在密鑰過期之前第三方能一直冒充服務端欺騙客戶端連接。服務端部分實現代碼(基于Python,客戶端相同1:

def tsl_server(address):

context = ssl. create_default_context(ssl. Purpose. CLI-ENT_AUTH)

context. load_cert_chain(certfile= "cert. crt", keyfile= "pri-vatekey.pem.un")

listener =

socket. socket(socket. AF_INET,

socket.SOCK_STREAM)

listener.setsockopt(socket.SOL_SOCKET, socket.SO_REUSE-ADDR,11

lis,tener.bincl(address)

listener.listen(l)

print('Listening at interface {!r) and port(".format(*address》

raw_sock, address= listener.accept0

print('Connection from host {!r) and port {}'.format(*address》

ssl_sock= context.wrap_socket(raw_sock, server_side=True)

ssl_sock.sendall('My name is TSLServer.'.encode('ascii'》

ssl_sock.close0

3.3客戶端實現

客戶端需要公鑰證書cert.crt文件,不需要服務端私鑰。在測試時,需要提供與證書生成時對應的common name項對應的正確域名,本次測試使用127.0.0.1,在互聯網環境中需要使用正確的域名。部分客戶端代碼:

def tsl_cleint(address):

cafile= "{:ert.crt"

host, port= address

purpose= ssl.Purpose.SERVER_AUTH

context= ssl.create_default_context(purpose, caf/le=caf/le)

raw_sock = socket. socket(socket. AF_INET, socket.SOCK_STREAM)

raw_sock.connect《host, port》

print('Connected to host(!r} and port {".format(host, port》

4測試與結論

4.1測試

啟動服務端,同時啟動RawCap抓包工具,運行客戶端程序對服務端發送請求并獲得服務端的返回數據。對本地ip抓包捕獲9000端口內容,與沒有采用TSL安全傳輸進行對比;對TSL握手階段不同階段的抓包內容進行對比。

對比圖1和圖2中內容,在沒有采用TLS協議的TCP通信中,傳輸的是明文內容;使用了TSL協議之后,捕獲的TCP傳輸內容不再可見,是加密的內容。

對比圖3和圖4中的內容,得知TSL握手協議的前面三次會話是采用的明文傳輸,所以服務端發送給客戶端的證書也是明文傳輸的;直到會話密鑰產生后的傳輸內容才采用密文傳輸。

4.2結論

在典型的TSL通信場景中,客戶端向服務器索取證書,證書被信任機構簽名生效,且包含一個公鑰。客戶端對證書中聲明的身份進行第三方驗證,確認其安全匹配。客戶端與服務器就加密算法、壓縮以及密鑰等設定進行協商,最后使用協商結果的方案對套接字上雙向傳輸的數據進行安全保護。

通過測試對比,采用TSL協議后的TCP傳輸內容為密文,對傳輸數據起到了明顯的安全保護,進步改進TCP服務端,可以在此基礎上構建出完整安全的TCP服務器。

參考文獻:

[1]古爾利(David Gourley)等.HTTP權威指南[M].北京:人民郵電出版社,2012.

[2] RESCORLA E.The Transport Layer Security (TLS) ProtocolVersion l.3 - draft - ietf - tls - tls13 - 10[DB/OL].[2018 - 03 -30].https://tools.ietf.org/html/draft - ietf - tlstls13 - 10 (2015).

[3] RESCORLA E.rlhe Transport Layer Security (TLS) Protocol Ver-sion l.3 - draft - ietf - tls - tls13 - 13[DB/OL].[2018 - 03 -30].https://tools.ietf.org/htmUdraft - ietf - tlstls13 - 13 (2016).

[4] RESCORLA E.'rhe Transport Layer Security (TLS) Protocol Ver-sion l.3 - draft - ietf - tls - tls13 - 18[DB/OL].[2018 - 03 -30].https://tools.ietf.org/html/draft - ietf - tlstls13 - 18 (2016).

[5]閆露,鄧浩,江陳曉.TLS協議現狀與研究綜述[J].網絡新媒體技術,2019,8(01):1-8.

[6]百度百科.TSL[EB/OL].https://baike. baidu. com/item/TLS/2979545.

[7]張興隆,程慶豐,馬建峰.TLS l.3協議研究進展[J].武漢大學學報:理學版,2018,64(06):471-484.

[8]簡書.OpenSSL下載安裝[EB/OL].htfps://www.jianshu.c om/p/12aldc4ah7aO

【通聯編輯:代影】

收稿日期:2019-11-11

基金項目:湖南省教育廳科學研究規劃課題(編號:17C0477)作者簡介:文志華(1982-),男,湖南桃江人,講師,碩士,主要研究方向為網絡安全、智能醫療信息處理;周序生,副教授,碩士,主要

研究方向為網絡安全、大數據處理。

主站蜘蛛池模板: 日本成人不卡视频| 狠狠久久综合伊人不卡| 福利视频99| 亚洲欧美国产五月天综合| 国产免费人成视频网| 精品国产免费第一区二区三区日韩| 国产美女精品人人做人人爽| 黄片在线永久| 欧美成人精品高清在线下载| 久久香蕉国产线看观看精品蕉| 成人日韩视频| 久久久受www免费人成| 免费又黄又爽又猛大片午夜| 久久综合伊人 六十路| 日本伊人色综合网| 国内自拍久第一页| 女人18毛片一级毛片在线| 午夜少妇精品视频小电影| 亚洲人妖在线| 中文字幕在线日本| 2022精品国偷自产免费观看| 91精品亚洲| 视频二区欧美| 亚洲日韩欧美在线观看| 亚洲区第一页| 久久久久国色AV免费观看性色| 日韩国产精品无码一区二区三区| 亚洲成a人片| 亚洲精品少妇熟女| 亚洲国产精品国自产拍A| 久久久久亚洲av成人网人人软件| 国产日产欧美精品| 亚洲综合色婷婷中文字幕| 亚洲AV无码久久精品色欲| 国产一级做美女做受视频| 午夜日b视频| 蝴蝶伊人久久中文娱乐网| 久久99久久无码毛片一区二区| 亚洲av综合网| 国产精品无码AⅤ在线观看播放| 国产日韩精品欧美一区喷| 波多野结衣AV无码久久一区| 极品性荡少妇一区二区色欲 | 538精品在线观看| 日本道综合一本久久久88| 91无码国产视频| 国产在线自乱拍播放| 在线欧美日韩| 国产精品区网红主播在线观看| 国产视频 第一页| 国产亚洲视频播放9000| 日韩无码黄色| 国产精品观看视频免费完整版| 久久久久国产一级毛片高清板| 亚洲精品第1页| 午夜影院a级片| a欧美在线| 国产青榴视频在线观看网站| 韩国v欧美v亚洲v日本v| 久久夜色撩人精品国产| 4虎影视国产在线观看精品| 国产97视频在线观看| 综合亚洲网| 欧美日韩专区| 久久情精品国产品免费| 中文字幕 91| 国产成人免费手机在线观看视频| 欧美区日韩区| 亚洲欧美综合在线观看| 欧美翘臀一区二区三区| 国产精品成人一区二区| 波多野结衣中文字幕一区| 97se亚洲综合| 青青极品在线| 国产精品55夜色66夜色| 亚洲一区色| 欧美国产日产一区二区| 国产精品久久久久久久久kt| 99久久精品国产自免费| 国产亚洲高清视频| 99re在线视频观看| 国产麻豆va精品视频|