国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于公鑰體制的CA平臺(tái)設(shè)計(jì)與實(shí)現(xiàn)

2019-01-18 01:10◆陳
關(guān)鍵詞:數(shù)字證書公鑰密鑰

◆陳 超

?

基于公鑰體制的CA平臺(tái)設(shè)計(jì)與實(shí)現(xiàn)

◆陳 超

(江蘇建筑職業(yè)技術(shù)學(xué)院信息傳媒與藝術(shù)學(xué)院 江蘇 221116)

本文基于公鑰體制的CA平臺(tái)設(shè)計(jì)與實(shí)現(xiàn),設(shè)計(jì)一個(gè)具有申請(qǐng)證書、簽發(fā)證書、作廢證書、密鑰管理的數(shù)字認(rèn)證平臺(tái)。主要的目標(biāo)是通過本文的設(shè)計(jì),具體闡述數(shù)字證書的簽發(fā)流程、數(shù)據(jù)結(jié)構(gòu)、簽發(fā)算法、非對(duì)稱密鑰具體實(shí)現(xiàn)過程,證書作廢的關(guān)鍵技術(shù)、安全協(xié)議的實(shí)現(xiàn)方法、非對(duì)稱密鑰加密解密的方法和管理。課題最終目的是開發(fā)一個(gè)基于SSL協(xié)議的數(shù)字認(rèn)證平臺(tái),實(shí)現(xiàn)申請(qǐng)數(shù)字證書、簽發(fā)證書、更新證書、作廢證書和密鑰管理的功能;實(shí)現(xiàn)數(shù)據(jù)在安全信道中傳輸。

公鑰體制;CA;SSL協(xié)議

0 引言

CA是數(shù)字證書認(rèn)證中心的簡(jiǎn)稱,是一個(gè)需要被客戶信任的權(quán)威簽發(fā)機(jī)構(gòu),信任CA的機(jī)構(gòu)對(duì)CA所認(rèn)證的實(shí)體也是無條件信任的。21世紀(jì)作為信息時(shí)代,作為大數(shù)據(jù)時(shí)代,網(wǎng)絡(luò)安全、信息安全和數(shù)據(jù)的安全傳輸?shù)氖切畔r(shí)代和大數(shù)據(jù)時(shí)代的基本保障。數(shù)字證書是作為實(shí)現(xiàn)網(wǎng)絡(luò)安全和保護(hù)數(shù)據(jù)資料在網(wǎng)絡(luò)安全傳輸?shù)幕竟ぞ?,?duì)其數(shù)據(jù)結(jié)構(gòu),簽發(fā)流程,簽發(fā)算法以及簽發(fā)機(jī)構(gòu)證書進(jìn)行深入研究。

電子商務(wù)正在蓬勃的發(fā)展,電子支付是電子商務(wù)的核心的技術(shù),保障電子支付安全的手段之一是SSL ,數(shù)字證書為SSL協(xié)議的核心技術(shù)。對(duì)CA平臺(tái)的模擬,對(duì)網(wǎng)絡(luò)安全和數(shù)據(jù)傳輸安全的學(xué)習(xí)和研究,符合電子商務(wù)發(fā)展的要求,符合計(jì)算機(jī)科學(xué)與技術(shù)現(xiàn)在社會(huì)的發(fā)展趨勢(shì)。

對(duì)數(shù)字認(rèn)證平臺(tái)的模擬實(shí)現(xiàn)能夠深層次地剖析數(shù)字認(rèn)證的流程、能夠了解數(shù)字認(rèn)證的核心技術(shù)、在模擬的過程中也能對(duì)數(shù)字認(rèn)證現(xiàn)在的發(fā)展趨勢(shì)以及發(fā)展模式有較好的認(rèn)識(shí)。本文最終成果為設(shè)計(jì)開發(fā)一個(gè)具備基本功能的數(shù)字認(rèn)證中心的網(wǎng)站,具有前臺(tái)后臺(tái)的管理,能夠模擬實(shí)現(xiàn)數(shù)字認(rèn)證的基本功能。

1 需求分析

需求分析能夠讓我們?cè)谄脚_(tái)設(shè)計(jì)之前了解平臺(tái)架構(gòu),更好服務(wù)于進(jìn)一步設(shè)計(jì)與實(shí)現(xiàn)工作,以下以數(shù)據(jù)流圖為主線,介紹需求。

實(shí)現(xiàn)數(shù)據(jù)認(rèn)證中心的主要流程如圖1,用戶發(fā)出證書申請(qǐng)或者證書作廢申請(qǐng),數(shù)字認(rèn)證中心管理員收到用戶的申請(qǐng)后,通過審核,發(fā)出簽發(fā)命令或者撤銷命令,然后用戶從數(shù)字認(rèn)證中心下載數(shù)字證書或者已作廢的證書。

圖1 頂層數(shù)據(jù)流圖

如圖2,數(shù)字認(rèn)證中心的主要功能可以分為前臺(tái)申請(qǐng)和后臺(tái)審核,用戶在數(shù)字認(rèn)證中心的門戶網(wǎng)站上提出申請(qǐng),數(shù)字認(rèn)證中心將用戶的申請(qǐng)存儲(chǔ)在證書狀態(tài)表里;管理員可以通過后臺(tái)審核系統(tǒng)得到用戶申請(qǐng),管理員通過審核后可以發(fā)出簽發(fā)命令或者撤銷命令,數(shù)字認(rèn)證中心接受管理員命令有生成數(shù)字證書與密鑰文件,系統(tǒng)更新證書狀態(tài)表,將作廢證書信息存入作廢證書表;用戶可以獲得數(shù)字證書與證書吊銷列表。

圖2 0層數(shù)據(jù)流圖

如圖3,用戶通過用戶權(quán)限管理進(jìn)行注冊(cè)申請(qǐng),把用戶信息存入用戶權(quán)限表;用戶查詢證書相關(guān)信息時(shí),系統(tǒng)根據(jù)用戶權(quán)限表和用戶的請(qǐng)求與權(quán)限,讀取系統(tǒng)的作廢證書表與證書狀態(tài)表,把相應(yīng)的信息反饋給用戶。

圖3 申請(qǐng)系統(tǒng)數(shù)據(jù)流圖

圖4 審核系統(tǒng)數(shù)據(jù)流圖

2 總體設(shè)計(jì)

總體設(shè)計(jì)的階段將系統(tǒng)需求細(xì)化成一個(gè)個(gè)的功能模塊,整個(gè)數(shù)字認(rèn)證中心分為用戶模塊和管理員模塊。

2.1 用戶模塊

通過對(duì)數(shù)字認(rèn)證系統(tǒng)的需求分析,可以將基于公鑰體制的CA平臺(tái)功能模塊劃分為用戶模塊和管理員模塊。

(1)證書申請(qǐng)模塊

用戶可以申請(qǐng)個(gè)人數(shù)字證書、安全郵箱證書和安全站點(diǎn)證書,在申請(qǐng)過程中需要填寫申請(qǐng)信息。

(2)證書查詢模塊

用戶可以查詢個(gè)人數(shù)字證書、安全郵箱證書、安全站點(diǎn)證書信息,并且可以根據(jù)每種數(shù)字證書的特點(diǎn)按不同的條件查詢證書。對(duì)于個(gè)人數(shù)字證書,可以根據(jù)證書持有者人的姓名、郵箱、身份證號(hào)碼以及證書的序列號(hào)查詢;對(duì)于安全郵箱證書,可以根據(jù)安全郵箱的地址、申請(qǐng)人的姓名、身份證號(hào)以及證書的序列號(hào)查詢;對(duì)于安全站點(diǎn)證書,可以根據(jù)服務(wù)器的域名以及證書的序列號(hào)查詢。

(3)根證書下載模塊

要使用該數(shù)字認(rèn)證平臺(tái)簽發(fā)的證書,必須先下載該證書認(rèn)證中心的根證書。

用戶個(gè)人信息模塊:在用戶個(gè)人信息模塊中,提供注冊(cè)和找回密碼的功能;還可以修改該用戶已發(fā)出數(shù)字證書簽發(fā)的申請(qǐng),或者撤銷申請(qǐng);用戶可以更新已經(jīng)簽發(fā)的證書,包括延長(zhǎng)證書的使用時(shí)期和作廢已經(jīng)簽發(fā)的證書;用戶可以下載證書對(duì)應(yīng)的密鑰和修改已簽發(fā)證書的密鑰密令。

查詢證書作廢模塊:在查詢證書作廢模塊中,用戶可以查詢作廢證書的信息和下載數(shù)字認(rèn)證中心所簽發(fā)的證書吊銷文件。

2.2 管理員模塊

管理員模塊功能描述如下:

(1)簽發(fā)證書模塊

在證書簽發(fā)模塊中,管理員可以簽發(fā)數(shù)字證書,包括生成數(shù)字證書密鑰、生產(chǎn)數(shù)字證書公鑰、簽發(fā)數(shù)字證書。

(2)更新證書模塊

在更新證書模塊中,管理員可以續(xù)期證書和作廢證書。續(xù)期證書只需要對(duì)用戶的公鑰重新簽名就可以了;對(duì)于作廢證書,需要把證書信息發(fā)布到系統(tǒng)前臺(tái)和簽發(fā)證書作廢列表文件,并固改時(shí)間更新用戶下載的證書作廢列表文件。

(3)密鑰管理模塊

在密鑰管理系統(tǒng)中,管理員根據(jù)用戶的申請(qǐng)可以修改密鑰密令。管理員要進(jìn)入后臺(tái)管理系統(tǒng),先經(jīng)過管理員權(quán)限審核,管理員的信息存儲(chǔ)在管理權(quán)限表里;管理員看到用戶的請(qǐng)求后,系統(tǒng)讀取證書狀態(tài)表,管理員發(fā)出簽發(fā)信息,系統(tǒng)將證書信息發(fā)到前臺(tái);用戶收到用戶作廢請(qǐng)求后,打出作廢命令,系統(tǒng)將信息存儲(chǔ)到作廢表中,并將作廢證書信息發(fā)到前臺(tái)。

2.3 信息管理模塊

(1)注冊(cè)

用戶申請(qǐng)需填寫相關(guān)信息,如姓名,電子郵箱,性別,密碼,確認(rèn)密碼等??紤]到本系統(tǒng)的會(huì)有外國(guó)人,會(huì)有中間名的情況,注冊(cè)信息中包含了中間名,但其并非是必填項(xiàng)。

(2)用戶登錄及忘記密碼

對(duì)于已經(jīng)注冊(cè)過的申請(qǐng)人,可以直接進(jìn)行登錄操作。即填寫注冊(cè)時(shí)所用電子郵箱、密碼及當(dāng)前頁(yè)刷新出的驗(yàn)證碼,通過驗(yàn)證后即可進(jìn)行申請(qǐng)研究生的下一步環(huán)節(jié)。

(3)基本信息錄入

用戶需要錄入大量信息,其中,包括基礎(chǔ)信息、家庭信息、受教育信息、工作經(jīng)驗(yàn)、和語(yǔ)言能力。

3 詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)

3.1 數(shù)據(jù)的安全傳輸與SSL協(xié)議的實(shí)現(xiàn)

在設(shè)計(jì)與開發(fā)基于公鑰體制的CA平臺(tái)時(shí),首先應(yīng)該實(shí)現(xiàn)的功能是數(shù)據(jù)的安全傳輸。為實(shí)現(xiàn)數(shù)據(jù)的安全傳輸首先應(yīng)該實(shí)現(xiàn)SSL鏈接。

(1)安裝證書

為建立SSL鏈接,首先需要一個(gè)數(shù)字證書,這里直接使用利用keytool生成的自簽名的證書,其CN=www.tieshan.com,默認(rèn)CN選項(xiàng)應(yīng)該與域名想對(duì)應(yīng)。

(2)域名綁定

由于我們證書的CN=www.tieshan.com,在使用本地服務(wù)器時(shí),需要將域名www.tieshan.com綁定到本地主機(jī)上,在Windows中打開hosts文件,在電腦的C:WINDOWSsystem32driversetc路徑下,如綁定成功打開命令提示符,輸入ping www.tieshan.com的命令,命令執(zhí)行成功,將會(huì)看到看到如圖5所示。

圖 5 命令提示符ping www.tieshan.com命令截圖

綁定域名之后輸入地址www.tieshan.com:8433之后將正常顯示Tomcat服務(wù)器的主頁(yè)面信息,如圖6所示。

圖6 綁定域名后瀏覽器顯示截圖

(3)配置服務(wù)器

建立SSL鏈接,需要將證書信息配置到Tomcat服務(wù)器安裝目錄下的server.xml文件,在我的電腦里D: omcatconf目錄下。其配置代碼如下所示:

;

protocol="org.apache.coyote.http11.Http11NioProtocol"

SSLEnabled="true"

maxThreads="150"

scheme="https"

secure="true"

clientAuth="false"

keystoreFile="E:caca.keystore"

keystorePass="123456"

sslProtocol="SSL" />

(4)建立SSL鏈接

重新啟動(dòng)Tomcat服務(wù)器,打開谷歌瀏覽器,在地址欄里輸入https://www.tieshan.com:8443/,就可以建立安全鏈接了。

3.2 生成密鑰與證書

雖然keytool可以直接生成密鑰與自簽名證書,但我們不僅僅是為了生成密鑰與證書,而要把生成密鑰與自簽名的證書的功能融入到系統(tǒng)中,在生成證書的時(shí)候,需要查詢用戶的申請(qǐng),然后手動(dòng)的輸入命令提示符命令式不合理的,所以需要設(shè)計(jì)一個(gè)可以自動(dòng)生成密鑰與自簽名證書的代碼。

(1)實(shí)現(xiàn)系統(tǒng)調(diào)用

為了能夠利用Java代碼生成密鑰與數(shù)字證書,必須能夠用Java代碼調(diào)用keytool工具,而keytool并沒有提供能直接被Java調(diào)用的接口。但keytool工具可以再命令提示符下利用doc命令執(zhí)行,而Java語(yǔ)言提供了調(diào)用命令提示符的方法。我們可以通過調(diào)用命令提示符來實(shí)現(xiàn)Java代碼控制keytool的目的。

(2)生成密鑰

首先,我們把生成密鑰與證書的代碼放在一個(gè)ExportCertFormKeystore類里,生成密鑰與證書為這個(gè)類的成員方法。我們需要先設(shè)計(jì)一個(gè)方法execCommand(String[] arstringCommand),可以實(shí)現(xiàn)系統(tǒng)調(diào)用的命令。

其次我們需要利用execCommand(String[] arstringCommand)實(shí)現(xiàn)系統(tǒng)調(diào)用keytool工具,設(shè)計(jì)一個(gè)生成密鑰的方法genkey(int years,String alias,String storefile,String dname,String keypassword)。

(3)生成證書

生成密鑰之后,就要根據(jù)密鑰的信息,通過系統(tǒng)調(diào)用,使用execCommand(String[] arstringCommand)調(diào)用keytool工具,實(shí)現(xiàn)生成證書文件的功能,設(shè)計(jì)一個(gè)生成證書方法為gencert(String storefile,String alias,String certfile,String keypassword)其中參數(shù)含義分別是證書的密鑰文件路徑,證書別名,證書的文件路徑,證書的密鑰密令。

3.3 簽發(fā)證書

keytool工具只有生成密鑰和自簽名證書的方法,并不能簽發(fā)證書,而要實(shí)現(xiàn)證書的簽發(fā)必須利用java語(yǔ)言提供的有關(guān)security的包,這里詳細(xì)解析一下簽發(fā)證書的代碼。

首先,導(dǎo)入需要應(yīng)用的到j(luò)ar包。我們把簽發(fā)證書的方法放在一個(gè)SignCert的類里。

3.3.1簽發(fā)流程

圖7 證書簽發(fā)程序流程圖

如圖7所示,證書簽發(fā)內(nèi)容在方法Sign(),簽發(fā)證書的流程為:首先使用getSignCertInfo()獲取根證書信息;然后用signCertificate()簽發(fā)代簽名的數(shù)字證書;最后使用createNewCertificate()創(chuàng)建和保存簽名證書的信息。

3.3.2獲取簽名證書

使用getSignCertInfo()獲取簽名信息,如圖8所示。

其實(shí)現(xiàn)流程為:

(1)定義一個(gè)名為 vFin文件流FileInputStream將根證書的密鑰文件keystore進(jìn)行讀?。?/p>

(2)利用密鑰文件的keystore的密令將vFin文件流用用keystore類的成員方法keystore.load(FileInputStream,Stirng)獲取密鑰庫(kù)的信息;

(3)然后將密鑰庫(kù)信息轉(zhuǎn)換成X509CertInfo的信息,并將密鑰庫(kù)中的私鑰密鑰提取出來保存。

圖8 獲取簽名證書信息

3.3.3簽發(fā)數(shù)字證書

圖9 簽發(fā)數(shù)字證書程序流程圖

簽發(fā)證書的流程為:

(1)從keytool生成的cer自簽名證書中獲取被簽名證書信息;

(2)將證書轉(zhuǎn)換可以識(shí)別的X.509形式;

(3)利用證書類的set方法設(shè)置被簽名證書的設(shè)置有效日期、序列號(hào)、簽名者、數(shù)字簽名算法。

然后將證書類保存到指定的文件中去,就實(shí)現(xiàn)了簽發(fā)證書的算法,在基于公鑰體制的CA平臺(tái)設(shè)計(jì)與開發(fā)過程中,把簽發(fā)算法放到Struts2的Action類中,管理員可以通過讀取用戶的申請(qǐng),自行設(shè)置證書的主體信息。

3.4 作廢證書

在生成作廢列表中,僅僅用到j(luò)dk中的包是遠(yuǎn)遠(yuǎn)不夠的,生成作廢列表應(yīng)該是系統(tǒng)重點(diǎn)難點(diǎn),不僅需要對(duì)證書作廢列表的數(shù)據(jù)結(jié)構(gòu)和編碼有所了解,更需要熟悉Bouncy Castle 類。

3.4.1生成證書作廢列表的流程

(1)根據(jù)keytool生成的keystore文件獲取私鑰與公鑰;

(2)將當(dāng)前時(shí)間設(shè)置為證書作廢時(shí)間;

(3)將作廢證書的序列號(hào)導(dǎo)入證書作廢列表中;

(4)用keystore文件里證書簽發(fā)者的信息對(duì)證書作廢文件進(jìn)行簽名;

(5)設(shè)置證書作廢的原因;

(6)將證書作廢列表的信息編碼保存到crl文件里。

3.4.2更新證書作廢列表crl文件

更新證書作廢列表即把新的作廢證書的序列號(hào)以及作廢原因?qū)氲阶C書作廢列表文件crl中,理論上一個(gè)數(shù)字認(rèn)證中心對(duì)外發(fā)布一個(gè)最新證書作廢列表供用戶下載就行了。更新證書作廢列表crl文件流程如下:

(1)根據(jù)keytool生成的keystore文件讀取根證書的密鑰與證書信息;

(2)根據(jù)根證書的密鑰里的私鑰讀取crl文件信息;

(3)生成一個(gè)空值的證書作廢條目;

(4)將當(dāng)前時(shí)間設(shè)置為證書作廢時(shí)間;

(5)將作廢證書的序列號(hào)導(dǎo)入證書作廢列表中;

(6)設(shè)置證書作廢的原因;

(7)將證書作廢列表的信息編碼保存到crl文件里。

3.5 密鑰管理

3.5.1 密鑰校驗(yàn)

密鑰校驗(yàn)過程主要流程為:

(1)首先輸入用于校驗(yàn)一個(gè)字符串;

(2)將這個(gè)字符用getBytes("GBK")取得該字符的GBK編碼;

(3)用事先定義的方法從密鑰文件中讀取私鑰信息;

(4)對(duì)該字符串的GBK編碼用私鑰進(jìn)行加密;

(5)將加密的GBK編碼,采用String(GBK)的格式輸出;

(6)讀取對(duì)應(yīng)證書的公鑰信息;

(7)用公鑰對(duì)私鑰加密后的GBK編碼進(jìn)行解密;

(8)將解密后的編碼,采用String(GBK)格式輸出。

我們比較加密前后的String是否相同就可以校驗(yàn)私鑰加密公鑰解密的過程。

3.5.2修改密鑰密令

修改密鑰文件keystore的密鑰密令可以通過java.security.cert包直接keystore.load( )和keystore.store( )實(shí)現(xiàn)。

4 結(jié)束語(yǔ)

本文主要闡述了完成一個(gè)功能完整數(shù)字認(rèn)證系統(tǒng)的設(shè)計(jì),完成了具有證書申請(qǐng)、證書簽發(fā)、證書更新、證書查詢、證書作廢,密鑰管理、證書作廢功能的數(shù)字認(rèn)證系統(tǒng)。數(shù)字認(rèn)證系統(tǒng)是一個(gè)關(guān)乎網(wǎng)絡(luò)安全的核心系統(tǒng),網(wǎng)絡(luò)安全在日常的商用領(lǐng)域,關(guān)系到每個(gè)網(wǎng)名的的切身利益;在軍事領(lǐng)域,尤其是現(xiàn)在信息技術(shù)用戶軍事領(lǐng)域的,高科技軍事時(shí)代,網(wǎng)絡(luò)安全問題關(guān)系到一個(gè)國(guó)家的命運(yùn)。雖然現(xiàn)在只是初步的模擬數(shù)字認(rèn)證系統(tǒng)的基本功能,但相信當(dāng)擁有了自己的開發(fā)團(tuán)隊(duì),具有一定的開發(fā)的所需要物質(zhì)基礎(chǔ),必定能為國(guó)家的網(wǎng)絡(luò)安全作出自己的貢獻(xiàn)。

[1]梁棟.Java加密與解密的藝術(shù)[M].北京:機(jī)械工業(yè)出版社,2010.

[2]薛天龍.數(shù)字證書原理以及應(yīng)用方法指南[M].北京:中國(guó)標(biāo)準(zhǔn)出版社,2014.

[3]陳路. 基于代購(gòu)網(wǎng)站多種支付的研究與實(shí)現(xiàn)[D].東華大學(xué),2014.

[4]殷騰飛.DRM系統(tǒng)中PKI部分的研究與設(shè)計(jì)[D].華東理工大學(xué),2014.

[5]鄭麗娟.身份與位置分離網(wǎng)絡(luò)中認(rèn)證協(xié)議的研究與設(shè)計(jì)[D].北京交通大學(xué),2014.

[6]Han-Ul Jang,Heung-Kyu Lee. Biometric-PKI Authentic ation System Using Fingerprint Minutiae[J].Journal of Computer and Communications,2014.

[7]柴國(guó)杰.基于數(shù)字證書認(rèn)證的IPSec VPN研究與應(yīng)用[D].山東大學(xué),2012.

[8]Ian Phau,Aaron Lim,Johan Liang,Michael Lwin.Engaging in digital piracy of movies:a theory of planned behaviour approach[J].Internet Research,2014.

猜你喜歡
數(shù)字證書公鑰密鑰
幻中邂逅之金色密鑰
幻中邂逅之金色密鑰
密碼系統(tǒng)中密鑰的狀態(tài)與保護(hù)*
創(chuàng)建KDS根密鑰
神奇的公鑰密碼
國(guó)密SM2密碼算法的C語(yǔ)言實(shí)現(xiàn)
基于身份的聚合簽名體制研究
PKI技術(shù)在SSLVPN中的應(yīng)用
數(shù)字簽名保護(hù)Word文檔
一種公開密鑰RSA算法的實(shí)現(xiàn)