• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于OpenSSL的SM2與RSA自動切換算法的設(shè)計(jì)

      2018-02-07 01:47:25賈冀芳張立新廖明耀
      關(guān)鍵詞:服務(wù)端套件新建

      賈冀芳,張立新,廖明耀

      北京中電普華信息技術(shù)有限公司 研發(fā)事業(yè)部,北京 100192

      1 引言

      我國政府高度重視密碼算法國產(chǎn)化升級改造工作[1]。國家電網(wǎng)公司也高度重視基礎(chǔ)軟硬件的自主、安全、可控工作。在安全中間件項(xiàng)目中使用SSL/TLS協(xié)議實(shí)現(xiàn)HTTPS的安全訪問。但是,SSL/TLS協(xié)議使用的密碼算法套件全部是國外密碼算法,不符合自主、安全、可控的要求[2-3]。因此,決定使用國家商用密碼算法(以下簡稱:國密算法)[4]替換國外通用密碼算法(以下簡稱:通用密碼算法)實(shí)現(xiàn)SSL/TLS協(xié)議。新的問題出現(xiàn):國密算法的速度要比同安全級別的通用密碼算法的速度慢,不能滿足大并發(fā)、高性能用戶的需求。為平衡性能與安全性兩方面的需求:在滿足性能的前提下,有效提高系統(tǒng)的安全性,在OpenSSL上設(shè)計(jì)一種能夠根據(jù)當(dāng)前每秒新建SSL/TLS連接數(shù),自動選擇SM2或RSA[5]的算法。即SSL/TLS連接既可以使用提前配置好的密碼算法套件,也可以在握手過程中根據(jù)當(dāng)前每秒新建連接數(shù)自動選擇密碼算法套件。

      2 背景概述

      2.1 研究背景

      安全中間件系統(tǒng)由客戶端和服務(wù)端兩部分組成:客戶端是支持基于國密算法和通用密碼算法SSL/TLS協(xié)議的瀏覽器。服務(wù)端包括支持基于國密算法和通用密碼算法SSL/TLS協(xié)議的Web服務(wù)器和WebService服務(wù)器以及數(shù)據(jù)庫。用戶使用瀏覽器發(fā)起https訪問請求,服務(wù)端和用戶端進(jìn)行基于SSL/TLS協(xié)議的證書認(rèn)證(雙向認(rèn)證可選)、加密傳輸訪問請求與響應(yīng)數(shù)據(jù)。安全中間件系統(tǒng)中的SSL/TLS協(xié)議既支持通用密碼算法也支持國密算法。系統(tǒng)組成架構(gòu)如圖1所示。

      圖1 基于國密算法的應(yīng)用服務(wù)器中間件組成架構(gòu)

      2.2 研究現(xiàn)狀

      SSL/TLS協(xié)議的安全性和性能包括握手協(xié)議和記錄協(xié)議的安全性和性能。其中,記錄協(xié)議使用對稱密碼算法,而國外通用對稱密碼算法與國家商用對稱密碼算法在密鑰長度相等的情況下性能相當(dāng)、安全性也相當(dāng)(不考慮后門)。因此,SSL/TLS協(xié)議的安全性和性能主要取決于握手協(xié)議的安全性和性能[4]。

      基于握手協(xié)議主要采用非對稱密碼算法實(shí)現(xiàn),其安全性主要取決于非對稱密碼算法的安全性。握手協(xié)議通常使用的非對稱密碼算法是RSA。為了在密鑰長度相當(dāng)?shù)那闆r下提高握手協(xié)議的安全性,有研究使用ECC(橢圓曲線加密算法)算法替換RSA算法[6-7]。我國政府為實(shí)現(xiàn)信息安全的自主、可控,要求用國產(chǎn)SM2(由國家保密局根據(jù)ECC加解密原理推出的橢圓曲線密碼算法)算法替換RSA。密鑰長度為233的SM2或ECC算法與密鑰長度為2 240的RSA算法的安全強(qiáng)度一樣是112級。具體安全級別對照表如表1所示[5]。

      表1 SM2/ECC、RSA及對稱密碼算法安全級別對照表

      性能方面,與握手協(xié)議中4個階段、13次交互相比[5],非對稱密碼算法的性能對握手協(xié)議性能的影響更顯著。在實(shí)際應(yīng)用中,由于SSL/TLS協(xié)議常常應(yīng)用在實(shí)時場景中,對性能要求較高。因此,選擇高性能的非對稱密碼算法就顯得更加重要[6]。

      ECC算法與RSA相比,雖然在相同密鑰長度下安全性更高,但是性能卻低于RSA[8-9]。ECC在密鑰長度不高于283位時的簽名時長是RSA的平均6.7倍,驗(yàn)簽時長是RSA的平均53倍[10]。

      在CPU Intel P4 2.0 GHz、內(nèi)存512 MB的PC機(jī)上對長度為100 KB的文本文件進(jìn)行簽名與驗(yàn)簽測試,具體性能數(shù)據(jù)請參見文獻(xiàn)[10]。

      同樣,SM2算法與RSA相比,在相同安全級別下,RSA性能高于SM2。在相同計(jì)算環(huán)境下,256位的SM2性能是2 048位的RSA的0.32倍。256位SM2的簽名速度是2 048位RSA的9倍,256位SM2的驗(yàn)簽速度是2 048位RSA的0.056倍,加密速度與驗(yàn)簽速度相當(dāng),解密速度與簽名速度相當(dāng)。

      表2 SM2與RSA性能對照表 次·s-1

      在SSL/TLS產(chǎn)品中,在相同計(jì)算環(huán)境下,基于SM2的SSL/TLS協(xié)議的每秒新建連接數(shù)是基于RSA的大約0.3倍。SSL/TLS連接性能對照表如表3所示。

      表3 SM2_SSL/TLS與RSA_SSL/TLS性能對照表

      2.3 問題分析

      在相同計(jì)算環(huán)境下,SM2算法實(shí)現(xiàn)的SSL/TLS握手協(xié)議的性能是RSA算法的0.3倍。在高并發(fā)的要求下,SM2算法不能滿足用戶對高性能的需求。針對這一問題,在SSL/TLS握手協(xié)議過程中設(shè)計(jì)一種算法可以在國密SM2算法與通用RSA算法之間自由切換,以實(shí)現(xiàn)在滿足高性能要求的前提下有效提高系統(tǒng)的安全性。

      以開源Openssl庫為基礎(chǔ),設(shè)計(jì)一種自動切換算法:當(dāng)用SM2建立的SSL/TLS每秒新建連接數(shù)不能滿足用戶需求時,系統(tǒng)自動切換到RSA算法,用RSA算法建立SSL/TLS連接,提高每秒新建連接數(shù)以滿足用戶性能需求。

      與現(xiàn)有用SM2實(shí)現(xiàn)SSL/TLS握手協(xié)議相比,自動切換算法能有效提高系統(tǒng)的性能,規(guī)避SM2性能低的弱點(diǎn)。與現(xiàn)有用RSA實(shí)現(xiàn)SSL/TLS握手協(xié)議相比,自動切換算法能有效提高系統(tǒng)的安全性。自動切換算法可以在高性能和高安全性之間達(dá)到平衡,在滿足高性能需求的前提下盡最大可能提高系統(tǒng)的安全性。

      3 系統(tǒng)設(shè)計(jì)

      假設(shè),性能需求是SSL/TLS每秒新建連接數(shù)為6 000。根據(jù)衛(wèi)士通SAG3000的性能指標(biāo),用SM2算法每秒新建數(shù)為3 000,不能滿足性能需求。用RSA算法每秒新建連接數(shù)為9 000,能滿足性能需求,但是不能有效提高安全性。因?yàn)镽SA是國外算法,不能自主、可控。SM2與RSA自動切換算法指先用SM2算法建立SSL/TLS連接,當(dāng)SM2的每秒連接數(shù)達(dá)到3 000時,自動切換到RSA算法,用RSA算法建立SSL/TLS連接,當(dāng)RSA的每秒新建連接數(shù)達(dá)到9 000時,再重新切換回SM2算法,此時平均每秒連接數(shù)為6 000,滿足性能要求。這樣在高性能的要求下有效提高了系統(tǒng)的安全性。

      具體設(shè)計(jì)如下:在OpenSSL1.0.2版本上設(shè)計(jì)SM2與RSA的自動切換算法。首先,設(shè)置SM2的每秒新建連接數(shù)上限為3 000,RSA的每秒新建連接數(shù)上限為9 000。當(dāng)SM2的每秒新建連接數(shù)達(dá)到3 000時,則系統(tǒng)選擇RSA算法建立SSL/TLS連接,當(dāng)RSA的每秒新建連接數(shù)達(dá)到9 000時,則系統(tǒng)重新選擇SM2算法建立SSL/TLS連接。

      3.1 數(shù)據(jù)結(jié)構(gòu)

      在SSL/TLS服務(wù)端設(shè)置8個全局變量:(1)SM2的當(dāng)前新建連接數(shù):SM2_conn_num,記錄當(dāng)前SM2建立的連接數(shù);(2)SM2計(jì)時器:SM2_timer,記錄建立SM2連接所用時間。(3)SM2當(dāng)前每秒新建連接數(shù):SM2_conn_num_persec=SM2_conn_num/SM2_timer,記錄當(dāng)前SM2每秒新建連接數(shù)。(4)RSA的當(dāng)前新建連接數(shù):RSA_conn_num,記錄當(dāng)前RSA建立的連接數(shù)。(5)RSA計(jì)時器:RSA_timmer,記錄建立RSA連接所用時間。(6)RSA當(dāng)前每秒新建連接數(shù):RSA_conn_num_persec=RSA_conn_num/:RSA_timmer,記錄當(dāng)前每秒新建連接數(shù)。(7)當(dāng)前連接計(jì)時器:curr_conn_timer記錄建立當(dāng)前連接所用時間。(8)當(dāng)前密碼算法:curr_cipher,記錄當(dāng)前使用的是SM2還是RSA。

      int SM2_conn_num;/*SM2當(dāng)前新建連接數(shù)*/

      int SM2_timer;/*SM2計(jì)時器*/

      int SM2_conn_num_persec/*SM2當(dāng)前每秒新建連接數(shù)*/

      int RSA_conn_num;/*RSA當(dāng)前新建連接數(shù)*/

      int RSA_timmer;/*RSA連接計(jì)時器*/

      int RSA_conn_num_persec;/*RSA當(dāng)前每秒新建連接數(shù)*/

      int curr_conn_timmer;/*當(dāng)前連接計(jì)時器*/

      bool curr_cipher;/*當(dāng)前使用的密碼算法*/

      3.2 算法

      SSL/TLS服務(wù)端默認(rèn)加密套件設(shè)置為SM2+SM3+SM4,curr_cipher默認(rèn)設(shè)為SM2。服務(wù)端收到SSL/TLS客戶端發(fā)來的Client Hello消息時,先檢查當(dāng)前SM2每秒新建連接數(shù)是否等于或大于3 000(SM2_conn_num_persec≥3 000)并且當(dāng)前RSA每秒新建連接數(shù)是否小于9 000(RSA_conn_num_persec<9 000),如果是,則服務(wù)端重新設(shè)置密碼套件為RSA+SHA1+AES256。并將該密碼套件信息通過服務(wù)端的ServerHello消息發(fā)送給客戶端。同時將SM2_conn_num_persec重新設(shè)為0,將當(dāng)前密碼算法curr_cipher設(shè)為RSA。否則(SM2_conn_num_persec<3 000 or RSA_conn_com_persec≥9 000),服務(wù)端使用默認(rèn)的加密套件SM2+SM3+SM4,并將該加密套件信息通過服務(wù)端的ServerHello發(fā)送給客戶端。同時將RSA_conn_num_persec重新設(shè)為0,將當(dāng)前密碼算法curr_cipher設(shè)為SM2。客戶端和服務(wù)端繼續(xù)后續(xù)的SSL/TLS握手協(xié)議。當(dāng)握手協(xié)議完成,如果當(dāng)前使用的密碼算法是SM2,則計(jì)算SM2當(dāng)前每秒新建連接數(shù)(SM2_conn_num_persec)。如果當(dāng)前使用的密碼算法是RSA,則計(jì)算RSA當(dāng)前每秒新建連接數(shù)(RSA_conn_num_persec)。

      主算法框架如圖2所示。

      握手算法框架如圖3所示。

      圖3 握手算法框架

      密碼套件切換算法框架如圖4所示。

      圖4 密碼切換算法框架

      4 關(guān)鍵技術(shù)

      4.1 握手協(xié)議

      SM2與RSA的自動切換算法在SSL/TLS握手協(xié)議中實(shí)現(xiàn)。SSL/TLS握手協(xié)議是客戶端和服務(wù)端建立SSL連接時使用的第一個子協(xié)議,握手協(xié)議包括客戶端與服務(wù)端之間的一系列消息。該協(xié)議允許服務(wù)端和客戶端雙向身份認(rèn)證,協(xié)商加密算法和摘要算法以及對稱加密密鑰,用來加密在SSL記錄中發(fā)送的數(shù)據(jù)[11]。握手協(xié)議是在應(yīng)用數(shù)據(jù)傳輸之前使用的。握手協(xié)議的4個階段如圖5[12]。

      圖5 SSL/TLS握手過程

      第一階段——建立安全能力

      SSL握手的第一階段(圖6)啟動邏輯連接,建立這個連接的安全能力。首先客戶端向服務(wù)端發(fā)出ClientHello消息并等待服務(wù)端響應(yīng),隨后服務(wù)端向客戶端返回ServerHello消息,對ClientHello消息中的信息進(jìn)行確認(rèn)。

      圖6 SSL/TLS握手協(xié)議階段一

      ClientHello消息包括:(1)Version:客戶端可以支持的SSL最高版本號;(2)Random:用于生成主秘密的客戶端隨機(jī)數(shù);(3)Session id:確定會話的會話ID;(4)Cipher suite:客戶端可以支持的密碼套件列表;(5)Compression method:客戶端可以支持的壓縮算法列表[11]。

      服務(wù)端用ServerHello信息應(yīng)答客戶端,包括下列內(nèi)容:(1)Version:SSL版本號,取客戶端支持的最高版本號和服務(wù)端支持的最高版本號中的較低者;(2)Random:用于生成主秘密的服務(wù)端隨機(jī)數(shù);(3)Session id會話ID;(4)Cipher suite:根據(jù) SM2_conn_num_persec≥3 000 and RSA_conn_num_persec<9 000,選擇密碼套件,如果是,則從客戶端的密碼套件列表中選擇與服務(wù)端相匹配的RSA相關(guān)密碼套件,否則(SM2_conn_num_persec<3 000 or RSA_conn_num_persec≥9 000)從客戶端的密碼套件列表中選擇與服務(wù)端相匹配的SM2相關(guān)密碼套件,(5)Compression method:從客戶端的壓縮方法列表中選擇壓縮方法。

      這個階段之后,客戶端和服務(wù)端知道了下列內(nèi)容:(1)SSL版本;(2)密鑰交換、簽名、驗(yàn)簽和加密算法;(3)壓縮方法;(4)用來生成密鑰的兩個隨機(jī)數(shù)。

      該階段的消息結(jié)構(gòu)如下:

      ClientHello消息[11]

      版本主從隨機(jī)數(shù)時間 隨機(jī)字節(jié)會話ID長度ID加密套件列表長度 套件列表壓縮方法列表長度 方法列表

      ServerHello消息[11]

      ?

      第二階段—— 服務(wù)端身份認(rèn)證與密鑰交換

      服務(wù)端啟動SSL握手第二階段,服務(wù)端是本階段所有消息的唯一發(fā)送方,客戶端是所有消息的唯一接收方。該階段分為4步(如圖7):(1)發(fā)送服務(wù)端證書:服務(wù)端將數(shù)字證書和到根CA的整個證書鏈發(fā)給客戶端,使客戶端能用服務(wù)端證書中的公鑰認(rèn)證服務(wù)端身份;(2)服務(wù)端密鑰交換(可選):這里視密鑰交換算法而定,如果選擇的是RSA或SM2算法,則不需要發(fā)送密鑰交換消息;(3)客戶端證書請求(如果要求客戶端身份認(rèn)證):服務(wù)端要求客戶端證書;(4)服務(wù)端握手完成:第二階段結(jié)束。

      圖7 SSL/TLS握手協(xié)議階段二

      這個階段的前面的(1)證書 和(2)服務(wù)端密鑰交換是基于密鑰交換算法的。而在SSL中密鑰交換算法有以下幾種:無效(沒有密鑰交換)、RSA、SM2、匿名Diffie-Hellman、暫 時 Diffie-Hellman、固 定 Diffie-Hellman、Fortezza。

      在階段一客戶端與服務(wù)端協(xié)商的過程中已經(jīng)確定使用哪種密鑰交換算法。如果協(xié)商過程中確定使用RSA交換密鑰,那么過程如圖8。

      圖8 階段二服務(wù)端RSA證書及密鑰交換消息

      服務(wù)端在它的第一個消息中,發(fā)送服務(wù)端RSA加密/解密公鑰證書。服務(wù)端公鑰證書是客戶端用來驗(yàn)證服務(wù)端身份的。服務(wù)端第二個消息是空的。

      如果在階段一客戶端與服務(wù)端協(xié)商確定的是使用SM2交換密鑰,那么過程如圖9。

      圖9 階段二服務(wù)端SM2證書及密鑰交換消息

      服務(wù)端在它的第一個消息中,發(fā)送服務(wù)端SM2公鑰證書。該證書是客戶端用來驗(yàn)證服務(wù)端身份的。服務(wù)端第二個消息是空的[13]。

      該階段的消息格式如下所示:

      證書Certificate消息[11]

      ?

      密鑰交換KeyExchange消息

      第三階段——客戶端身份認(rèn)證與密鑰交換

      客戶端啟動SSL/TLS握手第三階段,該階段分為三步:(1)客戶端證書(如果要求客戶端身份認(rèn)證):為了證明客戶端的身份,客戶端要發(fā)送自己的證書信息給服務(wù)端,這是可選的。(2)客戶端密鑰交換KeyExchange:這里客戶端生成預(yù)主密鑰(Pre-master-secret),并用服務(wù)端公鑰對其加密,最后發(fā)送給服務(wù)端。(3)客戶端證書驗(yàn)證certificate_verify(如果要求客戶端身份認(rèn)證):客戶端對從第一條消息以來的所有握手消息的HMAC值用私鑰進(jìn)行簽名,并發(fā)送給服務(wù)端,服務(wù)端用客戶端公鑰驗(yàn)證簽名。

      不要求客戶端認(rèn)證的密鑰交換過程如圖10所示。

      圖10 階段三客戶端密鑰交換消息

      需要客戶端身份認(rèn)證的密鑰交換過程如圖11。

      圖11 階段三客戶端證書及密鑰交換消息

      第四階段——完成

      客戶端啟動SSL/TLS握手第四階段,使握手協(xié)議結(jié)束。該階段分為4步,如圖12所示。

      圖12 階段四客戶端證書及密鑰交換消息

      客戶端發(fā)送ChangeCipherSpec告訴服務(wù)端,接下來的消息將采用新協(xié)商的密碼套件和密鑰進(jìn)行通信??蛻舳税l(fā)送Finished消息給服務(wù)端。該消息是客戶端對所有握手消息和計(jì)算出來的主密鑰MasterSecret進(jìn)行消息摘要,并將摘要發(fā)送給服務(wù)端,服務(wù)端在本地進(jìn)行相同的消息摘要計(jì)算,與接收到的客戶端發(fā)送過來的消息摘要進(jìn)行比較,如果相等,則確認(rèn)沒有任何握手消息被篡改過。這是第一條使用新的密碼套件進(jìn)行加密傳輸?shù)南ⅰ?/p>

      服務(wù)端驗(yàn)證完客戶端發(fā)送的Finished消息后,向客戶端發(fā)送ChangeCipherSpec消息,告訴客戶端接下來的消息采用新協(xié)商的密碼套件和密鑰進(jìn)行通信。服務(wù)端也向客戶端發(fā)送Finished消息。該消息是服務(wù)端對所有握手消息和計(jì)算出來的主密鑰MasterSecret進(jìn)行消息摘要,并將摘要發(fā)送給客戶端,客戶端在本地進(jìn)行相同的計(jì)算,并比較服務(wù)端發(fā)送過來的消息摘要,如果相等,則確認(rèn)以上所有握手消息沒有被篡改過。至此SSL握手階段完成,SSL連接建立起來[14]。服務(wù)端如果使用的是SM2算法則重新計(jì)算SM2當(dāng)前每秒新建連接數(shù)SM2_conn_num_persec,如果使用的是RSA算法則重新計(jì)算RSA當(dāng)前每秒新建連接數(shù)RSA_conn_num_persec。服務(wù)端和客戶端開始通過記錄協(xié)議加密傳輸上層應(yīng)用數(shù)據(jù)。

      該階段ChangeCipherSpec消息結(jié)構(gòu)非常簡單,只有一個值為1的字節(jié)。

      該階段Finished消息結(jié)構(gòu)依據(jù)版本不同而不同。SSL v3.0的Finished結(jié)構(gòu)含有兩個字段md5_hash、sha_hash。如下所示[11]:

      md5_hash sha_hash

      TLS v1.0的Finished結(jié)構(gòu)只含有一個字段sha_hash。如下所示[11]:

      verify_data

      4.2 記錄協(xié)議

      SSL記錄是SSL協(xié)議發(fā)送和接收的基本單位。它與其他網(wǎng)絡(luò)協(xié)議之間的關(guān)系如圖13所示。

      圖13 SSL記錄協(xié)議與其他網(wǎng)絡(luò)協(xié)議之間的關(guān)系

      SSL記錄層協(xié)議實(shí)際上是一個簡單的封裝或者說是“打包”協(xié)議。記錄可能是明文傳送的,也可能是被加密傳送的,具體需要看通信實(shí)體所處的階段。

      明文記錄結(jié)構(gòu)如下[15]所示:

      密文記錄如下所示。陰影的部分是經(jīng)過加密的,而且是作為一個整體加密。記錄頭信息始終是明文傳送。消息驗(yàn)證碼HMAC確保消息的完整性。填充和填充長度只有在雙方采用分組加密的情況下才會出現(xiàn)的字段。如果是采用序列加密,則不存在。填充的目的是使 Length(數(shù)據(jù))+Length(HMAC)+Length(填充)+Length(填充長度)等于所使用分組加密算法的塊大小的整數(shù)倍[15]。

      ?

      5 實(shí)現(xiàn)過程

      5.1 變量定義

      根據(jù)3.1節(jié)設(shè)計(jì)的數(shù)據(jù)結(jié)構(gòu),在openssl的ssl.h文件中增加8個全局變量。

      5.2 函數(shù)定義

      (1)初始化新增全局變量。根據(jù)3.2節(jié)設(shè)計(jì)的算法。在openssl的S_socket.c文件中的do_server函數(shù)中初始化新增的全局變量。

      (2)更新當(dāng)前每秒連接數(shù)。在openssl的S_server.c文件中的sv_body函數(shù)中的i=init_ssl_connection(con)語句后更新當(dāng)前每秒連接數(shù)。

      (3)切換密碼套件。在openssl的S3_lib.c文件中的ssl3_choose_cipher函數(shù)中的ret=sk_SSL_CIPHER_value(allow,ii)語句后,切換密碼套件。

      6 測試與結(jié)果

      6.1 測試環(huán)境

      測試環(huán)境包括硬件環(huán)境、軟件環(huán)境、網(wǎng)絡(luò)環(huán)境、測試工具,具體如表4所示。

      表4 測試環(huán)境

      6.2 測試方案

      用LoadRunner11對SSL/TLS連接的性能進(jìn)行測試。包括三組測試:第一組只使用SM2算法建立SSL/TLS連接;第二組只使用RSA算法建立SSL/TLS連接;第三組使用SM2與RSA自動切換算法建立SSL/TLS連接。

      觀察三組測試在并發(fā)用戶數(shù)達(dá)到6 000時,SSL/TLS最高每秒新建連接數(shù)和平均每秒新建連接數(shù)。

      測試步驟如下:并發(fā)用戶數(shù)通過每臺客戶機(jī)模擬500個用戶,12臺客戶機(jī)共模擬6 000個用戶的方法實(shí)現(xiàn)。并發(fā)用戶增長模式按照每臺客戶機(jī)每15 s增加5個用戶,1 500 s(25 min)后達(dá)到500個并發(fā)用戶,然后持續(xù)測試6 h。

      第一組:只使用SM2算法的SSL連接性能如表5。

      表5 SM2連接性數(shù)據(jù)

      第二組:只使用RSA算法的SSL連接性能如表6。

      表6 RSA連接性能數(shù)據(jù)

      第三組:使用SM2與RSA自動切換算法的SSL連接性能如表7。

      表7 SM2與RSA自動切換算法連接性能數(shù)據(jù)

      6.3 測試結(jié)果

      通過以上三組測試數(shù)據(jù)可以得出如下結(jié)論:SM2與RSA自動切換算法的SSL/TLS連接性能高于單獨(dú)使用SM2算法的連接性能,但低于單獨(dú)使用RSA算法的連接性能。但是其性能指標(biāo)已達(dá)到需求。同時使用SM2與RSA自動切換算法的連接,在滿足性能需求的前提下,有效提高了安全性。

      第三組測試,SM2算法與RSA算法自動切換過程如下:當(dāng)SSL/TLS的每秒新建連接數(shù)小于3 000時,SSL/TLS新建連接采用SM2密碼套件,當(dāng)每秒新建連接數(shù)大于或等于3 000時,采用RSA密碼套件建立連接。如果RSA的每秒新建連接數(shù)達(dá)到9 000時,系統(tǒng)再次選擇SM2建立SSL/TLS連接。SM2與RSA密碼套件切換如圖14、15所示。

      圖14 測試結(jié)果:使用SM2密碼套件

      圖15 測試結(jié)果:使用RSA密碼套件

      6.4 結(jié)論

      通過實(shí)驗(yàn)和測試得出了在并發(fā)建立SSL連接過程中,當(dāng)每秒新建SSL連接數(shù)小于3 000時,使用SM2密碼套件進(jìn)行握手,當(dāng)每秒新建SSL連接數(shù)大于或等于3 000時,使用RSA密碼套件進(jìn)行握手。當(dāng)每秒新建連接數(shù)大于或等于9 000時,系統(tǒng)再次切換到SM2密碼套件。使得系統(tǒng)平均每秒新建連接數(shù)達(dá)到6 000,并在此期間盡可能多地使用SM2密碼套件。

      7 結(jié)束語

      為SSL/TLS協(xié)議的安全性與性能同時滿足用戶的需求,鑒于國家商用密碼算法(國密算法)的安全性強(qiáng)于通用密碼算法、性能弱于通用密碼算法的現(xiàn)狀,在OpenSSL基礎(chǔ)上實(shí)現(xiàn)的SM2與RSA自動切換的算法以實(shí)現(xiàn)在性能滿足用戶需求的情況下有效提高系統(tǒng)安全性的目標(biāo)。

      [1]GM/T 0024-2014SSL VPN技術(shù)規(guī)范[S].北京:中國標(biāo)準(zhǔn)出版社,2014.

      [2]韓曉薇,烏力吉,王蓓蓓,等.抗簡單功耗攻擊的SM2原子算法[J].計(jì)算機(jī)研究與發(fā)展,2016,53(8):1850-1856.

      [3]史汝輝.一種針對SM2解密算法的側(cè)信道攻擊方法[J].密碼學(xué)報(bào),2015,2(5):467-476.

      [4]Acii?mez O,Schindler W.A vulnerability in RSA implementations due to instruction cache analysis and its demonstration on OpenSSL[C]//Malkin T.CT-RSA,2008,4964:256-273.

      [5]張永建.RSA算法和SM2算法的研究[D].江西贛州:江西理工大學(xué),2015.

      [6]王魁,李立新,余文濤,等.基于ECC算法的TLS協(xié)議設(shè)計(jì)與優(yōu)化[J].計(jì)算機(jī)應(yīng)用研究,2014(11):3486-3489.

      [7]楊文軍.基于ECC算法的SSL協(xié)議改進(jìn)[J].南開大學(xué)學(xué)報(bào):自然科學(xué)版,2016(2):8-14.

      [8]Gueron S,Krasnov V.Fast prime field elliptic-curve cryptography with 256-bit primes[J].Journal of Cryptographic Engineering,2014,5(2):141-151.

      [9]Bhala A S,Kshirsagar V P,Nagori M B.Performance comparison of elliptical curve and RSA digital signature on ARM7[C]//International Conference on Information&Network Technology,2011.

      [10]Jansma N,Arrendondo B.Performance comparison of elliptic curve and RSA digital signatures[R].University of Michigan,2004:1-20.

      [11]何福均.OpenSSL握手過程的測試與分析[D].武漢:華中科技大學(xué),2008.

      [12]殷杰.OpenSSL分析與測試[D].天津:天津大學(xué),2008.

      [13]吳永強(qiáng),國密SSL安全通信協(xié)議的研究與實(shí)現(xiàn)[D].西安:西安電子科技大學(xué),2014.

      [14]牛永川.SM2橢圓曲線公鑰密碼算法的快速實(shí)現(xiàn)研究[D].濟(jì)南:山東大學(xué),2013.

      [15]白忠海.基于雙基底乘法器的SM2公鑰密碼算法研究與實(shí)現(xiàn)[D].哈爾濱:哈爾濱工業(yè)大學(xué),2014.

      猜你喜歡
      服務(wù)端套件新建
      Spin transport properties in ferromagnet/superconductor junctions on topological insulator
      重慶三年新建農(nóng)村公路6.26×10~4 km
      石油瀝青(2022年3期)2022-08-26 09:13:40
      基于維修費(fèi)用的關(guān)鍵部套件分析
      “龍吟套件”創(chuàng)作感悟
      山東陶瓷(2020年5期)2020-03-19 01:35:36
      萬紫蝶、梁新建作品
      云存儲中基于相似性的客戶-服務(wù)端雙端數(shù)據(jù)去重方法
      新時期《移動Web服務(wù)端開發(fā)》課程教學(xué)改革的研究
      曹曙東、溫新建作品
      在Windows Server 2008上創(chuàng)建應(yīng)用
      工業(yè)照明超頻三天棚燈套件改造工程
      中國照明(2016年5期)2016-06-15 20:30:13
      昭苏县| 吉木萨尔县| 镇原县| 德令哈市| 宝鸡市| 临城县| 大城县| 仪陇县| 蓬安县| 北海市| 乃东县| 九台市| 高青县| 平谷区| 云龙县| 辽宁省| 开封县| 稻城县| 锡林郭勒盟| 威信县| 阜康市| 台湾省| 麟游县| 天等县| 芜湖县| 科技| 大竹县| 卓尼县| 丰台区| 东平县| 潜江市| 郸城县| 梁山县| 沙坪坝区| 白城市| 大厂| 肃北| 东乡| 永兴县| 建湖县| 城口县|