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

基于瀏覽器WebAssembly技術的即時通信加密通信系統的設計與研究

2019-03-18 16:37:35楊旸王明華潘俊臣胡沖
網絡空間安全 2019年8期

楊旸 王明華 潘俊臣 胡沖

摘? ?要:文章分析研究了WebAssembly的相關技術,提出了一種基于瀏覽器WebAssembly虛擬機加密的即時通信加密通信系統方案。系統瀏覽器的客戶端之間加密通信采用端到端的加密機制,傳輸信息的加密密鑰自動生成、安全分發,能夠實現通信傳輸全過程加密和通信加密“一次一密”,有效地抵御攻擊者分析、破譯瀏覽器客戶端之間的加密傳輸通信信息。

關鍵詞:WebAssembly;瀏覽器;三層密鑰體系;密鑰協商;即時通信加密

1 引言

即時通信作為互聯網上被廣泛使用的網絡應用,可為用戶提供文字、語音、圖片、文件等多種媒體信息通信的能力,在用戶的工作和生活中發揮出越來越大的作用。在對獲得便捷、高效地通信體驗的同時,用戶出于個人隱私和企業秘密的保護,對即時通信信息安全需求也越發迫切[1]。本文旨在研究設計一套基于WebAssembly技術的即時通信加密通信系統,實現即時通信的信息安全傳輸,同時實現了基于瀏覽器的跨平臺即時通信客戶端,可為用戶提供安全的即時通信和多平臺下便捷的客戶端訪問。

如今的智能手機終端操作系統主要有兩類:谷歌的Android系統和蘋果的iOS系統。而計算機桌面的操作系統,則有微軟的Windows,蘋果的Mac OS和Linux等。即時通信加密通信系統若要為不同的終端類型和操作系統開發和適配不同的即時通信APP軟件,則會存在開發成本高、用戶使用成本高、產品迭代速度慢、系統維護復雜等諸多問題。研究設計基于瀏覽器的即時通信加密通信系統具有現實意義,系統可部署運行于公眾互聯網絡,實現即時消息傳輸加密,同時通過瀏覽器實現客戶端的跨平臺訪問。

在各類瀏覽器中,即使Chrome、Firefox、Safari、Edge能夠運行的語言是JavaScript,但是由于傳統 JavaScript這門解釋性腳本語言本身的缺陷,使得瀏覽器端的即時通信加密性能很不理想[2]。本方案重點研究WebAssembly技術在瀏覽器上的應用,WebAssembly是一種運行在網絡瀏覽器中低級的類匯編語言,具有緊湊的二進制格式,與JavaScript相比,可以使得瀏覽器端即時通信中加密運算性能得到明顯提升。

2 WebAssembly技術

WebAssembly(簡稱“WASM”)是一種以安全有效地方式運行可移植程序的新技術,主要針對Web平臺[3]。它是一種可以使用非 JavaScript 編程語言編寫代碼并且能在瀏覽器上運行的技術方案。它可以用高級語言編譯出字節碼放到WebAssembly虛擬機中運行,各瀏覽器廠商根據WebAssembly字節碼標準規范實現虛擬機。

WebAssembly格式是一種新的字節碼格式,和JavaScript需要解釋執行不同的是,WebAssembly字節碼和底層機器碼很相似,可快速裝載運行,因此性能相對于JavaScript解釋執行大大提升。相對于JavaScript,WebAssembly有三個優點。

(1)體積小。由于瀏覽器運行時只加載編譯成的字節碼,一樣的邏輯比字符串描述的JavaScript文件體積小很多。

(2)加載快。由于文件體積小,再加上無需解釋執行,WebAssembly能更快的加載并實例化,減少運行前的等待時間。

(3)兼容問題少。WebAssembly是非常底層的字節碼規范,制定好以后很少變動,就算發生變化,只需要從高級語言編譯成字節碼過程做兼容。

3 基于混合密碼體制和多層密鑰體系

基于即時通信業務的應用特點,加密的密碼體制采用非對稱密碼和對稱密碼相結合的混合密碼體制[4]。業務信息加密和本地存儲加密采用對稱密鑰密碼體制,即時通信密鑰協商采用非對稱密碼體制和對稱密碼體制結合實現。

系統設計非對稱的用戶密鑰、對稱的密鑰加密密鑰、會話密鑰三層密鑰體系,為即時通信加密系統提供安全高效的密碼保護,密鑰結構如圖1所示。

用戶密鑰采用非對稱的公私鑰對,提供密鑰管理中心與瀏覽器客戶端間的簽名認證和密鑰加密密鑰協商服務,以及瀏覽器客戶端間簽名認證和會話密鑰協商服務。密鑰加密密鑰用于瀏覽器客戶端與密鑰分發中心間群組密鑰、會話密鑰分發,以及管理信息的加密保護。會話密鑰用于業務信息的加密保護。

4 系統設計

4.1系統組成

即時通信加密通信系統由即時通信服務器、Web服務器和密鑰管理中心組成,組成結構如圖2所示。

即時通信服務器為即時通信提供服務,實現了對單人或群組的文字、圖片、語音、文件的收發[5]。Web服務器提供HTTPS的Web服務,為手機終端(操作系統為iOS、Android)和PC終端用戶提供基于瀏覽器的操作界面,實現用戶注冊、點對點即時消息、群組即時消息等操作。同時,Web服務器將加密功能代碼進行WebAssembly封裝并且載入到終端瀏覽器虛擬機中,為即時消息內容加密保護以及通信雙方身份鑒別提供安全保障。密鑰管理中心離線部署,為用戶離線分發密鑰和證書文件并通過用戶口令加密存儲在瀏覽器嵌入式數據庫indexeDB中。

4.2 部署示意

即時通信加密通信系統拓撲圖如圖3所示。

即時通信服務器和Web服務器支持用戶自建或者云端部署,用戶自建支持集群部署,通過LVS+Keepalived實現高可用性集群,LVS提供負載均衡,Keepalived提供健康檢查,故障轉移,提高系統的可用性。密鑰管理中心離線部署不聯網,通過移動存儲介質將密鑰和證書文件導入到用戶終端瀏覽器內。

4.3 密碼算法和密鑰配用

即時通信加密系統配置對稱分組密碼算法(以AES為例)、公鑰密碼算法(以ECC公鑰密鑰算法為例)和雜湊密碼算法(以SHA256為例)三類密碼算法[6]。對稱算法用于即時消息傳輸加密保護和本地數據加密保護。ECC公鑰算法密鑰協商簽名驗簽。雜湊算法用于計算簽名數據摘要和認證口令保護。

即時通信加密系統配用的密鑰如表1所示。

4.4 即時通信安全性設計

4.4.1 點對點即時通信流程

點對點即時通信業務通過即時通信服務器中轉實現,即時通信服務器為即時通信提供緩存與轉發服務,實現文字、圖片、語音、短視頻等即時通信業務和通信信息的收發。具體流程如圖4所示。

(1)發送方發起點對點即時消息通信,用戶選擇接收方;

(2)發送方通過即時通信服務器與接收方進行密鑰協商,具體密鑰協商流程參見4.4.3;

(3)發送方編輯即時消息,對消息進行加密,消息加密機制參見4.4.4,然后將加密消息發送給即時通信服務器;

(4)即時通信服務器查找接收對象,若接收方在線,發送有消息提醒給接收方;

(5)接收方從即時通信服務器獲取消息內容;如果是文字語音類消息,解密瀏覽器網頁閱讀消息;如果是文件圖片視頻類消息,將附件密文存儲在本地,通過瀏覽器打開附件,在內存中解密閱讀;

(6)若接收方離線,待其上線后,向即時通信服務器查詢有新消息,則通過即時通信服務器獲取發送方的密鑰協商信息,獲取通信密鑰后,從即時通信服務器獲取消息進行解密查看,查看方式和在線時相同。

4.4.2 群組即時通信流程

群組即時消息通信流程與點對點相似,在創建群組或成員加入群組時,由發起群組即時消息的發起方與參與方進行一對一的密鑰協商,協商出預主密鑰A_CC,通過A_CC加密保護群組密鑰TGK(由發起方產生)后分發給群里各參與方。后續即時消息通信發送接收流程與點對點流程類似,只是通過群組密鑰TGK來導出或保護工作密鑰。

4.4.3 預主密鑰協商流程

瀏覽器客戶端點對點即時通信時,通過密鑰協商協議實現預主密鑰A_CC定期更換和用戶身份認證。協商流程如圖5所示。

(1)接收方預先上傳相關的NT_PKB和CertB、MACB到即時通信服務器;IDB為接收方瀏覽器客戶端B的唯一編號,CertB為密鑰管理中心離線注入到瀏覽器客戶端B的證書,NT_PKB? 為瀏覽器客戶端B產生的臨時公鑰,MACB為IDB+NT_PKB+CertB雜湊算法計算后的驗證碼;

(2)瀏覽器客戶端A向即時通信服務器獲取IDB、NT_PK B和CertB、MACB,通過提取CertA中密鑰管理中心公鑰R_PK對 CertB進行驗證,并雜湊算法計算驗證MACB;

(3)瀏覽器客戶端A通過瀏覽器私鑰B_SKA與NT_PK B進行ECC點乘運算得到DAB;

(4)瀏覽器客戶端A上傳與相關的NT_PK A和CertA、MACA到即時通信服務器, IDA為接收方瀏覽器客戶端A的唯一編號,CertB為密鑰管理中心離線注入到瀏覽器客戶端A的證書,NT_PKA瀏覽器客戶端A產生的臨時公鑰,MACA為IDA+NT_PKA+CertA雜湊算法計算后的驗證碼;

(5)瀏覽器客戶端B向即時通信服務器獲取IDA、NT_PKA和CertA、MACA,通過提取CertB中密鑰管理中心公鑰R_PK對 CertA進行驗證,并雜湊算法計算驗證MACA;

(6)瀏覽器客戶端B通過瀏覽器私鑰B_SKB與NT_PKA進行ECC點乘運算得到DAB;協議雙方對DAB進行雜湊算法計算得到預主密鑰A_CC。

4.4.4 消息加密密鑰產生機制

點對點通信時,使用用戶密鑰GBK和協商出的預主密鑰A_CC派生工作密鑰WK和初始向量IV(派生過程采用PBKDF2偽隨機函數)。群組工作時,使用用戶密鑰GBK、群組密鑰TGK派生工作密鑰和初始向量IV。然后,采用對稱算法對消息進行加密保護,最后將數據組幀發送。

其中,群組密鑰TGK采用定時更換機制或者發送一定數量的消息后進行更換。群組密鑰TGK也可以增加按天進行滾動的滾動機制,進行滾動更新。

通過本文描述的預主密鑰協商、定時更換機制、按天進行滾動的滾動機制以及基于每條消息產生的工作密鑰,實現了即時消息的“一話一密”加密通信和一定時間間隔的前向安全防護。通過對消息的完整性驗證,實現了隱式的用戶身份驗證及數據源驗證。

如果攻擊者進行假冒、偽造和替代,由于不知道通信雙方的私鑰,不能得到工作密鑰,攻擊者和合法用戶接收到的信息為亂碼,實現了機密性保護和用戶身份認證。

5 結束語

基于瀏覽器WebAssembly技術的即時通信加密系統,基于混合密碼體制和多層密鑰體系設計,采用安全適用的加密體制和加密協議,無中心端到端的密鑰協商分發機制和離線加載的密碼保障方案。目前,該系統已經在安卓、蘋果手機的Safari瀏覽器,計算機上的Chrome、Firefox、Safari、Edge等多款主流瀏覽器上成功應用,經過測試運行穩定,符合預期要求。

參考文獻

[1] 陳旭,郭文平. 基于RSA和TDES的安全即時通信系統設計[J]. 微型電腦應用,2009(09).

[2] Paul Krill,Paul Krill. Google's V8 JavaScript engine now backs WebAssembly[J]. InfoWorld.com,2016.

[3] 唐偉,劉國山,王亞翔. 一種基于分級保護的企業即時通信系統的設計與實現[J].通信技術,2016(06).

[4] 何文海,信佳佳. 網絡信息安全中存在的問題及數據加密技術研究[J].網絡空間安全,2019(01).

[5] 張杰,李曄,宮曉飛,張鵬,姜競賽. 應用于衛星電話的端到端加密系統的研究與實現[J]. 電聲技術,2019(06).

[6] 張義偉. 關于AES算法在端到端通信加密模塊中的實現及應用設計研究[J].中國新通信,2016(20).

主站蜘蛛池模板: 99热这里只有精品在线播放| 91福利国产成人精品导航| 真人免费一级毛片一区二区| 91福利片| 4虎影视国产在线观看精品| 极品国产一区二区三区| 亚洲精品图区| 国产一级毛片yw| 色播五月婷婷| 就去吻亚洲精品国产欧美| 黄色三级网站免费| 国产va在线观看| 在线a视频免费观看| 在线五月婷婷| 玖玖精品在线| 久久综合成人| 亚洲无码91视频| 国产尹人香蕉综合在线电影| 狠狠色狠狠综合久久| 一级做a爰片久久免费| 国产精品黄色片| 香蕉伊思人视频| 蜜桃视频一区二区| 欧美福利在线| 久久综合伊人77777| 久久精品亚洲中文字幕乱码| 亚洲欧美日韩中文字幕在线一区| 国产理论一区| 日本精品视频| 久久久噜噜噜久久中文字幕色伊伊 | 福利国产微拍广场一区视频在线 | 99久久成人国产精品免费| 欧美日韩国产高清一区二区三区| 亚洲欧洲免费视频| 亚洲一区无码在线| 伊人久久久久久久| h网站在线播放| 色妞永久免费视频| 亚洲无线一二三四区男男| 欧美日本在线播放| 久热re国产手机在线观看| 一区二区无码在线视频| 国产95在线 | 国产成人亚洲欧美激情| 在线精品视频成人网| 久久频这里精品99香蕉久网址| 高清久久精品亚洲日韩Av| 日韩av电影一区二区三区四区| 国产在线第二页| 亚洲天堂视频在线观看| 99ri国产在线| 国产精品精品视频| 日本三级黄在线观看| 亚洲bt欧美bt精品| 天天婬欲婬香婬色婬视频播放| 伊人成人在线视频| 综合色在线| hezyo加勒比一区二区三区| 一本大道香蕉高清久久| 亚洲二区视频| 久久精品国产免费观看频道| 国产午夜一级毛片| 精品久久久久成人码免费动漫| 国产jizz| 天天躁夜夜躁狠狠躁图片| 伊人久久久久久久| 91区国产福利在线观看午夜 | 欧美精品三级在线| 色视频久久| 一级香蕉人体视频| 久久精品亚洲热综合一区二区| 国产美女免费| 香蕉久久国产超碰青草| 中文国产成人久久精品小说| 久久人与动人物A级毛片| 久久国产精品国产自线拍| 中文字幕不卡免费高清视频| 亚洲国产无码有码| 一级毛片免费观看不卡视频| 97超碰精品成人国产| 国产成人一区免费观看| 国产小视频免费|