• 
    

    
    

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

      基于國密HTTPS的網(wǎng)站安全認(rèn)證

      2022-09-09 00:45:14王森
      電子技術(shù)與軟件工程 2022年14期
      關(guān)鍵詞:國密數(shù)字證書私鑰

      王森

      (國家信息中心信息與網(wǎng)絡(luò)安全部 北京市 100045)

      瀏覽器校驗數(shù)字證書能夠?qū)崿F(xiàn)網(wǎng)站信息安全認(rèn)證。其原理是網(wǎng)站事先從權(quán)威認(rèn)證機(jī)構(gòu)CA申請數(shù)字證書,數(shù)字證書包含了網(wǎng)站域名等關(guān)鍵信息,當(dāng)用戶使用瀏覽器通過域名訪問網(wǎng)站時,核驗域名和數(shù)字證書信息是否匹配,并且采用公鑰密碼算法進(jìn)行真實性驗證,核驗通過后才能繼續(xù)加載網(wǎng)站內(nèi)容。該過程需要瀏覽器和網(wǎng)站后端服務(wù)器依據(jù)相關(guān)協(xié)議執(zhí)行驗證流程,該協(xié)議通常采用HTTPS協(xié)議。

      雖然HTTPS應(yīng)用廣泛,但支持國產(chǎn)密碼算法及數(shù)字證書的應(yīng)用仍不多,存在瀏覽器、服務(wù)器中間件不支持等問題。本文深入研究了相關(guān)技術(shù),基于開源項目Tassl和360國密瀏覽器實現(xiàn)了國產(chǎn)商用密碼算法和數(shù)字證書HTTPS的網(wǎng)站安全認(rèn)證方案。

      1 網(wǎng)站安全認(rèn)證需求

      網(wǎng)站的安全認(rèn)證需求源于用戶鑒別釣魚網(wǎng)站。釣魚網(wǎng)站通過仿冒真實網(wǎng)站,誘導(dǎo)用戶訪問惡意鏈接,或竊取用戶名、密碼等重要信息。釣魚網(wǎng)站經(jīng)常采用混淆相似域名的方法,例如用數(shù)字“0”代替字母“O”,用小寫字母“l(fā)”代替數(shù)字“1”。攻擊者采用郵件、即時消息等方式,將釣魚網(wǎng)站網(wǎng)址發(fā)送給被攻擊對象。在沒有防備的情況下,很容易打開釣魚網(wǎng)站,進(jìn)而產(chǎn)生個人敏感信息或系統(tǒng)賬號等泄露,往往會造成經(jīng)濟(jì)損失。

      啟用數(shù)字證書認(rèn)證,驗證過程首先判斷網(wǎng)站是否擁有合法的數(shù)字證書。沒有數(shù)字證書或數(shù)字證書不是由權(quán)威數(shù)字認(rèn)證機(jī)構(gòu)頒發(fā)的,瀏覽器會進(jìn)行安全提示。數(shù)字認(rèn)證機(jī)構(gòu)在核驗網(wǎng)站認(rèn)證申請時,會嚴(yán)格進(jìn)行審核,包括網(wǎng)站的資質(zhì)、網(wǎng)站的內(nèi)容及網(wǎng)站安全性等,如果發(fā)現(xiàn)網(wǎng)站可能用于“釣魚”,會拒絕發(fā)放數(shù)字證書。防止釣魚網(wǎng)站還需要驗證數(shù)字證書信息,點擊瀏覽器網(wǎng)址左側(cè)的鎖樣圖標(biāo),展開網(wǎng)站的數(shù)字證書詳情進(jìn)行查驗,數(shù)字證書內(nèi)容應(yīng)和目的網(wǎng)站內(nèi)容相符。例如訪問某銀行網(wǎng)站,核查數(shù)字證書的內(nèi)容應(yīng)與官網(wǎng)地址一致。

      網(wǎng)站部署證書以便向用戶證明自己是合法、正牌的網(wǎng)站。因此,用戶和網(wǎng)站共同建立數(shù)字證書的安全支撐,用戶客戶端應(yīng)使用安全瀏覽器,不輕易忽略瀏覽器的安全提醒。

      2 國密算法SM2數(shù)字證書

      在公鑰算法中公鑰和私鑰成對使用,公鑰與真實身份綁定并公開,私鑰由個人保存,并且嚴(yán)格保密不能向其他人泄漏。使用私鑰加密信息生成簽名,作為憑據(jù),核驗人使用簽名者的公鑰驗證簽名。SM2是我國自主研發(fā)的橢圓曲線公鑰算法,具有安全性高、密鑰規(guī)模小等特點。數(shù)字證書是基于公鑰基礎(chǔ)設(shè)施PKI,將公鑰與用戶信息綁定,經(jīng)認(rèn)證后由權(quán)威認(rèn)證機(jī)構(gòu)CA頒發(fā),數(shù)字證書用于實現(xiàn)真實性、抗抵賴等安全特性。

      2.1 SM2公鑰算法原理

      SM2是基于橢圓曲線空間,橢圓曲線的方程為的形式y(tǒng)=x+ax+b,包含相關(guān)特性參數(shù),如素數(shù)空間、基點、基點的階、a和b的值、素域規(guī)模等。其中素數(shù)空間可以是有限域或者二元擴(kuò)域。當(dāng)橢圓曲線參數(shù)不一致時,即使采用相同的運(yùn)算方法,其上的運(yùn)行也不能相互驗證,為此國標(biāo)中對相關(guān)參數(shù)進(jìn)行了定義。

      SM2素域選擇有限域F,基點的階為256位,橢圓曲線上的點集記為:

      E(F)={(x,y)|x,y∈F且滿足曲線方程y=x+ax+b}∪{O}

      其中O是橢圓曲線的無窮遠(yuǎn)點。通過橢圓曲線離散對數(shù)問題(ECDLP)構(gòu)造單向密碼函數(shù):隨機(jī)選擇k,使得Q=[k]G,G應(yīng)滿足是橢圓曲線的一個基點,多倍點計算可以獲得Q,那么求解倍數(shù)k的問題稱為橢圓曲線離散對數(shù)問題。

      根據(jù)以上橢圓曲線公鑰算法原理,隨機(jī)生成私鑰d,d為(n-1)范圍內(nèi)的一個隨機(jī)正整數(shù),計算Q=[d]G為曲線E(F)上一個非O點,生成公私鑰對為(d,Q)。此時,公鑰Q需要用坐標(biāo)系中的一個點(x,y)表示,因此私鑰d的長度為256位,而公鑰長度為2個256位,即512位。

      從SM2原理可以看出,SM2和RSA算法有較大不同。

      (1)建立系統(tǒng)空間的方式不同:RSA不需要設(shè)定參數(shù),可在實數(shù)范圍內(nèi)運(yùn)算;SM2須設(shè)定相關(guān)參數(shù),確定橢圓曲線。

      (2)生成密鑰方式不同。RSA同時生成公鑰和私鑰;SM2中先確定私鑰,由私鑰計算公鑰。

      (3)簽名算法不同。RSA通過公鑰對簽名結(jié)果進(jìn)行計算,推導(dǎo)源文件;SM2根據(jù)待簽名文件和公鑰計算簽名結(jié)果,將簽名結(jié)果與簽名信息進(jìn)行對比。

      2.2 SM2數(shù)字證書原理

      在公鑰算法中每個用戶都可以生產(chǎn)公鑰,因此驗證簽名時缺少公鑰與真實身份綁定關(guān)系的證明。認(rèn)證服務(wù)機(jī)構(gòu)和公鑰基礎(chǔ)設(shè)施PKI由于真實性證明,認(rèn)證服務(wù)機(jī)構(gòu)CA是具有良好信譽(yù)的服務(wù)部門,將用戶信息與公鑰信息打包一起簽名,實現(xiàn)用戶信息認(rèn)證。因此數(shù)字證書的本質(zhì)是數(shù)字簽名文件,使用認(rèn)證服務(wù)機(jī)構(gòu)私鑰對用戶信息與公鑰綁定關(guān)系進(jìn)行簽名。數(shù)字證書的有效性驗證,可以通過認(rèn)證服務(wù)機(jī)構(gòu)的證書,對用戶證書驗證。

      申請數(shù)字證書過程通常包括以下步驟:

      (1)用戶為申請數(shù)字證書,本地生成公鑰和私鑰。私鑰應(yīng)保存在安全密碼模塊中,具有不可導(dǎo)出、不可見等特性,使用時通過調(diào)用密碼服務(wù)應(yīng)用接口。

      (2)用戶與CA進(jìn)行交互。向CA提交數(shù)字證書制作請求,請求文件中包含需要公開相關(guān)信息和用戶公鑰。

      (3)CA會嚴(yán)格驗證信息的真實性,并核對合法性、合理性。驗證通過后,CA使用自己的私鑰,將包含網(wǎng)站信息和公鑰的文件進(jìn)行數(shù)字簽名,最后按照數(shù)字證書規(guī)范格式,封裝網(wǎng)站信息、網(wǎng)站公鑰、數(shù)字簽名封裝,并下發(fā)給用戶。

      2.3 SM2數(shù)字證書格式信息

      GB/T 20518-2018《信息安全技術(shù) 公鑰基礎(chǔ)設(shè)施 數(shù)字證書格式》定義了數(shù)字證書的格式,證書主結(jié)構(gòu)及TBSCertificate、extensions的字段。網(wǎng)站證書必須填寫擴(kuò)展項中密鑰用法KeyUsage和主體可替換名稱subjectAltName兩個字段信息,按照TLCP協(xié)議要求,網(wǎng)站應(yīng)提供簽名證書和加密證書,簽名證書KeyUsage應(yīng)為digitalSignature和nonRepudiation,加密證書KeyUsage應(yīng)為dataEncipherment。subjectAltName必須為網(wǎng)站的url地址,否則瀏覽器無法完成網(wǎng)站證書校驗。

      3 國家標(biāo)準(zhǔn)傳輸層加密協(xié)議TLCP

      HTTPS協(xié)議是SSL安全協(xié)議封裝的HTTP協(xié)議。SSL是傳輸層安全協(xié)議,我國標(biāo)準(zhǔn)應(yīng)依據(jù)GB/T 38636-2020《信息安全技術(shù) 傳輸層密碼協(xié)議(TLCP)》,其內(nèi)容主要描述了數(shù)字證書認(rèn)證和密鑰交換過程,包括預(yù)主密鑰協(xié)商、計算主密鑰、推導(dǎo)工作密鑰、使用工作密鑰進(jìn)行加解密和完整性校驗等。

      3.1 數(shù)據(jù)封裝

      記錄層協(xié)議是傳輸層加密的核心,位于傳輸層報頭后的載荷部分。記錄層協(xié)議接收應(yīng)用層數(shù)據(jù),通過分塊、壓縮、加密處理,放入傳輸層載荷中傳輸。接收到的數(shù)據(jù)經(jīng)過解密、驗證、解壓縮、重新封裝,傳送給高層應(yīng)用。

      記錄層協(xié)議包含4中類型,握手、報警、密碼規(guī)格變更、應(yīng)用數(shù)據(jù)等類型,類型標(biāo)識的位置數(shù)據(jù)報的標(biāo)頭,數(shù)據(jù)載荷如圖1所示。

      圖1:記錄層格式詳解

      3.2 握手協(xié)議族

      通過握手協(xié)議實現(xiàn)安全認(rèn)證和密鑰交換過程,包括以下協(xié)商步驟,如圖2所示。

      圖2:握手協(xié)議過程

      (1)交換hello消息來協(xié)商密碼套件,以及隨機(jī)數(shù)??蛻舳税l(fā)送客戶端hello消息給服務(wù)端,服務(wù)端應(yīng)回應(yīng)hello消息。

      (2)服務(wù)器交換必要的參數(shù),實現(xiàn)預(yù)主密鑰協(xié)商,交換服務(wù)器證書;

      (3)雙方根據(jù)隨機(jī)數(shù)生成預(yù)主密鑰及主密鑰;

      (4)在協(xié)議棧中,記錄層調(diào)用握手協(xié)議產(chǎn)生的主密鑰,使用協(xié)商的算法等安全參數(shù)生成記錄層數(shù)據(jù);

      (5)驗證握手過程的真實性和完整性。

      客戶端Hello消息標(biāo)明客戶端支持的密碼套件列表,套件的排序按照客戶端優(yōu)先級順序排列。每個密碼套件包括一個密鑰交換算法,一個加密算法和一個校驗算法,目前新版國標(biāo)較國密標(biāo)準(zhǔn)在密碼套件定義方面有所改變,去掉了SM1和SHA1,添加了SHA256。詳細(xì)信息見表1。

      表1:國家標(biāo)準(zhǔn)支持的密碼套件

      服務(wù)端在密碼套件列表中選擇一個與之匹配的密碼套件,如果沒有可匹配的密碼套件,應(yīng)返回握手失敗報警消息并且關(guān)閉連接。按安全協(xié)議規(guī)定,服務(wù)端必須發(fā)送一個服務(wù)端證書消息提供客戶端驗證,因此Server Certificate總是跟在Server Hello消息之后,消息的內(nèi)容為服務(wù)端的簽名證書和加密證書。證書格式為X.509 v3,證書使用類型KeyUsage必須能適用已經(jīng)確定的密鑰交換算法,并且簽名證書在前,加密證書在后。

      4 基于國密SM2的HTTPS實踐

      4.1 證書鏈

      國密瀏覽器是支持國密HTTPS和國密數(shù)字證書的瀏覽器,目前已有齊安信瀏覽器、360瀏覽器、紅蓮花瀏覽器、密信瀏覽器等多個國產(chǎn)瀏覽器。國密瀏覽器訪問網(wǎng)站時,驗證網(wǎng)站的數(shù)字證書,包括驗證數(shù)字證書的有效性和證書鏈有效性兩個步驟。

      4.1.1 驗證數(shù)字證書的有效性

      經(jīng)過HTTPS握手過程,實現(xiàn)了以下相關(guān)信息的驗證。

      (1)網(wǎng)站擁有數(shù)字證書對應(yīng)的私鑰,即網(wǎng)站是數(shù)字證書真正擁有者,安全協(xié)議驗證了私鑰,保證偽造網(wǎng)站無法使用原網(wǎng)站證書。

      (2)驗證頒發(fā)者的數(shù)字簽名,確認(rèn)數(shù)字證書是經(jīng)合法權(quán)威機(jī)構(gòu)簽發(fā)。

      (3)驗證數(shù)字證書有效期。使用時間應(yīng)在數(shù)字證書生效的起始時間和結(jié)束時間。

      (4)數(shù)字證書沒有被吊銷。認(rèn)證服務(wù)機(jī)構(gòu)可以吊銷數(shù)字證書,并將序號存儲在吊銷文件CRL中,驗證過程核查了CRL是否包含當(dāng)前數(shù)字證書的序列號。

      4.1.2 驗證數(shù)字證書鏈

      大部分運(yùn)行CA都是由一級CA簽發(fā)的,例如CA_1是由CA_0進(jìn)行簽發(fā)的,需要用CA_0的公鑰,驗證CA_1數(shù)字證書的簽名。CA_0是簽發(fā)CA的CA,通常是權(quán)威認(rèn)證機(jī)構(gòu)的根CA,根CA不用來制作用戶的數(shù)字證書。認(rèn)證服務(wù)機(jī)構(gòu)根據(jù)不同的應(yīng)用領(lǐng)域,使用根CA制發(fā)不同的運(yùn)行CA。

      當(dāng)驗證運(yùn)行CA頒發(fā)的用戶數(shù)字證書時,需要提供根CA和運(yùn)行CA的數(shù)字證書,包括用戶的數(shù)字證書共3張證書一起證明用戶身份。使用時可以將3張證書打包成一個壓縮文件。權(quán)威機(jī)構(gòu)根CA可以預(yù)置在操作系統(tǒng)或瀏覽器中。

      圖3是一個證書鏈的示例,位于左側(cè)CFCA SM2是一個運(yùn)行CA,右側(cè)ROOTCA為我國國密SM2根證書。CFCA SM2數(shù)字證書的授權(quán)密鑰標(biāo)識表示為KeyID=4c32b197d93 31bc4a605c1c6e58b625bf0977658,查看右側(cè)ROOTCA的授權(quán)密鑰標(biāo)識也為KeyID=4c32b197d9331bc4a605c1c6e58b625 bf0977658,ROOTCA是自簽根,可以證明CFCA SM2是由ROOTCA頒發(fā)的。

      圖3:CFCA SM2證書鏈?zhǔn)纠?/p>

      4.2 支持國密數(shù)字證書的瀏覽器

      國際GlobalSign、VeriSign等認(rèn)證機(jī)構(gòu)不支持我國國密算法的數(shù)字證書。一般由國內(nèi)認(rèn)證服務(wù)機(jī)構(gòu)頒發(fā)SM2算法數(shù)字證書。目前,我國已建成國家電子認(rèn)證根,并公布了4個電子認(rèn)證根,其中社會公眾應(yīng)用根(SM2),其主題項為CN=ROOTCA,O=NRCAC,C=CN,即為CFCA SM2的簽發(fā)CA。

      360安全瀏覽器國密專版增加了密碼模塊和安全協(xié)議模塊,實現(xiàn)了對國產(chǎn)密碼算法和安全協(xié)議的完整支持,10.1beta中已經(jīng)帶有了國產(chǎn)密碼模塊和安全協(xié)議模塊,不再以專版的形式發(fā)布。密信瀏覽器基于 Chromium 開放源代碼項目開發(fā)(版本:Chromium 66),主要增加了對國密算法SM2/SM3/SM4的支持,支持國密SSL證書。齊安信瀏覽器發(fā)布了《商用密碼證書可信計劃》,目前已發(fā)布14家國密SM2數(shù)字證書,例如北京數(shù)字認(rèn)證股份有限公司Beijing SM2 CA、中金金融認(rèn)證中心有限公司CFCA CS SM2 CA等。

      4.3 基于Nginx的國密服務(wù)器配置

      江南天安通過開源方式提供一種國密服務(wù)器搭建方法,開源項目名稱為Tassl,包含一套提供國密算法支持的OpenSSL算法庫,以及支持Tassl的Ngnix。編譯安裝該版本Nginx后,可以先利用測試證書驗證系統(tǒng)運(yùn)行。生成證書示例腳本程序為gen_sm2_cert.sh,運(yùn)行完成后,生成可供測試使用相關(guān)國密數(shù)字證書。修改nginx服務(wù)器的配置文件nginx.conf,添加數(shù)字證書和私鑰相關(guān)配置。

      重新啟動Ngnix,使用360瀏覽器訪問服務(wù)器。此時服務(wù)端測試的根證書還沒有預(yù)添加到瀏覽器可信數(shù)字證書列表中,網(wǎng)站URL前仍然會提示一個打紅叉的鎖,代表證書鏈沒有通過驗證,如圖4所示。此時需要把Tassl生成的CA.crt文件保存到360國密瀏覽器ctl.dat文件中。此后重啟瀏覽器,瀏覽器加載根證書后,瀏覽器不再進(jìn)行報警。

      圖4:瀏覽器地址欄的報警提示

      5 結(jié)束語

      近期,俄羅斯因俄烏沖突受美國制裁,很多全球性電子認(rèn)證服務(wù)機(jī)構(gòu)不再簽發(fā)俄羅斯的數(shù)字證書申請,導(dǎo)致俄羅斯國內(nèi)很多網(wǎng)站證書面臨過期失效風(fēng)險。此事件也為我國敲響警鐘,密碼等核心技術(shù)不能受“卡脖子”限制。在電子認(rèn)證服務(wù)領(lǐng)域,我們擁有自主知識產(chǎn)權(quán)的SM2算法,并且建立了以國家根為信任源點的多級電子認(rèn)證服務(wù)體系。近年來,我國的安全可信生態(tài)體系逐步成熟,選用安全的產(chǎn)品也成為政府、企業(yè)開展系統(tǒng)建設(shè)的首要因素,國密瀏覽器成熟度越來越高,用戶數(shù)量和市場占有了較大提升。本文介紹了網(wǎng)站身份認(rèn)證的基本概念,分析了網(wǎng)站認(rèn)證的安全需求,詳細(xì)介紹了國密公鑰算法、國密數(shù)字證書、國密根認(rèn)證體系、證書鏈等,基于360國密瀏覽器和開源項目Tassl,實現(xiàn)了一個完整的國密網(wǎng)站認(rèn)證方案。為開展國密改造的網(wǎng)站管理者提供了參考方案。

      猜你喜歡
      國密數(shù)字證書私鑰
      比特幣的安全性到底有多高
      國密技術(shù)在智能燃?xì)獗硐到y(tǒng)的應(yīng)用與分析
      煤氣與熱力(2021年7期)2021-08-23 01:11:14
      基于改進(jìn)ECC 算法的網(wǎng)絡(luò)信息私鑰變換優(yōu)化方法
      Hyperledger Fabric平臺的國密算法嵌入研究
      自助終端設(shè)備國密改造方法探究
      基于國密算法的銀行移動營銷終端安全系統(tǒng)研究
      電子測試(2018年9期)2018-06-26 06:45:40
      一種基于虛擬私鑰的OpenSSL與CSP交互方案
      當(dāng)心黑客利用數(shù)字證書的漏洞
      基于數(shù)字證書的軍事信息系統(tǒng)安全防護(hù)方案
      管理好系統(tǒng)中的數(shù)字證書
      電腦迷(2015年7期)2015-05-30 04:50:35
      丰镇市| 大安市| 房山区| 比如县| 大英县| 廊坊市| 古丈县| 错那县| 鹤峰县| 绥中县| 西昌市| 侯马市| 方城县| 南郑县| 涞水县| 绍兴市| 仁化县| 中宁县| 无极县| 丹阳市| 方城县| 西藏| 宁河县| 扎鲁特旗| 石首市| 高州市| 阳春市| 施秉县| 临夏市| 武清区| 蒙城县| 宁海县| 金湖县| 方山县| 屏东县| 普定县| 黄梅县| 芜湖市| 太谷县| 湾仔区| 西畴县|