• 
    

    
    

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

      一種基于CPK的遠(yuǎn)程認(rèn)證方案

      2018-11-15 09:08:30陳亞茹
      信息安全研究 2018年11期
      關(guān)鍵詞:私鑰密鑰橢圓

      陳亞茹 陳 莊 齊 鋒

      (重慶理工大學(xué)計算機(jī)科學(xué)與工程學(xué)院 重慶 400054)

      遠(yuǎn)程認(rèn)證系統(tǒng)是指客戶端(PC、智能終端等)通過網(wǎng)絡(luò)發(fā)送指令到服務(wù)器端,服務(wù)器對其進(jìn)行身份認(rèn)證,身份認(rèn)證成功之后,客戶端可以訪問內(nèi)部服務(wù)器,并且可以控制相應(yīng)終端完成任務(wù),若身份認(rèn)證失敗則客戶端無法訪問內(nèi)部網(wǎng)絡(luò).

      隨著寬帶網(wǎng)絡(luò)的接入和企業(yè)跨域性辦公模式[1]的興起,為了解決客戶端通過網(wǎng)絡(luò)安全接入到企業(yè)內(nèi)部網(wǎng)絡(luò)的問題,業(yè)界提出了多種遠(yuǎn)程接入系統(tǒng),其中包括有線和無線的方式:昂貴的遠(yuǎn)程撥號接入、配置復(fù)雜的 IPsec VPN、VPDN、遠(yuǎn)程桌面虛擬化等加密技術(shù).目前,遠(yuǎn)程桌面虛擬化接入是個浪潮[2].認(rèn)證體系主要解決身份認(rèn)證和密鑰交換問題,身份認(rèn)證是對身份的鑒別,密鑰交換用來實現(xiàn)數(shù)據(jù)的傳輸.在目前的密碼技術(shù)中,密鑰建立是系統(tǒng)核心.

      昂貴的遠(yuǎn)程撥號接入[3],是供應(yīng)商提供的一種遠(yuǎn)程訪問網(wǎng)絡(luò)資源的接入方式.Radius協(xié)議基于Microsoft SQL Server2000建立數(shù)據(jù)庫連接,記錄用戶上網(wǎng)信息;同時增加數(shù)據(jù)庫管理員來管理數(shù)據(jù)庫以及對用戶進(jìn)行收費等功能.采用MD5加密實現(xiàn)用戶的認(rèn)證、授權(quán)和計費功能,對于用戶密鑰、NAS共享密鑰都是以明文的形式記錄在Radius服務(wù)器中;然后把MD5加密的數(shù)據(jù)與接收到信息的密文進(jìn)行比較.利用MD5的單向性保證了密文傳輸?shù)陌踩?,但是在認(rèn)證過程中需要對MD5進(jìn)行16次操作,每次操作是一個非線性運算,造成服務(wù)器響應(yīng)超時和昂貴的費用問題.改進(jìn)的Radius協(xié)議[4]首先通過MD5加密共享密鑰,把加密的密文分別存儲在不同的文件. 通過這種方式雖然減少操作次數(shù),但是遠(yuǎn)程撥號接入屬于運營商收費的有線模式,不適用于無線網(wǎng)的企業(yè)移動辦公.

      IPSecVPN[5]提供一種端到端的連接方式,是專門為遠(yuǎn)程用戶接入企業(yè)網(wǎng)絡(luò)的移動辦公的解決方案.在客戶端訪問公司專用網(wǎng)絡(luò)過程中需要經(jīng)歷終端用戶認(rèn)證、VPN對終端接入認(rèn)證、終端無線傳輸認(rèn)證.通過用戶名@域名認(rèn)證的安全強(qiáng)度明顯低于數(shù)字簽名.

      PKI(public key infrastructure)[6]是基于數(shù)字簽名的認(rèn)證方式,是目前最流行的認(rèn)證方式,采用CA中心提供OCSP協(xié)議,證書是通過LDAP目錄發(fā)布的,通過在線方式驗證身份真?zhèn)?在認(rèn)證過程中密鑰和數(shù)字證書是分離的,通過CA證書完成密鑰驗證服務(wù).隨著用戶的增加,PKI[7]認(rèn)證過程需要大量網(wǎng)絡(luò)資源的支持,無法實現(xiàn)跨域認(rèn)證,并且需要昂貴的維護(hù)證書成本.因此,在互聯(lián)網(wǎng)快速發(fā)展下,PKI認(rèn)證技術(shù)無法滿足需求,如容量低、無法實現(xiàn)跨域認(rèn)證、密鑰管理繁瑣等.而CPK認(rèn)證實現(xiàn)去中心化、離線、跨域和密鑰交換.

      CPK[8]是基于ECC算法的認(rèn)證方式.CPK算法的根本在于公、私鑰的構(gòu)建和管理,不需要證書在線驗證公鑰真?zhèn)?,實現(xiàn)離線認(rèn)證,解決了PKI身份認(rèn)證中的密鑰托管問題[9].計算離散對數(shù)困難性保證了公、私鑰矩陣構(gòu)建的安全. Diffie-Hellman算法[10]雖然采用計算離散對數(shù)的困難性保證了會話密鑰的安全,但是無法實現(xiàn)身份認(rèn)證和抵擋中間人的攻擊.ECDH[11]是目前唯一實現(xiàn)認(rèn)證和密鑰建立的協(xié)議,雖然有較強(qiáng)的安全性,但是不能抵御中間人攻擊.文獻(xiàn)[12]指出在CPK算法中ECDSA私鑰的重要性,私鑰安全成為關(guān)鍵.文獻(xiàn)[13]雖然解決了客戶端登錄服務(wù)器不穩(wěn)定性的問題,但是沒有實現(xiàn)多用戶登錄的并發(fā)機(jī)制.

      針對現(xiàn)有的遠(yuǎn)程認(rèn)證方案中待解決的客戶端私鑰泄露、ECDH密鑰協(xié)議受到中間人攻擊、多用戶無法并發(fā)登錄的問題,本文提出了一種基于隨機(jī)數(shù)的CPK認(rèn)證方案,實現(xiàn)了一種虛擬的專用網(wǎng)絡(luò),無論員工身在何處都可以使用電腦安全地訪問企業(yè)內(nèi)部網(wǎng)絡(luò).該算法是在原CPK基礎(chǔ)上對密鑰協(xié)商協(xié)議進(jìn)行改進(jìn),用隨機(jī)數(shù)和口令對用戶標(biāo)識進(jìn)行綁定,不同私鑰有不同的隨機(jī)數(shù),不存在線性關(guān)系.隨機(jī)數(shù)的不固定性保證了簽名數(shù)據(jù)的不固定性,這樣就實現(xiàn)了客戶端在通過無線網(wǎng)向服務(wù)器傳輸指令時都是不同隨機(jī)數(shù)的簽名數(shù)據(jù),避免了非法分子攻破用戶私鑰的風(fēng)險,解決了ECDH密鑰協(xié)商協(xié)議遭受中間人攻擊的問題.

      1 橢圓曲線密碼體制

      1.1 橢圓曲線的參數(shù)選取

      文獻(xiàn)[14]提出橢圓曲線的概念,利用橢圓曲線有限域的點集構(gòu)成離散對數(shù)系統(tǒng),即橢圓曲線密碼體制(elliptic curve cryptography, ECC),是目前比較流行的公鑰密碼體制.設(shè)橢圓曲線參數(shù)為T=(p,a,b,G,n)[15],定義橢圓曲線為y2=(x3+ax+b) modp.其中p是一個大素數(shù),F(xiàn)p為有限域,a,b是Fp上的整數(shù),G為橢圓曲線E(Fp)上的基點,n為素數(shù),是基點G的階.

      1) 選擇p.考慮到計算的可行性和系統(tǒng)的安全性,一般要求p>2160.

      2) 隨機(jī)生成參數(shù)a.b,a,b∈Fp且(4a3+27b3) modp≠0.

      3) 計算點G的階n滿足nG=0(需要用算法實現(xiàn))[16].

      1.2 橢圓曲線離散對數(shù)問題

      ECC[17]是建立在基于橢圓曲線的離散對數(shù)問題上的密碼體制,給定橢圓曲線上的一個點G,一個整數(shù)k,求解Q=kG很容易;給定一個點G,Q,知道Q=kG,求整數(shù)k是一個難題.ECDH即建立在此數(shù)學(xué)難題之上.

      當(dāng)我們使用ECDSA進(jìn)行簽名時,k的保密性非常重要.如果我們的簽名操作都用一樣的k或者我們的隨機(jī)數(shù)生成器存在可預(yù)測性,攻擊者可能猜出私鑰.

      1.3 ECDH協(xié)議

      ECDH是基于ECC的DH(Diffie-Hellman)密鑰交換算法[18].

      1) 客戶端A生成隨機(jī)數(shù)rA,計算QA=rAG.rA∈[1,n-1],A→B:QA.rA為私鑰,QA為公鑰,QA為曲線上的點.以下同理.

      2) 服務(wù)器端B生成隨機(jī)數(shù)rB,計算QB=rBG.rB∈[1,n-1],B→A:QB.

      3) A收到B發(fā)來的QB后,計算rBQB=rArBG.

      4) B收到A發(fā)來的QA后,計算rBQA=rBrAG=rArBG.

      可以看出共享會話密鑰KAB=rArBG.攻擊者可以截取G,QA=rAG,QB=rBG,為了獲得會話密鑰,必須求出rA或rB,這就出現(xiàn)了1.2節(jié)的難題.因此,ECDH協(xié)議安全性極高,但不能實現(xiàn)雙向認(rèn)證,無法抵御中間人攻擊.

      2 一種改進(jìn)的認(rèn)證方案

      2.1 改進(jìn)的方案

      改進(jìn)的方案通過實現(xiàn)雙向認(rèn)證來抵御中間人的攻擊,由密鑰協(xié)商和密鑰驗證組成.A和B雙方共享一個口令s,這個s只有管理員擁有權(quán)限.A和B利用s協(xié)商整數(shù)分別是t和-t,-t是t的加法逆元.具體過程如下:

      1) 密鑰協(xié)商

      ① 客戶端A生成隨機(jī)數(shù)rA,計算QA=(rA+t)G.rA∈[1,n-1],A→B:QA.

      ② 服務(wù)器端B生成隨機(jī)數(shù)rB,計算QB=(rB+t)G.rB∈[1,n-1],B→A:QB.

      ③ A收到B發(fā)來的QB后,計算X=QB+(-t)G=rBG,KAB=rAX=rArBG.

      ④ B收到A發(fā)來的QA后,計算Y=QA+(-t)G=rAG,KBA=rBrAG=rArBG=KAB.

      2) 密鑰驗證

      ① A計算:TA=tKAB=trArBG.A→B:TA.

      ② B計算:TB=tKBA=trBrAG.B收到A發(fā)來的TA后驗證TA和TB是否相等.若相等,雙方協(xié)商相同的會話密鑰,則B相信自己獲得正確QA,A獲得正確的QB.

      ③ B計算:TB=tQA=t(rA+t)G.B→A:TB.

      ④ A計算:TA=tQA=t(rA+t)G.驗證TA和TB是否相等.若相等,則A相信B獲得了QA,也相信雙方協(xié)商相同的會話密鑰.

      2.2 新方案下數(shù)字簽名的加解密過程

      利用會話密鑰KAB進(jìn)行加密通信.過程如下:

      1) 客戶端A選取隨機(jī)數(shù)rA,計算公鑰為QA=(rA+t)G.A→B:QA.

      2) 服務(wù)器端B選取隨機(jī)數(shù)rB,計算公鑰QB=(rB+t)G.B→A:QB.

      3) A發(fā)送的明文數(shù)據(jù)經(jīng)過散列函數(shù)運算生成報文M的散列碼,即h=H(M).

      4) 用私鑰rA對h簽名生成標(biāo)識認(rèn)證碼IDA,即IDA=SignrA(h).

      5) 根據(jù)ECC算法首先計算X=QB+(-t)G作為密鑰交換字段,其次計算XG作為會話密鑰KAB.

      6) B在橢圓曲線E選取一點編碼Z,并產(chǎn)生隨機(jī)數(shù)rB.計算C1=Z+rB(QA-tG),C2=rBG.

      7) 將加密后報文code、認(rèn)證標(biāo)識碼IDA、密鑰字段、C1、C2封裝成數(shù)據(jù)包發(fā)送出去.

      9) 用KAB對接收到的code解密,即C1-rAC2=Z+rB(QA-tG)-rArBG=M1,然后計算散列碼h1=H(M1).

      10) 利用QA對IDA進(jìn)行驗證得到h,然后h和h1比較,若h=h1,接收報文,否則丟棄.

      上述過程,竊聽者只能竊取QA,C1,C2,G,QB,而通過這些求rA,rB面對1.2節(jié)中離散對數(shù)難題.因此竊取者無法獲取傳送的明文信息.同時,改進(jìn)的方案通過一次交互,實現(xiàn)了數(shù)據(jù)加解密、數(shù)字簽名、密鑰協(xié)商的過程.

      3 方案的實驗驗證

      本系統(tǒng)的測試模擬于WiFi環(huán)境,運行平臺為虛擬機(jī),內(nèi)存1 024 MB,硬盤80 GB,操作系統(tǒng)為Windows7,并設(shè)置多臺Windows主機(jī)作為客戶端與服務(wù)器連通,并在服務(wù)器和主機(jī)上編寫ECC、Websocket、各模塊代碼,對100個用戶進(jìn)行測試.

      圖4 Websocket代碼

      3.1 客戶端CPK標(biāo)識與私鑰生成

      客戶端安裝瀏覽器,運行客戶端模塊.

      客戶端A向CPK管理密鑰處發(fā)送身份證書,管理中心根據(jù)A提供的證書確定A的標(biāo)識是A20220101.管理中心根據(jù)標(biāo)識計算出矩陣的行列值得到了A的私鑰.

      其中私鑰矩陣由注冊密鑰處的隨機(jī)數(shù)加密,只有密鑰注冊處的管理員才有權(quán)限查看隨機(jī)數(shù),管理員用口令保存隨機(jī)數(shù),只有管理員輸入口令得到隨機(jī)數(shù),才可以用隨機(jī)數(shù)破解私鑰矩陣.

      CPK管理中心把A的標(biāo)識和私鑰通過離線通道發(fā)送給A.私鑰生成過程如圖1所示.

      3.2 簽名與驗證

      A的私鑰結(jié)合隨機(jī)數(shù)進(jìn)行簽名,把簽名和標(biāo)識發(fā)給CPK服務(wù)器,服務(wù)器調(diào)用注冊密鑰處A的公開密鑰矩陣對簽名進(jìn)行驗證,同時記錄結(jié)果.服務(wù)器驗證代碼如圖2所示.

      圖1 私鑰生成過程

      圖2 服務(wù)器驗證代碼

      3.3 應(yīng)用服務(wù)器

      CPK服務(wù)器驗證身份之后,系統(tǒng)管理員可以通過基于Java 開發(fā)的Websocket技術(shù)訪問CPK服務(wù)器的受控端,實現(xiàn)身份認(rèn)證成功后客戶端訪問內(nèi)部服務(wù)器或完成相應(yīng)的任務(wù).Websocket的連接過程和代碼如圖3、圖4所示:

      圖3 Websocket連接過程

      3.4 實驗結(jié)果

      根據(jù)模擬的實驗結(jié)果統(tǒng)計如表1所示.

      從表1可以看出,客戶端A的CPK標(biāo)識是A20220101,通過密鑰中心計算出的私鑰為7,然后私鑰結(jié)合隨機(jī)數(shù)進(jìn)行簽名,實驗結(jié)果是成功的.若用戶標(biāo)識過期和私鑰錯誤,實驗是不成功的.實驗證明隨機(jī)數(shù)的不固定性保證了簽名數(shù)據(jù)的不固定性,這樣就實現(xiàn)了客戶端在通過無線網(wǎng)向服務(wù)器傳輸指令時都是不同的隨機(jī)數(shù)的簽名數(shù)據(jù),避免了非法分子攻破用戶私鑰的風(fēng)險.若被非法分子破解了用戶私鑰矩陣,但不能訪問隨機(jī)數(shù),也不會對客戶端構(gòu)成威脅.

      表1 模擬實驗結(jié)果

      4 方案的性能分析

      4.1 正確性分析

      本文方案的算法是在原CPK基礎(chǔ)上對密鑰協(xié)商協(xié)議進(jìn)行的改進(jìn),即用隨機(jī)數(shù)對用戶標(biāo)識進(jìn)行綁定,不同私鑰有不同的隨機(jī)數(shù),不存在線性關(guān)系.同時客戶端簽名和服務(wù)器驗證算法和原CPK法基本相同,其安全性與ECC體制安全性相同.

      圖5 用戶完成登錄總耗時

      4.2 性能分析

      本文方案實現(xiàn)了大量客戶端的數(shù)字簽名和驗證的并行處理,提高了ECC算法的計算能力.本實驗采用Loadrunner測試工具,對100個用戶并發(fā)測試流行的PKI和傳統(tǒng)的CPK認(rèn)證方式登錄測試的結(jié)果.各種方案的對比如圖5、圖6、表2所示:

      圖6 密鑰驗證耗時

      認(rèn)證方式時間消耗完成登錄耗時密鑰驗證平均耗時PKI300.15CPK280.12本文方案270.13

      通過實驗測試發(fā)現(xiàn),隨著用戶數(shù)量的增加,采用本文方案的認(rèn)證方式運行時間明顯優(yōu)于傳統(tǒng)的認(rèn)證方式.

      5 結(jié)束語

      本文提出的改進(jìn)CPK認(rèn)證方案,有效地解決了遠(yuǎn)程接入要求之間的矛盾.提出改進(jìn)方案是基于隨機(jī)數(shù)的CPK算法,該算法是在原CPK基礎(chǔ)上對密鑰協(xié)商協(xié)議進(jìn)行的改進(jìn),即用隨機(jī)數(shù)對用戶標(biāo)識進(jìn)行綁定和管理員有權(quán)限查看口令s,不同的私鑰和t有不同的隨機(jī)數(shù),不存在線性關(guān)系,隨機(jī)數(shù)的不固定性保證了簽名數(shù)據(jù)的不固定性,避免了非法分子攻破用戶私鑰和中間人攻擊的風(fēng)險.本文方案具有離線傳輸、雙向認(rèn)證、操作簡單等優(yōu)點,實驗證明了本文方案安全性高、效率高.

      猜你喜歡
      私鑰密鑰橢圓
      探索企業(yè)創(chuàng)新密鑰
      Heisenberg群上由加權(quán)次橢圓p-Laplace不等方程導(dǎo)出的Hardy型不等式及應(yīng)用
      比特幣的安全性到底有多高
      基于改進(jìn)ECC 算法的網(wǎng)絡(luò)信息私鑰變換優(yōu)化方法
      例談橢圓的定義及其應(yīng)用
      密碼系統(tǒng)中密鑰的狀態(tài)與保護(hù)*
      一道橢圓試題的別樣求法
      一種基于虛擬私鑰的OpenSSL與CSP交互方案
      一種對稱密鑰的密鑰管理方法及系統(tǒng)
      基于ECC的智能家居密鑰管理機(jī)制的實現(xiàn)
      竹山县| 四川省| 江山市| 萨嘎县| 延津县| 金川县| 苗栗市| 喜德县| 伊金霍洛旗| 藁城市| 宁强县| 湄潭县| 斗六市| 乡宁县| 兴化市| 类乌齐县| 南城县| 洪雅县| 镇巴县| 惠东县| 墨江| 新营市| 平罗县| 威宁| 黄陵县| 雷山县| 白山市| 东乌珠穆沁旗| 安图县| 南澳县| 邹平县| 瑞金市| 唐河县| 上犹县| 林甸县| 平江县| 兴和县| 宿州市| 汶上县| 永仁县| 临海市|