国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種高性能的ssl代理裝置及其方法

      文檔序號:8415567閱讀:443來源:國知局
      一種高性能的ssl代理裝置及其方法
      【技術(shù)領(lǐng)域】
      [0001]本發(fā)明涉及網(wǎng)絡(luò)安全領(lǐng)域,尤其涉及一種高性能的SSL代理裝置及其方法。
      【背景技術(shù)】
      [0002]伴隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,人們的生活越來越多的與網(wǎng)絡(luò)息息相關(guān),例如娛樂消遣、查閱資料、購物支付、網(wǎng)上繳費、看病掛號等等。爆發(fā)式增長的網(wǎng)絡(luò)用戶,海量的個人信息存在于網(wǎng)絡(luò)中。對于個人信息,每個人都是敏感的,去年國內(nèi)幾大網(wǎng)站相繼曝出用戶信息泄露,更是觸動著用戶的神經(jīng)。為了增加安全性,越來越多的網(wǎng)站增加超文本傳輸安全協(xié)議(HTTPS)的應(yīng)用。HTTPS協(xié)議很早就被用于網(wǎng)絡(luò)通訊中,由于HTTPS的安全隧道建立會非常消耗CPU資源,現(xiàn)在只廣泛用于網(wǎng)絡(luò)上安全敏感的通訊,例如支付方面。由于網(wǎng)絡(luò)安全問題頻頻曝出,也讓用戶越來越關(guān)心,越來越多的網(wǎng)站在用戶注冊登錄的交互過程中使用HTTPS協(xié)議。但由于服務(wù)器性能和用戶體驗的考慮,很少有網(wǎng)絡(luò)公司全部支持HTTPS訪問。性能瓶頸就存在于用戶與服務(wù)器交互時,WEB服務(wù)軟件在建立SSL隧道是嚴重消耗服務(wù)器的CPU資源的,對于現(xiàn)在網(wǎng)站龐大的用戶量,服務(wù)器要處理龐大的用戶訪問,處理性能捉襟見肘,所以SSL加密卡的應(yīng)用開始需求大增。
      [0003]由于SSL加密卡具有獨立SSL處理芯片,可以解放服務(wù)器CPU的資源用于處理其他事務(wù),可以顯著提高HTTPS的處理性能。SSL加密卡一般像獨立顯卡一樣安裝在主板PCI插槽上。但是如果想充分發(fā)揮SSL加密卡的性能,要充分了解SSL加密卡處理芯片及驅(qū)動的特性,并針對其特性設(shè)計優(yōu)化應(yīng)用層軟件的處理結(jié)構(gòu)。
      [0004]目前現(xiàn)有技術(shù)采用WEB服務(wù)軟件來配合SSL加密卡來完成SSL的加解密并進行數(shù)據(jù)的讀寫。參看圖1,現(xiàn)有的WEB服務(wù)軟件采用的是多進程結(jié)合epoll非阻塞10網(wǎng)絡(luò)模型的方式,此類WEB服務(wù)軟件在用戶端和資源服務(wù)器之間扮演一個SSL代理的角色,其主要處理過程的步驟如下:
      [0005]步驟一、初始化SSL環(huán)境配置和套接字并設(shè)置屬性,開啟監(jiān)聽;
      [0006]步驟二、創(chuàng)建子進程,初始化epoll結(jié)構(gòu),添加待處理事件,等待事件觸發(fā);
      [0007]步驟三、用戶訪問時,觸發(fā)epoll事件,返回用戶的套接字,處理與用戶和后臺資源服務(wù)器的SSL協(xié)商操作并分別建立和用戶的SSL連接以及和后臺資源服務(wù)器的SSL連接,然后將用戶套接字加入epoll事件監(jiān)聽隊列,處理后續(xù)用戶請求;
      [0008]步驟四、接收用戶的資源操作請求并進行用戶端和后臺資源服務(wù)器的讀寫數(shù)據(jù)操作;
      [0009]步驟五、用戶完成訪問,SSL代理程序關(guān)閉連接,回收資源。
      [0010]其中步驟三的詳細處理流程如下:
      [0011]步驟三? 1、SSL代理進程收到用戶請求;
      [0012]步驟三.2、獲取用戶的套接字;
      [0013]步驟三.3、與用戶端建立SSL連接,再與后臺資源服務(wù)器建立SSL連接(此應(yīng)用情景中,與后臺資源服務(wù)器連接也需要SSL保護),此時SSL代理進程已經(jīng)在用戶和后臺資源間建立了雙向的SSL隧道。
      [0014]其中步驟三的詳細處理流程如下:
      [0015]等待處理用戶請求資源,通過SSL_read()和SSL_Write()在用戶端和后臺服務(wù)器端讀寫數(shù)據(jù)。
      [0016]所述現(xiàn)有技術(shù)的SSL服務(wù)軟件采用非阻塞的epoll模型結(jié)合多進程模式。但是現(xiàn)有技術(shù)的SSL服務(wù)軟件,因為處理與用戶端和后臺服務(wù)器的SSL連接、用戶與后臺服務(wù)器數(shù)據(jù)讀寫在同一個epoll循環(huán)中,互相影響使程序執(zhí)行不夠高效,所以有不少可以優(yōu)化的空間。
      [0017]在高負荷情況下,由于進程既要處理雙向SSL連接的協(xié)商,還要處理雙向數(shù)據(jù)的讀寫,SSL協(xié)商過程又是很耗時的過程,會影響讀寫數(shù)據(jù)的速率,讀寫數(shù)據(jù)量如果很大的話,又對新建連接速度產(chǎn)生影響,不夠高效。
      [0018]另外,參看圖2,目前現(xiàn)有的SSL加密卡處理芯片有如下特性:SSL加密卡有N個加解密處理核心,N通常為64。SSL加密卡設(shè)有數(shù)據(jù)處理隊列,處理隊列緩沖器為2048個,SSL加密卡的處理流程步驟如下:
      [0019]步驟一、獲取從用戶端發(fā)送到內(nèi)核的待加解密的數(shù)據(jù);
      [0020]步驟二、將待處理數(shù)據(jù)起始和結(jié)束地址、處理命令、處理完數(shù)據(jù)存放地址,狀態(tài)標志位填充到處理隊列緩沖器中;
      [0021]步驟三、執(zhí)行驅(qū)動程序中數(shù)據(jù)處理函數(shù),將緩沖器作為函數(shù)的參數(shù)傳入;
      [0022]步驟四、函數(shù)處理完成返回,用戶端根據(jù)系統(tǒng)狀態(tài)去讀取處理完的數(shù)據(jù)。
      [0023]經(jīng)過我們實測的數(shù)據(jù),當隊列里面有I個待處理數(shù)據(jù)的情況,處理時間為20us ;隊列有2000個待處理數(shù)據(jù)時,執(zhí)行數(shù)據(jù)處理函數(shù)后,函數(shù)會將buffer平分到64個處理核同時處理,處理時間大約為625us。就是說當要處理2000個數(shù)據(jù),每次處理一個,需要20*2000us ;2000個數(shù)據(jù)同時放入緩沖器處理只需要625us。
      [0024]由此可知,現(xiàn)有的SSL加密卡每次執(zhí)行數(shù)據(jù)處理函數(shù)時,隊列里面有2000個數(shù)據(jù)同時處理和只有一個數(shù)據(jù)單獨進行處理,處理的效率有很大提升。
      [0025]因此,現(xiàn)有技術(shù)的SSL服務(wù)軟件存在創(chuàng)建雙向SSL連接耗費大量時間并影響讀寫數(shù)據(jù)速率,而數(shù)據(jù)讀寫量大的時候也對創(chuàng)建新的SSL連接造成影響的問題。并且現(xiàn)有技術(shù)的SSL服務(wù)軟件未考慮SSL加密卡處理芯片的特性,仍存在很大的改進空間。

      【發(fā)明內(nèi)容】

      [0026]有鑒于此,本發(fā)明的目的是提供一種高性能的SSL代理裝置及其方法,以充分利用SSL加密卡處理芯片的特性來提高數(shù)據(jù)處理的性能,使其能夠在高壓力工作時更加穩(wěn)定。
      [0027]為實現(xiàn)上述目的,本發(fā)明提供技術(shù)方案如下:一種高性能的SSL代理裝置,其作為WEB服務(wù)軟件應(yīng)用于服務(wù)器。包括:
      [0028]用戶端連接模塊,用于接收用戶訪問并同用戶端進行協(xié)商,建立用戶端SSL連接。
      [0029]后臺處理模塊,用于接收用戶的資源操作請求并同后臺資源服務(wù)器進行協(xié)商,建立后臺資源服務(wù)器連接,并根據(jù)用戶的資源操作請求,進行用戶端和后臺資源服務(wù)器的讀寫數(shù)據(jù)操作。
      [0030]所述用戶端連接模塊和所述后臺處理模塊分別位于同一進程的兩個線程中。
      [0031 ] 所述后臺處理模塊建立和后臺資源服務(wù)器連接為建立和后臺資源服務(wù)器SSL連接。
      [0032]所述用戶端連接模塊和所述后臺處理模塊分別采用各自的epoll模型。
      [0033]所述印oil模型可以為阻塞的印oil結(jié)構(gòu)或者非阻塞的印oil結(jié)構(gòu)。
      [0034]所述用戶端連接模塊包括:初始化單元,用于進行epoll初始化;套接字返回單元,用于在用戶訪問觸發(fā)epoll事件時,返回用戶套接字;SSL協(xié)商單元,用于和用戶端進行SSL協(xié)商,建立SSL連接;線程處理單元一,用于將用戶的套接字和SSL結(jié)構(gòu)體添加到線程處理塊結(jié)構(gòu)體數(shù)組中并初始化線程處理塊結(jié)構(gòu)體數(shù)組中的相關(guān)值;監(jiān)聽隊列加入單元一,將用戶的套接字加入線程中的epoll事件監(jiān)聽隊列。
      [0035]所述后臺處理模塊包括:epoll等待單元,用于在接收到用戶的資源操作請求后,線程等待事件的觸發(fā);SSL連接單元,用于根據(jù)與后臺資源服務(wù)器建立連接的狀態(tài)值與后臺資源服務(wù)器協(xié)商,建立SSL連接;線程處理單元二,用于將與后臺資源服務(wù)器連接的套接字和SSL結(jié)構(gòu)體加入線程處理塊結(jié)構(gòu)體數(shù)組中并初始化線程處理塊結(jié)構(gòu)體數(shù)組中的相關(guān)值;監(jiān)聽隊列加入單元二,將后臺資源服務(wù)器的套接字加入線程中的epoll事件監(jiān)聽隊列。
      [0036]所述后臺處理模塊還包括:操作處理單元,用于線程的印oil事件觸發(fā)后根據(jù)用戶的資源操作請求,進行用戶端和后臺資源服務(wù)器的讀寫數(shù)據(jù)操作。
      [0037]所述操作處理單元完成用戶端和后臺資源
      當前第1頁1 2 3 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1