專利名稱:生成安全文件的方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及對(duì)信息安全領(lǐng)域,特別涉及一種生成安全文件的方法及裝置。
技術(shù)背景
XML (Extensible Markup Language)艮口可擴(kuò)展標(biāo)i己i吾言。XML 是 Internet 環(huán)境中 跨平臺(tái)的,依賴于內(nèi)容的技術(shù),是當(dāng)前處理結(jié)構(gòu)化文檔信息的有力工具。它是一種簡(jiǎn)單的數(shù) 據(jù)存儲(chǔ)語(yǔ)言,使用一系列簡(jiǎn)單的標(biāo)記描述數(shù)據(jù),而這些標(biāo)記可以用方便的方式建立,XML極 其簡(jiǎn)單易于掌握和使用。XML展示數(shù)據(jù),顯示內(nèi)容簡(jiǎn)單。Dom4j是一個(gè)Java的XML API,類 似于jdom,用來(lái)讀寫XML文件的。Dom4j最大的特色是使用大量的接口,這也是它被認(rèn)為比 JDOM靈活的主要原因。Dom4j是一個(gè)易用的、開源的庫(kù),用于XML,XPath和XSLT,它應(yīng)用于 Java平臺(tái),采用了 Java集合框架并完全支持DOM,SAX和JAXP。
在現(xiàn)有技術(shù)中,對(duì)稱加密采用了對(duì)稱密碼編碼技術(shù),它的特點(diǎn)是文件加密和解密 使用相同的密鑰,即加密密鑰也可以用作解密密鑰,這種方法在密碼學(xué)中叫做對(duì)稱加密算 法,對(duì)稱加密算法使用起來(lái)簡(jiǎn)單快捷,密鑰較短,且破譯困難。在越來(lái)越多的基于對(duì)稱密鑰 的認(rèn)證系統(tǒng),如一次性密碼或挑戰(zhàn)應(yīng)答機(jī)制的認(rèn)證系統(tǒng),需要一個(gè)標(biāo)準(zhǔn)的格式用于系統(tǒng)間 的導(dǎo)入導(dǎo)出(或產(chǎn)生)基于認(rèn)證憑據(jù)的安全文件。未加密的安全文件在導(dǎo)入、導(dǎo)出時(shí)安全 性也會(huì)受到威脅,使客戶的隱蔽資料外泄。在不同系統(tǒng)中,例如認(rèn)證授權(quán)銷售方的安全管理 系統(tǒng)和服務(wù)提供者的安全管理系統(tǒng),存在數(shù)據(jù)格式不兼容的尷尬局面,需要轉(zhuǎn)換成各自安 全管理系統(tǒng)兼容的格式,該方式也增加了重要信息泄露的幾率。
由上可知,現(xiàn)有技術(shù)中未加密的安全文件在系統(tǒng)導(dǎo)入、導(dǎo)出時(shí)其安全性受到威脅, 會(huì)造成重要的安全信息外漏;同時(shí),不同的安全管理系統(tǒng)之間存在數(shù)據(jù)格式不兼容的情況, 導(dǎo)致該重要信息使用過(guò)程中存在安全隱患。發(fā)明內(nèi)容
本發(fā)明的主要目的在于提供一種生成安全文件的方法及裝置,以至少解決上述重 要信息使用過(guò)程中的存在安全隱患問(wèn)題。
根據(jù)本發(fā)明的一個(gè)方面,提供了一種生成安全文件的方法,該方法包括令牌服務(wù) 器創(chuàng)建xml文件;令牌服務(wù)器為xml文件創(chuàng)建根元素,并將根元素作為存儲(chǔ)令牌種子的密鑰 容器節(jié)點(diǎn),配置密鑰容器節(jié)點(diǎn)的屬性及屬性值;令牌服務(wù)器為根元素創(chuàng)建第一子元素節(jié)點(diǎn); 其中,第一子元素節(jié)點(diǎn)用于配置令牌種子的密鑰文件節(jié)點(diǎn),密鑰文件節(jié)點(diǎn)包括解密密鑰文 件名稱;令牌服務(wù)器為根元素創(chuàng)建第二子元素節(jié)點(diǎn);其中,第二子元素節(jié)點(diǎn)用于配置包含 令牌種子的令牌屬性節(jié)點(diǎn);令牌服務(wù)器為根元素創(chuàng)建第三子元素節(jié)點(diǎn),其中,第三子元素節(jié) 點(diǎn)用于配置包含令牌種子的密鑰設(shè)備節(jié)點(diǎn);令牌種子加密后保存在密鑰設(shè)備節(jié)點(diǎn);密鑰設(shè) 備節(jié)點(diǎn)的配置過(guò)程包括令牌服務(wù)器為第三子元素節(jié)點(diǎn)創(chuàng)建令牌節(jié)點(diǎn),并根據(jù)第三子元素 節(jié)點(diǎn)配置的密鑰設(shè)備設(shè)置令牌節(jié)點(diǎn)的屬性,令牌節(jié)點(diǎn)的屬性包括令牌編號(hào)和令牌類型標(biāo)識(shí) 符;根據(jù)令牌節(jié)點(diǎn)的編號(hào)和令牌類型標(biāo)識(shí)符為令牌節(jié)點(diǎn)創(chuàng)建密鑰數(shù)據(jù)節(jié)點(diǎn),密鑰數(shù)據(jù)節(jié)點(diǎn)包括解密令牌種子的密鑰、加密方式信息、加密后的密文;令牌服務(wù)器將配置后的xml文件 作為安全文件。
根據(jù)本發(fā)明的另一方面,提供了一種生成安全文件的裝置,該裝置包括文件創(chuàng)建 模塊,用于創(chuàng)建xml文件;根元素創(chuàng)建模塊,用于為xml文件創(chuàng)建根元素,并將根元素作為存 儲(chǔ)令牌種子的密鑰容器節(jié)點(diǎn),配置密鑰容器節(jié)點(diǎn)的屬性及屬性值;第一子元素創(chuàng)建模塊,用 于為根元素創(chuàng)建第一子元素節(jié)點(diǎn);其中,第一子元素節(jié)點(diǎn)用于配置令牌種子的密鑰文件節(jié) 點(diǎn),密鑰文件節(jié)點(diǎn)包括解密密鑰文件名稱;第二子元素創(chuàng)建模塊,用于為根元素創(chuàng)建第二子 元素節(jié)點(diǎn);其中,第二子元素節(jié)點(diǎn)用于配置包含令牌種子的令牌屬性節(jié)點(diǎn);第三子元素創(chuàng) 建模塊,用于為根元素創(chuàng)建第三子元素節(jié)點(diǎn),其中,第三子元素節(jié)點(diǎn)用于配置包含令牌種子 的密鑰設(shè)備節(jié)點(diǎn);令牌種子加密后保存在密鑰設(shè)備節(jié)點(diǎn);密鑰設(shè)備節(jié)點(diǎn)的配置過(guò)程包括 為第三子元素節(jié)點(diǎn)創(chuàng)建令牌節(jié)點(diǎn),并根據(jù)第三子元素節(jié)點(diǎn)配置的密鑰設(shè)備設(shè)置令牌節(jié)點(diǎn)的 屬性,令牌節(jié)點(diǎn)的屬性包括令牌編號(hào)和令牌類型標(biāo)識(shí)符;根據(jù)令牌節(jié)點(diǎn)的編號(hào)和令牌類型 標(biāo)識(shí)符為令牌節(jié)點(diǎn)創(chuàng)建密鑰數(shù)據(jù)節(jié)點(diǎn),密鑰數(shù)據(jù)節(jié)點(diǎn)包括解密令牌種子的密鑰、加密方式 信息、加密后的密文;文件生成模塊,用于將配置后的xml文件作為安全文件。
通過(guò)本發(fā)明,采用xml文件的格式創(chuàng)建安全文件,使該安全文件能夠兼容各種系 統(tǒng),而不需要對(duì)安全文件進(jìn)行格式轉(zhuǎn)換,因此解決了因格式轉(zhuǎn)換導(dǎo)致的安全隱患問(wèn)題;同 時(shí),本發(fā)明在配置安全文件中各節(jié)點(diǎn)時(shí),采用對(duì)令牌種子加密的方式配置密鑰設(shè)備對(duì)應(yīng)的 節(jié)點(diǎn)(即第三子元素節(jié)點(diǎn)),該方式進(jìn)一步降低了系統(tǒng)導(dǎo)入、導(dǎo)出安全文件時(shí)重要信息被泄 露的威脅。
此處所說(shuō)明的附圖用來(lái)提供對(duì)本發(fā)明的進(jìn)一步理解,構(gòu)成本申請(qǐng)的一部分,本發(fā) 明的示意性實(shí)施例及其說(shuō)明用于解釋本發(fā)明,并不構(gòu)成對(duì)本發(fā)明的不當(dāng)限定。在附圖中
圖1是根據(jù)本發(fā)明實(shí)施例1的生成安全文件的方法流程圖2是根據(jù)本發(fā)明實(shí)施例2的生成安全文件的方法流程圖3是根據(jù)本發(fā)明實(shí)施例2的令牌服務(wù)器配置第二子元素節(jié)點(diǎn)的方法流程圖4是根據(jù)本發(fā)明實(shí)施例2的配置第三子元素節(jié)點(diǎn)的方法流程圖5是根據(jù)本發(fā)明實(shí)施例2的令牌服務(wù)器增加令牌節(jié)點(diǎn)的屬性值的方法流程圖6是根據(jù)本發(fā)明實(shí)施例2的令牌服務(wù)器增加xenc公共命名空間加密方法節(jié)點(diǎn) 的算法屬性值的方法流程圖7是根據(jù)本發(fā)明實(shí)施例2的令牌服務(wù)器創(chuàng)建字符型變量的方法流程圖8是根據(jù)本發(fā)明實(shí)施例3的生成安全文件的裝置結(jié)構(gòu)框圖9是根據(jù)本發(fā)明實(shí)施例4的生成安全文件的系統(tǒng)結(jié)構(gòu)框圖。
具體實(shí)施方式
下文中將參考附圖并結(jié)合實(shí)施例來(lái)詳細(xì)說(shuō)明本發(fā)明。需要說(shuō)明的是,在不沖突的 情況下,本申請(qǐng)中的實(shí)施例及實(shí)施例中的特征可以相互組合。
本發(fā)明實(shí)施例中的密鑰容器中包含多個(gè)密鑰設(shè)備(也稱為令牌),其中,令牌分為 事件性和時(shí)間性兩種類型,令牌通過(guò)加密令牌種子產(chǎn)生動(dòng)態(tài)口令,密鑰是解密令牌種子時(shí)需要輸入的數(shù)據(jù)。
實(shí)施例1
參見圖1,本實(shí)施例提供了一種生成安全文件的方法,在本實(shí)施例中,令牌服務(wù)器 使用xml組件dom4j包完成創(chuàng)建xml文件等操作。除了 dom4j之外,還可使用JD0M、XMream 等其他現(xiàn)有組件完成相同的操作,操作過(guò)程中調(diào)用的具體函數(shù)、方法及接口不在本發(fā)明的 范圍之內(nèi)。
該方法包括以下步驟
步驟S102,令牌服務(wù)器創(chuàng)建xml文件;
本實(shí)施例中創(chuàng)建xml文件具體指令牌服務(wù)器引用xml組件dom4j包中的文檔幫 助對(duì)象中的創(chuàng)建文檔方法創(chuàng)建xml文件,引用該xml組件dom4j包中的文檔對(duì)象,為該xml 文件賦值文檔對(duì)象名稱;以及令牌服務(wù)器生成該xml文件的頭節(jié)點(diǎn)的版本號(hào)屬性和編碼規(guī) 范屬性,并聲明該頭節(jié)點(diǎn)的版本號(hào)屬性和編碼規(guī)范屬性。
步驟S104,令牌服務(wù)器為xml文件創(chuàng)建根元素,并將根元素作為存儲(chǔ)令牌種子的 密鑰容器節(jié)點(diǎn),配置密鑰容器節(jié)點(diǎn)的屬性及屬性值;該步驟具體包括
1)令牌服務(wù)器調(diào)用xml組件dom4j包中的文檔對(duì)象的增加節(jié)點(diǎn)方法,為該xml文 件創(chuàng)建根元素;
2)令牌服務(wù)器將該根元素作為存儲(chǔ)令牌種子的密鑰容器節(jié)點(diǎn);
3)令牌服務(wù)器調(diào)用上述密鑰容器節(jié)點(diǎn)中賦值元素對(duì)象的增加屬性方法配置密鑰 容器節(jié)點(diǎn)的屬性及屬性值,并在該ml文件最后一行標(biāo)識(shí)上述密鑰容器節(jié)點(diǎn)的結(jié)尾。
步驟S106,令牌服務(wù)器為根元素創(chuàng)建第一子元素節(jié)點(diǎn);其中,第一子元素節(jié)點(diǎn)用 于配置密鑰文件節(jié)點(diǎn),密鑰文件節(jié)點(diǎn)包括解密密鑰文件名稱;本步驟具體包括
1)令牌服務(wù)器調(diào)用上述密鑰容器節(jié)點(diǎn)中根元素對(duì)象的增加節(jié)點(diǎn)方法創(chuàng)建第一子 元素節(jié)點(diǎn),將該第一子元素節(jié)點(diǎn)作為令牌種子的密鑰文件節(jié)點(diǎn);
2)令牌服務(wù)器調(diào)用上述第一子元素節(jié)點(diǎn)中賦值元素對(duì)象的增加節(jié)點(diǎn)方法創(chuàng)建密 鑰文件節(jié)點(diǎn)的子元素節(jié)點(diǎn),將該密鑰文件節(jié)點(diǎn)的子元素節(jié)點(diǎn)作為解密密鑰文件名稱節(jié)點(diǎn); 在該解密密鑰文件名稱節(jié)點(diǎn)中賦值元素對(duì)象,調(diào)用該賦值元素對(duì)象的填充節(jié)點(diǎn)方法將解密 密鑰文件名稱填充在該解密密鑰文件名稱節(jié)點(diǎn),在該解密密鑰文件名稱節(jié)點(diǎn)后標(biāo)識(shí)上述密 鑰文件節(jié)點(diǎn)的結(jié)尾。
步驟S108,令牌服務(wù)器為根元素創(chuàng)建第二子元素節(jié)點(diǎn);其中,第二子元素節(jié)點(diǎn)用 于配置包含令牌種子的令牌屬性節(jié)點(diǎn);
本步驟中,令牌服務(wù)器調(diào)用上述密鑰容器節(jié)點(diǎn)中賦值元素對(duì)象的增加節(jié)點(diǎn)方法創(chuàng) 建第二子元素節(jié)點(diǎn),將該第二子元素節(jié)點(diǎn)作為包含令牌種子的令牌屬性節(jié)點(diǎn),在令牌屬性 節(jié)點(diǎn)中賦值元素對(duì)象,并根據(jù)上述密鑰容器節(jié)點(diǎn)中的令牌種子的令牌類型增加令牌屬性節(jié) 點(diǎn)的屬性及屬性值,其中,令牌屬性節(jié)點(diǎn)的屬性包括公共命名空間標(biāo)示符和令牌算法兩個(gè) 屬性。
優(yōu)選地,根據(jù)密鑰容器節(jié)點(diǎn)中的密鑰設(shè)備的令牌類型增加令牌屬性節(jié)點(diǎn)的屬性及 屬性值包括以下步驟
1)令牌服務(wù)器調(diào)用令牌屬性節(jié)點(diǎn)中的賦值元素對(duì)象的增加節(jié)點(diǎn)方法創(chuàng)建令牌屬 性節(jié)點(diǎn)的兩個(gè)二級(jí)子元素節(jié)點(diǎn),將兩個(gè)二級(jí)子元素節(jié)點(diǎn)分別作為密鑰用途節(jié)點(diǎn)和數(shù)據(jù)節(jié)點(diǎn)。
2)令牌服務(wù)器調(diào)用密鑰用途節(jié)點(diǎn)中賦值對(duì)象的增加屬性方法增加密鑰用途節(jié)點(diǎn) 的動(dòng)態(tài)令牌屬性及屬性值,并在數(shù)據(jù)節(jié)點(diǎn)后標(biāo)識(shí)令牌屬性節(jié)點(diǎn)的結(jié)尾;
3)令牌服務(wù)器調(diào)用密鑰用途節(jié)點(diǎn)中賦值對(duì)象的增加節(jié)點(diǎn)方法創(chuàng)建三級(jí)子元素動(dòng) 態(tài)口令節(jié)點(diǎn),在動(dòng)態(tài)口令節(jié)點(diǎn)中賦值元素對(duì)象的增加屬性方法增加動(dòng)態(tài)口令節(jié)點(diǎn)的屬性及 屬性值;
4)令牌服務(wù)器根據(jù)令牌類型標(biāo)識(shí)符確定令牌類型為事件同步動(dòng)態(tài)令牌或時(shí)間動(dòng) 態(tài)令牌;例如,令牌類型標(biāo)識(shí)符為1,則確定令牌類型為事件同步動(dòng)態(tài)令牌;令牌類型標(biāo)識(shí) 符為0,則確定令牌類型為時(shí)間動(dòng)態(tài)令牌;
5)如果令牌類型是事件同步動(dòng)態(tài)令牌,令牌服務(wù)器根據(jù)令牌類型標(biāo)識(shí)符調(diào)用數(shù)據(jù) 節(jié)點(diǎn)中賦值對(duì)象的增加節(jié)點(diǎn)方法創(chuàng)建三級(jí)子元素計(jì)數(shù)器節(jié)點(diǎn);在計(jì)數(shù)器節(jié)點(diǎn)后標(biāo)識(shí)數(shù)據(jù)節(jié) 點(diǎn)的結(jié)尾;調(diào)用計(jì)數(shù)器節(jié)點(diǎn)中賦值對(duì)象的增加節(jié)點(diǎn)方法創(chuàng)建四級(jí)子元素用戶默認(rèn)值節(jié)點(diǎn), 調(diào)用用戶默認(rèn)值節(jié)點(diǎn)中的賦值對(duì)象的填充節(jié)點(diǎn)方法填充用戶默認(rèn)值節(jié)點(diǎn),在用戶默認(rèn)值節(jié) 點(diǎn)后標(biāo)識(shí)計(jì)數(shù)器節(jié)點(diǎn)結(jié)尾;
6)如果令牌類型是時(shí)間動(dòng)態(tài)令牌,令牌服務(wù)器調(diào)用數(shù)據(jù)節(jié)點(diǎn)賦值對(duì)象的增加節(jié)點(diǎn) 方法創(chuàng)建三級(jí)子元素起始參考時(shí)間節(jié)點(diǎn)和時(shí)鐘周期節(jié)點(diǎn),調(diào)用起始參考時(shí)間節(jié)點(diǎn)和時(shí)鐘周 期節(jié)點(diǎn)中賦值對(duì)象的增加節(jié)點(diǎn)方法創(chuàng)建四級(jí)子元素用戶默認(rèn)值節(jié)點(diǎn);調(diào)用用戶默認(rèn)值節(jié)點(diǎn) 中賦值對(duì)象的填充節(jié)點(diǎn)方法填充用戶默認(rèn)值節(jié)點(diǎn);在用戶默認(rèn)值節(jié)點(diǎn)結(jié)尾后標(biāo)識(shí)起始參考 時(shí)間節(jié)點(diǎn)和時(shí)鐘周期節(jié)點(diǎn)結(jié)尾。
其中,起始參考時(shí)間接待和時(shí)鐘周期節(jié)點(diǎn)賦值對(duì)象的名稱不一樣。
步驟S110,令牌服務(wù)器為根元素創(chuàng)建第三子元素節(jié)點(diǎn),其中,第三子元素節(jié)點(diǎn)用 于配置包含令牌種子的密鑰設(shè)備節(jié)點(diǎn);所述令牌種子加密后保存在該密鑰設(shè)備節(jié)點(diǎn)。具體 地,本步驟還包括配置第三子元素節(jié)點(diǎn),即還包括密鑰設(shè)備節(jié)點(diǎn)的配置過(guò)程,該配置過(guò)程包 括
1)令牌服務(wù)器為第三子元素節(jié)點(diǎn)創(chuàng)建令牌節(jié)點(diǎn),并根據(jù)第三子元素節(jié)點(diǎn)配置的密 鑰設(shè)備設(shè)置令牌節(jié)點(diǎn)的屬性,令牌節(jié)點(diǎn)的屬性包括令牌編號(hào)和令牌類型標(biāo)識(shí)符;
2)令牌服務(wù)器根據(jù)令牌節(jié)點(diǎn)的編號(hào)和令牌類型標(biāo)識(shí)符為令牌節(jié)點(diǎn)創(chuàng)建密鑰數(shù)據(jù) 節(jié)點(diǎn),密鑰數(shù)據(jù)節(jié)點(diǎn)包括解密令牌種子的密鑰、加密方式信息、加密后的密文。
優(yōu)選地,令牌服務(wù)器為根元素創(chuàng)建第三子元素節(jié)點(diǎn)包括令牌服務(wù)器調(diào)用密鑰容 器節(jié)點(diǎn)中賦值對(duì)象的增加節(jié)點(diǎn)方法創(chuàng)建密鑰容器節(jié)點(diǎn)的第三子元素節(jié)點(diǎn),將第三子元素節(jié) 點(diǎn)作為包含令牌種子的密鑰設(shè)備節(jié)點(diǎn);
令牌服務(wù)器為第三子元素節(jié)點(diǎn)創(chuàng)建令牌節(jié)點(diǎn)包括令牌服務(wù)器調(diào)用密鑰設(shè)備節(jié)點(diǎn) 中賦值對(duì)象的增加節(jié)點(diǎn)方法創(chuàng)建令牌節(jié)點(diǎn),調(diào)用令牌節(jié)點(diǎn)中賦值對(duì)象的增加方法增加令牌 節(jié)點(diǎn)的令牌編號(hào)屬性及屬性值、令牌類型標(biāo)識(shí)符屬性及令牌類型標(biāo)識(shí)符屬性的屬性值;
根據(jù)令牌節(jié)點(diǎn)的編號(hào)和令牌類型標(biāo)識(shí)符為令牌節(jié)點(diǎn)創(chuàng)建密鑰數(shù)據(jù)節(jié)點(diǎn)包括令牌 服務(wù)器調(diào)用令牌節(jié)點(diǎn)中賦值對(duì)象的增加節(jié)點(diǎn)方法創(chuàng)建令牌節(jié)點(diǎn)的子元素密鑰數(shù)據(jù)節(jié)點(diǎn),在 密鑰數(shù)據(jù)節(jié)點(diǎn)后標(biāo)識(shí)令牌節(jié)點(diǎn)的結(jié)尾;調(diào)用密鑰數(shù)據(jù)節(jié)點(diǎn)中賦值對(duì)象的增加節(jié)點(diǎn)方法創(chuàng)建 密鑰數(shù)據(jù)節(jié)點(diǎn)的子元素令牌種子節(jié)點(diǎn);在令牌種子節(jié)點(diǎn)后標(biāo)識(shí)密鑰數(shù)據(jù)節(jié)點(diǎn)的結(jié)尾;令牌 服務(wù)器調(diào)用令牌種子節(jié)點(diǎn)中增加節(jié)點(diǎn)方法創(chuàng)建令牌種子節(jié)點(diǎn)的子元素密文數(shù)值節(jié)點(diǎn),在密文數(shù)值節(jié)點(diǎn)后標(biāo)識(shí)令牌種子節(jié)點(diǎn)的結(jié)尾。
其中,令牌服務(wù)器調(diào)用令牌種子節(jié)點(diǎn)中增加節(jié)點(diǎn)方法創(chuàng)建令牌種子節(jié)點(diǎn)的子元素 密文數(shù)值節(jié)點(diǎn)包括
令牌服務(wù)器調(diào)用密文數(shù)值節(jié)點(diǎn)中賦值對(duì)象的增加方法創(chuàng)建密文數(shù)值節(jié)點(diǎn)的兩子 元素xenc公共命名空間加密方法節(jié)點(diǎn)和xenc公共命名空間密文數(shù)據(jù)節(jié)點(diǎn)、調(diào)用xenc公共 命名空間加密方法節(jié)點(diǎn)賦值對(duì)象的增加節(jié)點(diǎn)屬性方法增加xenc公共命名空間加密方法節(jié) 點(diǎn)的算法屬性及令牌種子數(shù)值加密方式標(biāo)識(shí)符的屬性值;
令牌服務(wù)器調(diào)用xenc公共命名空間密文數(shù)據(jù)節(jié)點(diǎn)中賦值對(duì)象的增加節(jié)點(diǎn)方法創(chuàng) 建xenc公共命名空間密文數(shù)據(jù)節(jié)點(diǎn),在xenc公共命名空間密文數(shù)值節(jié)點(diǎn)后標(biāo)識(shí)xenc公共 命名空間密文數(shù)據(jù)節(jié)點(diǎn)的結(jié)尾;
令牌服務(wù)器創(chuàng)建空白字符型變量,使用AES256加密算法或3DES加密算法將未加 密令牌種子數(shù)值進(jìn)行加密,將加密后的令牌種子數(shù)值賦值字符型變量;調(diào)用xenc公共命名 空間密文數(shù)據(jù)節(jié)點(diǎn)中賦值對(duì)象的填充節(jié)點(diǎn)方法將字符型變量代表的加密后令牌種子數(shù)值 填充在上述密文數(shù)據(jù)節(jié)點(diǎn),在加密后令牌種子數(shù)值后標(biāo)識(shí)該xenc公共命名空間密文數(shù)值 節(jié)點(diǎn)的結(jié)尾。
優(yōu)選地,將加密后的令牌種子數(shù)值賦值所述字符型變量包括將加密后的令牌種 子數(shù)值使用BASE64編碼成為字符型數(shù)值,將該字符型數(shù)值賦值給上述字符型變量。
優(yōu)選地,本發(fā)明實(shí)施例中的第三子元素節(jié)點(diǎn)用于配置指定個(gè)數(shù)的密鑰設(shè)備節(jié)點(diǎn), 并根據(jù)配置的密鑰設(shè)備節(jié)點(diǎn)重復(fù)執(zhí)行上述步驟SllO中的密鑰設(shè)備節(jié)點(diǎn)的配置過(guò)程,重復(fù) 執(zhí)行的次數(shù)為指定個(gè)數(shù)。
步驟S112,令牌服務(wù)器將配置后的xml文件作為安全文件。
本實(shí)施例通過(guò)采用xml文件的格式創(chuàng)建安全文件,使該安全文件能夠兼容各種系 統(tǒng),而不需要對(duì)安全文件進(jìn)行格式轉(zhuǎn)換,因此解決了因格式轉(zhuǎn)換導(dǎo)致的安全隱患問(wèn)題;同 時(shí),本實(shí)施例在配置安全文件中各節(jié)點(diǎn)時(shí),采用對(duì)令牌種子加密的方式配置密鑰設(shè)備對(duì)應(yīng) 的節(jié)點(diǎn)(即第三子元素節(jié)點(diǎn)),該方式進(jìn)一步降低了系統(tǒng)導(dǎo)入、導(dǎo)出安全文件時(shí)重要信息被 泄露的威脅。
實(shí)施例2
參見圖2,本實(shí)施例提供了一種生成安全文件的方法,該方法具體包括以下步驟
步驟S201,令牌服務(wù)器創(chuàng)建一個(gè)xml文件,本實(shí)施例具體為令牌服務(wù)器引用xml組 件dom4j包中DocumentHelper (文檔幫助)對(duì)象中的createDocument方法創(chuàng)建一個(gè)XML 文檔,弓丨用xml組件dom4j包中Document對(duì)象,賦值Document對(duì)象名稱Document ;
步驟S202,令牌服務(wù)器自動(dòng)生成頭節(jié)點(diǎn),例如,自動(dòng)生成XML文件的第一行頭節(jié) 點(diǎn)<xml>的version(版本號(hào))屬性和encoding(編碼規(guī)范)屬性;聲明頭節(jié)點(diǎn)<xml>的 version (版本號(hào))為1. 0,頭節(jié)點(diǎn)<xml>的encoding(編碼規(guī)范)為UTF_8(變長(zhǎng)字符編 碼);
具體地,XML文檔類型聲明為< ? xml version =,,1. 0” encoding = ” UTF-8,,?>。
步驟S203,令牌服務(wù)器創(chuàng)建根元素,作為令牌種子的密鑰容器節(jié)點(diǎn),本實(shí)施例中 密鑰容器的作用是存儲(chǔ)密鑰設(shè)備的容器,具體創(chuàng)建過(guò)程包括令牌服務(wù)器調(diào)用document對(duì)象的addElement (增加節(jié)點(diǎn))方法創(chuàng)建根元素〈KeyContainer〉(密鑰容器)節(jié)點(diǎn);在根 元素〈KeyContainer〉(密鑰容器)節(jié)點(diǎn)中引用xml組件dom4j包中Element對(duì)象,賦值 Element對(duì)象名稱elemRoot ;調(diào)用elemRoot對(duì)象的addAttribute (增加屬性)方法增加 根元素〈KeyContainer〉(密鑰容器)節(jié)點(diǎn)四個(gè)屬性Version (版本號(hào))屬性,屬性值1.0; xmlns (xmlns 公共命名空間)空間地址屬性,屬性值urn: ietf:params:xml :ns:keyprov:ps kc:1.0 ;xmlns:ds(ds 公共命名空間)空間地址屬性,屬性值http://www. w3. org/2000/09/ xmldsig# ;xmlns:xenc(xenc公共命名空間)空間地址屬性,屬性值http://www. w3. org/2001/04/xmlenc# ;XML 文件最后一行標(biāo)識(shí)根元素的結(jié)尾〈/KeyContainer〉;
根元素〈KeyContainer〉(密鑰容器)節(jié)點(diǎn)具體為
<KeyContainer
Version = “ 1.0〃
xmlns = “ urn ietf params xml ns keyprov pskc :1.0"
xmlns ds = 〃 http //www. w3. org/2000/09/xmldsig#‘‘
xmlns :xenc = “ http://www.w3.Org/2001/04/xmlenc#" >
</KeyContainer>
步驟S204,令牌服務(wù)器創(chuàng)建第一子元素節(jié)點(diǎn),將該節(jié)點(diǎn)用于配置令牌種子的密鑰 文件節(jié)點(diǎn),其中,密鑰文件節(jié)點(diǎn)包含了解密密鑰文件名稱;具體創(chuàng)建過(guò)程包括令牌服務(wù)器 調(diào)用根元素〈KeyContainer〉(密鑰容器)節(jié)點(diǎn)中elemRoot對(duì)象的addElement方法創(chuàng)建根 元素〈KeyContainer〉(密鑰容器)節(jié)點(diǎn)的第一子元素〈EncryptionKey〉(密鑰文件)節(jié)點(diǎn); 在第一子元素<EncryptionKey>(密鑰文件)節(jié)點(diǎn)中引用xml組件dom 4j包中Element (元 素)對(duì)象,賦值Element對(duì)象名稱encryptionElem ;
步驟S204還具體包括如下步驟
令牌服務(wù)器創(chuàng)建〈EncryptionKey〉(密鑰文件)節(jié)點(diǎn)的子元素<dS:KeyName> (解 密密鑰文件名稱)節(jié)點(diǎn);具體創(chuàng)建過(guò)程包括令牌服務(wù)器調(diào)用第一子元素 〈EncryptionKey〉(密鑰文件)節(jié)點(diǎn)中encryptionElem對(duì)象的addElement方法創(chuàng)建 <ds = KeyNameM解密密鑰文件名稱)節(jié)點(diǎn);在<ds :KeyName> (解密密鑰文件名稱)節(jié)點(diǎn)中賦 值Element對(duì)象名稱keyNameElem,調(diào)用keyNameElem對(duì)象的set^Text (填充節(jié)點(diǎn))方法將 解密密鑰文件名稱填充在<ds = KeyNameM解密密鑰文件名稱)節(jié)點(diǎn),在<ds :KeyName> (解 密密鑰文件名稱)節(jié)點(diǎn)后標(biāo)識(shí)〈EncryptionKey〉節(jié)點(diǎn)的結(jié)尾〈/EncryptionKey〉;
在本步驟中,時(shí)間同步令牌的解密密鑰文件名稱為3DES_KEY. cer ;事件同步令牌 的解密密鑰文件名稱為c_KEY. cer。
具體地,在時(shí)間同步令牌中〈EncryptionKey〉(密鑰文件)節(jié)點(diǎn)為
<EncryptionKey>
<ds:KeyName>3DES KEY.cer</ds:KeyName>
</EncryptionKey>
在事件同步令牌中〈EncryptionKey〉(密鑰文件)節(jié)點(diǎn)具體為
<EncryptionKey>
<dsKeyName>c_KEY. cer</dsKeyName>
</EncryptionKey>
步驟S205,令牌服務(wù)器創(chuàng)建第二子元素節(jié)點(diǎn),將該節(jié)點(diǎn)用于配置包含令牌種子 的令牌屬性節(jié)點(diǎn),具體創(chuàng)建過(guò)程包括調(diào)用根元素〈KeyContainerM密鑰容器)節(jié)點(diǎn)中 eIemRoot對(duì)象的addElement方法創(chuàng)建根元素<KeyContainer> (密鑰容器)節(jié)點(diǎn)的第二子 元素〈KeyftOpertiesX令牌屬性)節(jié)點(diǎn);在〈KeyftOperties〉(令牌屬性)節(jié)點(diǎn)中引用xml 組件dom4j包中Element (元素)對(duì)象,賦值Element對(duì)象名稱keyProperElem ;
參見圖3,令牌服務(wù)器配置第二子元素節(jié)點(diǎn)的方法具體包括
步驟S205-1,令牌服務(wù)器判斷令牌類型標(biāo)識(shí)符是否為1 ;如果是1,則令牌類型 為事件同步動(dòng)態(tài)令牌,執(zhí)行步驟S205-2,否則令牌類型為時(shí)間同步動(dòng)態(tài)令牌,執(zhí)行步驟 S205-3 ;
在本實(shí)施例步驟S205-1中,令牌類型標(biāo)識(shí)符是令牌服務(wù)器中outform (令牌出庫(kù)) 對(duì)象的getofmotptype ()方法返回值;
步驟S205-2,令牌服務(wù)器調(diào)用〈KeyftOperties〉(令牌屬性)節(jié)點(diǎn)中 keyProperElem對(duì)象的addAttribute方法增力口 <KeyProperties> (令牌屬性)節(jié)點(diǎn)的2個(gè) 屬性xml id (公共命名空間標(biāo)識(shí)符)屬性,屬性值為H0TPKPID ;KeyAlgorithm(令牌算法) 屬性,屬性值為 http://www. ietf. org/keyprov/pskc#hotp ;
步驟S205-3,令牌服務(wù)器調(diào)用〈KeyftOperties〉(令牌屬性)節(jié)點(diǎn)中 keyProperElem 對(duì)象的 addAttribute 方法增加第二 子元素 <KeyProperties> (令牌 屬性)節(jié)點(diǎn)的2個(gè)屬性xml i d (公共命名空間標(biāo)識(shí)符)屬性,屬性值為TOTPKPID ; KeyAlgorithm() Mt生,Mt生 1 http //www. ietf. org/keyprov/pskc#totp ;
步驟S205-4,令牌服務(wù)器創(chuàng)建令牌屬性節(jié)點(diǎn)的子元素密鑰用途節(jié)點(diǎn)和數(shù)據(jù)節(jié) 點(diǎn),即指令牌屬性為密鑰用途和密鑰數(shù)據(jù),其中,密鑰用途指定為OTP(動(dòng)態(tài)令牌),具體指 動(dòng)態(tài)口令的數(shù)據(jù)格式和動(dòng)態(tài)口令長(zhǎng)度,密鑰數(shù)據(jù)指加密形式或非加密形式的密鑰八位字節(jié) 數(shù)據(jù);
本實(shí)施例創(chuàng)建令牌屬性節(jié)點(diǎn)的子元素可以具體為調(diào)用〈KeyftOpertiesX令牌 屬性)節(jié)點(diǎn)中keyProperElem對(duì)象的addElement方法創(chuàng)建<KeyProperties> (令牌屬性) 節(jié)點(diǎn)的兩個(gè)二級(jí)子元素〈Usage〉(密鑰用途)節(jié)點(diǎn)和<Data>(數(shù)據(jù))節(jié)點(diǎn),在〈Usage〉(密 鑰用途)節(jié)點(diǎn)中引用xml組件dom4j包中Element (元素)對(duì)象,賦值Element對(duì)象名稱 usageElem ;調(diào)用usageElem對(duì)象的addAttribute方法增加〈Usage〉(密鑰用途)節(jié)點(diǎn) 的OTP (動(dòng)態(tài)令牌)屬性,屬性值為true ;在<Data> (數(shù)據(jù))節(jié)點(diǎn)中引用xml組件dom4j 包中Element對(duì)象,賦值Element對(duì)象名稱為dataElem ;<Data> (數(shù)據(jù))節(jié)點(diǎn)后標(biāo)識(shí) <KeyProperties>(令牌屬性)節(jié)點(diǎn)的結(jié)尾 </KeyProperties> ;
步驟S205-5,令牌服務(wù)器創(chuàng)建三級(jí)子元素節(jié)點(diǎn),該節(jié)點(diǎn)用于配置動(dòng)態(tài)口令的數(shù) 值格式和動(dòng)態(tài)口令長(zhǎng)度,具體創(chuàng)建過(guò)程包括令牌服務(wù)器調(diào)用〈Usage〉(密鑰用途)節(jié)點(diǎn) 中usageElem對(duì)象的addElement方法創(chuàng)建三級(jí)子元素<ResponseFormat> (動(dòng)態(tài)口令)節(jié) 點(diǎn),在<ResponseFormat> (動(dòng)態(tài)口令)節(jié)點(diǎn)中引用xml組件dom4 j包中Element對(duì)象,賦 值 Element 對(duì)象名稱為 responseElem ;調(diào)用 responseElem 對(duì)象的 addAttribute 方法增 加〈ResponseFormatM動(dòng)態(tài)口令)節(jié)點(diǎn)的兩個(gè)屬性format (數(shù)值格式)屬性,屬性值為 DECIMAL ;Length (動(dòng)態(tài)口令長(zhǎng)度)屬性,屬性值為6,具體地6代表6位十進(jìn)制數(shù)字;
步驟S205-6,令牌服務(wù)器判斷令牌類型標(biāo)識(shí)符是否為1,如果是1,則令牌類型為14事件同步動(dòng)態(tài)令牌,執(zhí)行步驟S205-7,否則令牌類型為時(shí)間動(dòng)態(tài)令牌,執(zhí)行步驟S205-9 ;
令牌服務(wù)器判斷令牌的類型,在事件同步令牌中密鑰數(shù)據(jù)指計(jì)數(shù)器,計(jì)數(shù)器中包 含了用戶默認(rèn)值節(jié)點(diǎn),用戶默認(rèn)值節(jié)點(diǎn)是指安全文件從令牌服務(wù)器導(dǎo)入到用戶服務(wù)器的數(shù) 據(jù)庫(kù)中,用戶數(shù)據(jù)庫(kù)中與安全文件對(duì)應(yīng)的字節(jié)使用數(shù)字零填充。在時(shí)間同步令牌中,密鑰數(shù) 據(jù)包含起始參考時(shí)間節(jié)點(diǎn)和時(shí)間周期節(jié)點(diǎn),起始參考時(shí)間是指重置時(shí)間默認(rèn)值為0,時(shí)間周 期是指每60秒產(chǎn)生一個(gè)新口令。
在本實(shí)施例步驟S205-6中,令牌類型標(biāo)識(shí)符是令牌服務(wù)器中outform (令牌出庫(kù)) 對(duì)象的getofmotptype ()方法返回值;
步驟S205-7,令牌服務(wù)器創(chuàng)建三級(jí)子元素節(jié)點(diǎn),該節(jié)點(diǎn)的具體創(chuàng)建過(guò)程包括令 牌服務(wù)器調(diào)用<Data>(數(shù)據(jù))節(jié)點(diǎn)中dataElem對(duì)象的addElement方法創(chuàng)建三級(jí)子元素 〈Counter〉(計(jì)數(shù)器)節(jié)點(diǎn);在〈Counter〉(計(jì)數(shù)器)節(jié)點(diǎn)中引用xml組件dom4j包中Element 對(duì)象,賦值Element對(duì)象名稱為counterElem ;〈Counter〉(計(jì)數(shù)器)節(jié)點(diǎn)后標(biāo)識(shí)<Data> (數(shù) 據(jù))節(jié)點(diǎn)的結(jié)尾</Data> ;
步驟S205-8,令牌服務(wù)器創(chuàng)建四級(jí)子元素節(jié)點(diǎn),該節(jié)點(diǎn)用于配置用戶默認(rèn)值, 具體創(chuàng)建過(guò)程包括令牌服務(wù)器調(diào)用〈Counter〉(計(jì)數(shù)器)節(jié)點(diǎn)中counterElem對(duì)象的 addElement方法創(chuàng)建四級(jí)子元素〈PlainValue〉(用戶默認(rèn)值)節(jié)點(diǎn),在〈PlainValue〉(用 戶默認(rèn)值)節(jié)點(diǎn)中引用ml組件dom4 j包中Element對(duì)象,賦值Element對(duì)象名稱 plainElem ;調(diào)用plainElem對(duì)象的setText方法將數(shù)字0填充在〈PlainValue〉(用戶默 認(rèn)值)節(jié)點(diǎn);〈PlainValueX用戶默認(rèn)值)節(jié)點(diǎn)后標(biāo)識(shí)〈Counter〉(計(jì)數(shù)器)節(jié)點(diǎn)結(jié)尾</ Counter〉。
步驟S205-9,令牌服務(wù)器創(chuàng)建三級(jí)子元素節(jié)點(diǎn),具體創(chuàng)建過(guò)程包括令牌服務(wù)器 調(diào)用<Data> (數(shù)據(jù))節(jié)點(diǎn)中dataElem對(duì)象的addElement方法創(chuàng)建三級(jí)子元素<Time> (起 始參考時(shí)間)節(jié)點(diǎn)和〈TimelntervalM時(shí)鐘周期)節(jié)點(diǎn),在<Time>節(jié)點(diǎn)中引用上xml組件 dom4j 包中 Element 對(duì)象,賦值 Element 對(duì)象的名稱為 timeElem,在 <TimeInterval> (時(shí) 鐘周期)節(jié)點(diǎn)中引用上xml組件dom4j包中Element對(duì)象,賦值Element對(duì)象的名稱 timeIntervalElem ;
步驟S205-10,令牌服務(wù)器創(chuàng)建四級(jí)子元素節(jié)點(diǎn),該節(jié)點(diǎn)用于配置起始參考 時(shí)間的默認(rèn)值,具體創(chuàng)建過(guò)程包括令牌服務(wù)器調(diào)用<Time>(起始參考時(shí)間)節(jié)點(diǎn)中 timeElem對(duì)象的addElement方法創(chuàng)建四級(jí)子元素〈PlainValue〉(用戶默認(rèn)值)節(jié)點(diǎn); 在〈PlainValue〉(用戶默認(rèn)值)節(jié)點(diǎn)中引用上xml組件dom4j包中Element對(duì)象,賦 值Element對(duì)象的名稱為plainElem ;調(diào)用plainElem對(duì)象的setText方法將數(shù)字0填 充在〈PlainValue〉(用戶默認(rèn)值)節(jié)點(diǎn);〈PlainValue〉(用戶默認(rèn)值)節(jié)點(diǎn)結(jié)尾后標(biāo)識(shí) <Time>(起始參考時(shí)間)節(jié)點(diǎn)結(jié)尾</Time> ;
步驟S205-11,令牌服務(wù)器創(chuàng)建四級(jí)子元素節(jié)點(diǎn),該節(jié)點(diǎn)用于配置時(shí)鐘周期 的默認(rèn)值,具體創(chuàng)建過(guò)程包括令牌服務(wù)器調(diào)用〈TimehtervalM時(shí)鐘周期)節(jié)點(diǎn)中 timehtervalFlem對(duì)象的addElement方法創(chuàng)建四級(jí)子元素〈PlainValue〉(用戶默認(rèn)值) 節(jié)點(diǎn);在〈PlainValue〉(用戶默認(rèn)值)節(jié)點(diǎn)中引用上xml組件dom 4j包中Element對(duì)象, 賦值Element對(duì)象名稱為valPlainElem ;調(diào)用valPlainElem對(duì)象的SetiText方法將數(shù) 字60填充〈PlainValue〉(用戶默認(rèn)值)節(jié)點(diǎn),〈PlainValue〉(用戶默認(rèn)值)節(jié)點(diǎn)后標(biāo)識(shí)<TimeInterval>(時(shí)鐘周期)節(jié)點(diǎn)的結(jié)尾 </Timehterval> ;
在事件同步令牌中〈KeyProperties〉(令牌屬性)節(jié)點(diǎn)為
<KeyProperties
xml:id=〃 HOTPKPID"
KeyAlgorithm = “ http://www.ietf.Org/keyprov/pskc#hotp" >
〈Usage OTP=" true“ >
<ResponseFormat Format = 〃 DECIMAL" Length = " 6〃 />
</Usage>
<Data>
<Counter>
<PlainValue>0</PlainValue>
〈/Counter〉
</Data>
</KeyProperties>
在時(shí)間同步令牌中〈KeyftOpertiesX令牌屬性)節(jié)點(diǎn)為
〈KeyProperties
xml:id=〃 T0TPKPID"
KeyAlgorithm = “ http://www.ietf.Org/keyprov/pskc#totp" >
〈Usage OTP=" true“ >
<ResponseFormat Format = 〃 DECIMAL" Length = " 6〃 />
</Usage>
<Data>
<Time>
<PlainValue>0</Plain Value〉
</Time>
<TimeInterval>
<PlainValue>60</PlainValue>
</TimeInterval>
</Data>
</KeyProperties>
步驟S206,令牌服務(wù)器創(chuàng)建第三子元素節(jié)點(diǎn),將該節(jié)點(diǎn)用于配置包含令 牌種子的密鑰設(shè)備節(jié)點(diǎn),令牌種子加密后保存在該密鑰設(shè)備節(jié)點(diǎn)。例如調(diào)用根元 素<KeyContainer> (密鑰容器)節(jié)點(diǎn)中elemRoot對(duì)象的addElement方法創(chuàng)建根元 素〈KeyContainerX密鑰容器)節(jié)點(diǎn)的第三子元素〈Device〉(密鑰設(shè)備)節(jié)點(diǎn);在素 〈Device〉(密鑰設(shè)備)節(jié)點(diǎn)中引用xml組件dom4j包中Element對(duì)象,賦值Element對(duì)象名 禾爾為 deviceElem ;
在步驟S206中,根元素下可存在多個(gè)〈DeviceM密鑰設(shè)備)節(jié)點(diǎn),密鑰設(shè)備節(jié)點(diǎn) 創(chuàng)建過(guò)程反復(fù)執(zhí)行步驟S206及其包含的具體方法。
參見圖4,本實(shí)施例中配置第三子元素節(jié)點(diǎn)(密鑰設(shè)備節(jié)點(diǎn))的方法具體包括
步驟S206-1,令牌服務(wù)器創(chuàng)建令牌的屬性和時(shí)間同步令牌類型標(biāo)識(shí)符、事件同步 令牌類型標(biāo)識(shí)符和令牌編號(hào)。
需要說(shuō)明,不同的令牌對(duì)應(yīng)不同編號(hào);本實(shí)施例中,令牌服務(wù)器調(diào)用deviceElem 對(duì)象的addElement方法創(chuàng)建子元素<Key> (令牌)節(jié)點(diǎn),在<Key>(令牌)節(jié)點(diǎn)中引用xml 組件dom 4j包中Element對(duì)象,賦值Element對(duì)象名稱keyElem ;調(diào)用keyElem對(duì)象的 addAttribute方法增加<Key> (令牌)節(jié)點(diǎn)的2個(gè)屬性,KeyId (令牌編號(hào))屬性,屬性值 為1830409996401、KeyProperties (令牌類型標(biāo)識(shí)符)屬性;在<Key> (令牌)節(jié)點(diǎn)后標(biāo)識(shí) 〈Device〉(密鑰設(shè)備)節(jié)點(diǎn)的結(jié)尾〈/Device〉;
在本實(shí)施例步驟S206-1中,KeyId(令牌編號(hào))屬性值對(duì)應(yīng)不同的〈Device〉(密 鑰設(shè)備)節(jié)點(diǎn)。參見圖5,步驟S206-1還具體包括
步驟S206-1-1,令牌服務(wù)器判斷令牌類型標(biāo)識(shí)符是否為1 ;如果是,則令牌類型 為事件同步動(dòng)態(tài)令牌,執(zhí)行步驟S206-1-2,否則令牌類型為時(shí)間同步動(dòng)態(tài)令牌,執(zhí)行步驟 S206-1-3 ;
步驟S206-1-2,令牌服務(wù)器增加<Key> (令牌)節(jié)點(diǎn)的KeyProperties (令牌類型 標(biāo)識(shí)符)屬性值為H0TPKPID ;
步驟S206-1-3,令牌服務(wù)器增加<Key> (令牌)節(jié)點(diǎn)的KeyProperties (令牌類型 標(biāo)識(shí)符)屬性值為T0TPKPID ;
步驟S206-2,令牌服務(wù)器創(chuàng)建二級(jí)子元素節(jié)點(diǎn),該節(jié)點(diǎn)用于配置密鑰數(shù)據(jù),具體 創(chuàng)建過(guò)程包括令牌服務(wù)器調(diào)用keyElem對(duì)象的addElement方法創(chuàng)建<Key> (令牌)節(jié)點(diǎn) 子元素<Data> (密鑰數(shù)據(jù))節(jié)點(diǎn);在<Data> (密鑰數(shù)據(jù))節(jié)點(diǎn)中引用xml組件dom4j包中 Element對(duì)象,賦值Element對(duì)象名稱為keyDataElem,<Data> (密鑰數(shù)據(jù))節(jié)點(diǎn)后標(biāo)識(shí)第 三級(jí)<Key> (令牌)節(jié)點(diǎn)的結(jié)尾</Key> ;
步驟S206-3,令牌服務(wù)器創(chuàng)建二級(jí)子元素節(jié)點(diǎn),該節(jié)點(diǎn)用于配置令牌種子,具體創(chuàng) 建過(guò)程包括令牌服務(wù)器調(diào)用keyDataElem對(duì)象的addElement方法創(chuàng)建<Data> (密鑰數(shù) 據(jù))節(jié)點(diǎn)子元素〈kcretM令牌種子)節(jié)點(diǎn);在〈Secret〉(令牌種子)節(jié)點(diǎn)中引用xml組 件dom4j包中Element對(duì)象,賦值Element對(duì)象名稱為keykcretElem,<Secret> (令牌種 子)節(jié)點(diǎn)后標(biāo)識(shí)<Data> (密鑰數(shù)據(jù))節(jié)點(diǎn)的結(jié)尾</Data> ;
步驟S206-4,令牌服務(wù)器創(chuàng)建子元素節(jié)點(diǎn),該節(jié)點(diǎn)用于配置密文數(shù)值,具體創(chuàng)建過(guò) 程包括令牌服務(wù)器調(diào)用ke於ecretElem對(duì)象的addElement方法創(chuàng)建<kcret> (令牌種 子)節(jié)點(diǎn)的子元素〈EncryptedValueM密文數(shù)值)節(jié)點(diǎn);在〈EncryptedValue〉(密文數(shù)值) 節(jié)點(diǎn)中引用xml組件dom4j包中Element對(duì)象,賦值Element對(duì)象名稱為keyEncryElem, 〈EncryptedValue〉(密文數(shù)值)節(jié)點(diǎn)后標(biāo)識(shí)第五級(jí)<kCret>(令牌種子)節(jié)點(diǎn)的結(jié)尾</ Secret> ;
步驟S206-5,令牌服務(wù)器創(chuàng)建二級(jí)子元素節(jié)點(diǎn),該節(jié)點(diǎn)用于配置公共命名空間 加密方式,具體創(chuàng)建過(guò)程包括令牌服務(wù)器調(diào)用keyEncryElem對(duì)象的addElement方法創(chuàng) 建 <EncryptedValue>(密文數(shù)值)節(jié)點(diǎn)的兩子元素 <xencEncryptionMethod> (xenc 公共 命名空間加密方法)節(jié)點(diǎn)和〈xenc:CipherDataXxenc公共命名空間密文數(shù)據(jù))節(jié)點(diǎn);在 <xenc EncryptionMethod> (xenc公共命名空間加密方法)節(jié)點(diǎn)中引用xml組件dom4j包中 Element 對(duì)象,賦值Element 對(duì)象的名稱為 keyXencEncryElem ;在 <xenc CipherData> (xenc公共命名空間密文數(shù)據(jù))節(jié)點(diǎn)中引用xml組件dom4j包中Element對(duì)象,賦值Element對(duì) 象的名稱為 keyXencCipherElem ;令牌服務(wù)器調(diào)用 keyXencEncryElem對(duì)象的 addAttribute 方法增加<xenc: EncryptionMethodXxenc公共命名空間加密方法)節(jié)點(diǎn)的Algorithm (算 法)屬性;
參見圖6,上述步驟S206-5還具體包括
步驟S206-5-1,令牌服務(wù)器判斷令牌種子數(shù)值加密方式標(biāo)識(shí)符是否為1,如果數(shù) 值為1,則令牌種子數(shù)值加密方式為3DES方法,執(zhí)行步驟S206-5-2 ;如果數(shù)值為0,則令牌 種子數(shù)值加密方式為AES256方法,執(zhí)行步驟S206-5-3 ;
在本實(shí)施例步驟S206-5中,令牌種子數(shù)值加密方式標(biāo)識(shí)符為令牌服務(wù)器中 outform(令牌出庫(kù))對(duì)象的getofmenctypeO方法返回值。
步驟S206-5-2,令牌服務(wù)器增加 <xenc:EncryptionMethod> (xenc 公共命名 空間加密方法)節(jié)點(diǎn)的Algorithm(算法)屬性值為http://www. w3. org/2001/04/ xmlenc#tripledes_cbc〃 ;
步驟S206-5-3,令牌服務(wù)器增加 <xenc:EncryptionMethod> (xenc 公共命名 空間加密方法)節(jié)點(diǎn)的Algorithm(算法)屬性值為http://www. w3. org/2001/04/ xmlenc#aes256_cbc〃 。
步驟S206-6,令牌服務(wù)器創(chuàng)建二級(jí)子元素節(jié)點(diǎn),該節(jié)點(diǎn)用于配置密文數(shù)據(jù),具 體創(chuàng)建過(guò)程包括令牌服務(wù)器調(diào)用keyXencCipherElem對(duì)象的addElement方法創(chuàng)建 <xenc CipherData> (xenc公共命名空間密文數(shù)據(jù))節(jié)點(diǎn)子元素<xenc CipherValue)(密文 數(shù)值)節(jié)點(diǎn),在<xenc: CipherValueM密文數(shù)值)節(jié)點(diǎn)中引用xml組件dom 4j包中Element 對(duì)象,賦值Element 對(duì)象的名稱為 keyCipherVElem ;<xenc CipherValue〉(xenc 公共命名空 間密文數(shù)值)節(jié)點(diǎn)后標(biāo)識(shí)〈xenc = CipherDataXxenc公共命名空間密文數(shù)據(jù))節(jié)點(diǎn)的結(jié)尾 </xencCipherData> ;
步驟S206-7,令牌服務(wù)器根據(jù)令牌種子數(shù)值加密方式標(biāo)識(shí)符創(chuàng)建空白字符型變 量;參見圖7,步驟S206-7具體包括
步驟S206-7-1,令牌服務(wù)器判斷令牌種子數(shù)值加密方式標(biāo)識(shí)符是否為1,如果數(shù) 值為1,令牌種子數(shù)值加密方式為3DES方法,執(zhí)行步驟S206-7-2,如果數(shù)值為0,令牌種子數(shù) 值加密方式為256AES方法,執(zhí)行步驟S206-7-3 ;
步驟S206-7-2,令牌服務(wù)器創(chuàng)建空白字符型變量tknpiAkey,使用3DES加密算法 將未加密令牌種子數(shù)值進(jìn)行加密,將加密后令牌種子數(shù)值使用BASE64編碼成為字符型數(shù) 值后賦值給字符型變量tknpiAkey ;
步驟S206-7-3,令牌服務(wù)器創(chuàng)建空白字符型變量tknpiAkey,使用AES256加密算 法將未加密令牌種子數(shù)值進(jìn)行加密,將加密后令牌種子數(shù)值使用BASE64編碼成為字符型 數(shù)值后賦值給字符型變量tknpiAkey。
步驟S206-8,令牌服務(wù)器調(diào)用keyCipherVElem對(duì)象的setkxt方法將字符型變量 tknpubkey代表的加密后令牌種子數(shù)值填充在<xenc CipherValue〉(xenc公共命名空間密 文數(shù)值)節(jié)點(diǎn);在加密后令牌種子數(shù)值后標(biāo)識(shí)〈xenc:CipherValue〉(xenc公共命名空間密 文數(shù)值)節(jié)點(diǎn)的結(jié)尾</xencCipherValue〉。
在事件同步令牌中〈Device〉(密鑰設(shè)備)節(jié)點(diǎn)為
〈Device〉
〈Key
KeyId = “ 1830409996401〃 KeyProperties = “ FTH0TPKPID" >
<Data>
〈Secret〉
<EncryptedValue>
<xenc:EncryptionMethod
Algorithm = " http://www.w3.Org/2001/04/xmlenc#aes256-cbc" />
<xenc:CipherData>
<xenc:CipherValue>
0ZPRDGHkCLLaZumdXPInDTz28/eWMWXKYqJSUj cecqQ =
</xenc:CipherValue>
</xenc:CipherData>
</EncryptedValue>
〈/Secret〉
</Data>
</Key>
〈/Device〉
〈Device〉
〈Key KeyId=" 1830409997408〃 KeyProperties =" HOTPKPID" >
<Data>
〈Secret〉
<EncryptedValue>
<xenc:EncryptionMethod
Algorithm = " http://www.w3.Org/2001/04/xmlenc#aes256-cbc" />
<xenc:CipherData>
<xenc:CipherValue>
ROTIlNHn4NDW/SeyDLG19sF9W5awokD7ffhGpiIKleVU =
</xenc:CipherValue>
</xenc:CipherData>
</EncryptedValue>
〈/Secret〉
</Data>
</Key>
〈/Device〉
在時(shí)間同步令牌中〈Device〉(密鑰設(shè)備)節(jié)點(diǎn)為
〈Device〉
〈Key
KeyId =“ FTK2000BZVBHFR93〃 KeyProperties =“ T0TPKPID" >19
<Data>
〈Secret〉
<EncryptedValue>
<xenc:EncryptionMethod
Algorithm = ‘‘ http://www.w3.org/200 1/04/ xmlenc#tripledes_cbc〃 />
<xenc:CipherData>
<xenc:CipherValue>
47BQg77KIVQffz4XEh6RfcffweffUViRxr0dyVlkAmmZeg =
</xenc:CipherValue>
</xenc:CipherData>
</EncryptedValue>
〈/Secret〉
</Data>
</Key>
〈/Device〉
〈Device〉
〈Key
KeyId = " FTK2000BZW0L9V84"
KeyProperties =" TOTPKPID" >
<Data>
〈Secret〉
<EncryptedValue>
<xenc:EncryptionMethod
Algorithm = " http://www.w3.org/2001/04/ xmlenc#tripledes_cbc〃 />
<xenc:CipherData>
<xenc:CipherValue>
IRLM21AMWuKTElAQbHprtAt87bvHh3XaXjnTFTZEbws =
</xenc:CipherValue>
</xenc:CipherData>
</EncryptedValue>
〈/Secret〉
</Data>
</Key>
〈/Device〉
步驟S207,令牌服務(wù)器使用creatXML方法將配置好的數(shù)據(jù)結(jié)構(gòu)輸出到后綴名為XML的文本文件中生成安全文件。
本實(shí)施例通過(guò)采用xml文件的格式創(chuàng)建安全文件,使該安全文件能夠兼容各種系統(tǒng),而不需要對(duì)安全文件進(jìn)行格式轉(zhuǎn)換,因此解決了因格式轉(zhuǎn)換導(dǎo)致的安全隱患問(wèn)題;同 時(shí),本實(shí)施例在配置安全文件中各節(jié)點(diǎn)時(shí),采用對(duì)令牌種子加密的方式配置密鑰設(shè)備對(duì)應(yīng) 的節(jié)點(diǎn)(即第三子元素節(jié)點(diǎn)),該方式進(jìn)一步降低了系統(tǒng)導(dǎo)入、導(dǎo)出安全文件時(shí)重要信息被 泄露的威脅。
實(shí)施例3
參見圖8,本實(shí)施例提供了一種生成安全文件的裝置,該裝置可以設(shè)置在令牌服務(wù) 器上,該裝置包括以下模塊
文件創(chuàng)建模塊81,用于創(chuàng)建xml文件;
根元素創(chuàng)建模塊82,與文件創(chuàng)建模塊81相連,用于為xml文件創(chuàng)建根元素,并將根 元素作為存儲(chǔ)令牌種子的密鑰容器節(jié)點(diǎn),配置密鑰容器節(jié)點(diǎn)的屬性及屬性值;
第一子元素創(chuàng)建模塊83,與根元素創(chuàng)建模塊82相連,用于為根元素創(chuàng)建第一子元 素節(jié)點(diǎn);其中,第一子元素節(jié)點(diǎn)用于配置令牌種子的密鑰文件節(jié)點(diǎn),密鑰文件節(jié)點(diǎn)包括解密 密鑰文件名稱;
第二子元素創(chuàng)建模塊84,與根元素創(chuàng)建模塊82相連,用于為根元素創(chuàng)建第二子元 素節(jié)點(diǎn);其中,第二子元素節(jié)點(diǎn)用于配置包含令牌種子的令牌屬性節(jié)點(diǎn);
第三子元素創(chuàng)建模塊85,與根元素創(chuàng)建模塊82相連,用于為根元素創(chuàng)建第三子 元素節(jié)點(diǎn),其中,第三子元素節(jié)點(diǎn)用于配置包含令牌種子的密鑰設(shè)備節(jié)點(diǎn);令牌種子加密后 保存在該密鑰設(shè)備節(jié)點(diǎn);該密鑰設(shè)備節(jié)點(diǎn)的配置過(guò)程包括為第三子元素節(jié)點(diǎn)創(chuàng)建令牌節(jié) 點(diǎn),并根據(jù)第三子元素節(jié)點(diǎn)配置的密鑰設(shè)備設(shè)置令牌節(jié)點(diǎn)的屬性,令牌節(jié)點(diǎn)的屬性包括令 牌編號(hào)和令牌類型標(biāo)識(shí)符;根據(jù)令牌節(jié)點(diǎn)的編號(hào)和令牌類型標(biāo)識(shí)符為令牌節(jié)點(diǎn)創(chuàng)建密鑰數(shù) 據(jù)節(jié)點(diǎn),密鑰數(shù)據(jù)節(jié)點(diǎn)包括解密令牌種子的密鑰、加密方式信息、加密后的密文;
文件生成模塊86,與第一子元素創(chuàng)建模塊83、第二子元素創(chuàng)建模塊84和第三子元 素創(chuàng)建模塊85相連,用于將配置后的xml文件作為安全文件。
優(yōu)選地,文件創(chuàng)建模塊81包括
文件創(chuàng)建單元,用于引用xml組件dom4j包中的文檔幫助對(duì)象中的創(chuàng)建文檔方法 創(chuàng)建xml文件;
賦值文檔對(duì)象名稱單元,用于引用xml組件dom4j包中的文檔對(duì)象,為xml文件賦 值文檔對(duì)象名稱;
頭節(jié)點(diǎn)生成單元,用于生成xml文件的頭節(jié)點(diǎn)的版本號(hào)屬性和編碼規(guī)范屬性,并 聲明頭節(jié)點(diǎn)的版本號(hào)屬性和編碼規(guī)范屬性。
根元素創(chuàng)建模塊82包括
根元素創(chuàng)建單元,用于調(diào)用xml組件dom4j包中的文檔對(duì)象的增加節(jié)點(diǎn)方法,為 xml文件創(chuàng)建根元素;
密鑰容器節(jié)點(diǎn)設(shè)置單元,用于將根元素作為存儲(chǔ)令牌種子的密鑰容器節(jié)點(diǎn);
密鑰容器節(jié)點(diǎn)配置單元,用于調(diào)用密鑰容器節(jié)點(diǎn)中賦值元素對(duì)象的增加屬性方法 配置密鑰容器節(jié)點(diǎn)的屬性及屬性值,并在ml文件最后一行標(biāo)識(shí)密鑰容器節(jié)點(diǎn)的結(jié)尾。
第一子元素創(chuàng)建模塊83包括
密鑰文件節(jié)點(diǎn)設(shè)置單元,用于調(diào)用密鑰容器節(jié)點(diǎn)中根元素對(duì)象的增加節(jié)點(diǎn)方法創(chuàng) 建第一子元素節(jié)點(diǎn),將第一子元素節(jié)點(diǎn)作為令牌種子的密鑰文件節(jié)點(diǎn);
解密密鑰文件名稱節(jié)點(diǎn)設(shè)置單元,用于調(diào)用第一子元素節(jié)點(diǎn)中賦值元素對(duì)象的增 加節(jié)點(diǎn)方法創(chuàng)建密鑰文件節(jié)點(diǎn)的子元素節(jié)點(diǎn),將密鑰文件節(jié)點(diǎn)的子元素節(jié)點(diǎn)作為解密密鑰 文件名稱節(jié)點(diǎn);
解密密鑰文件名稱節(jié)點(diǎn)配置單元,用于在解密密鑰文件名稱節(jié)點(diǎn)中賦值元素對(duì) 象,調(diào)用賦值元素對(duì)象的填充節(jié)點(diǎn)方法將解密密鑰文件名稱填充在解密密鑰文件名稱節(jié) 點(diǎn),在解密密鑰文件名稱節(jié)點(diǎn)后標(biāo)識(shí)密鑰文件節(jié)點(diǎn)的結(jié)尾。
第二子元素創(chuàng)建模塊84包括
令牌屬性節(jié)點(diǎn)設(shè)置單元,用于調(diào)用密鑰容器節(jié)點(diǎn)中賦值元素對(duì)象的增加節(jié)點(diǎn)方法 創(chuàng)建第二子元素節(jié)點(diǎn),將第二子元素節(jié)點(diǎn)作為包含令牌種子的令牌屬性節(jié)點(diǎn);
令牌屬性節(jié)點(diǎn)配置單元,用于在令牌屬性節(jié)點(diǎn)中賦值元素對(duì)象,并根據(jù)密鑰容器 節(jié)點(diǎn)中的令牌種子的令牌類型增加令牌屬性節(jié)點(diǎn)的屬性及屬性值。
其中,令牌屬性節(jié)點(diǎn)配置單元包括
二級(jí)子元素節(jié)點(diǎn)設(shè)置子單元,用于調(diào)用令牌屬性節(jié)點(diǎn)中的賦值元素對(duì)象的增加節(jié) 點(diǎn)方法創(chuàng)建令牌屬性節(jié)點(diǎn)的兩個(gè)二級(jí)子元素節(jié)點(diǎn),將兩個(gè)二級(jí)子元素節(jié)點(diǎn)分別作為密鑰用 途節(jié)點(diǎn)和數(shù)據(jù)節(jié)點(diǎn);
二級(jí)子元素節(jié)點(diǎn)配置子單元,用于調(diào)用密鑰用途節(jié)點(diǎn)中賦值對(duì)象的增加屬性方法 增加密鑰用途節(jié)點(diǎn)的動(dòng)態(tài)令牌屬性及屬性值,并在數(shù)據(jù)節(jié)點(diǎn)后標(biāo)識(shí)令牌屬性節(jié)點(diǎn)的結(jié)尾;
三級(jí)子元素節(jié)點(diǎn)配置子單元,用于調(diào)用密鑰用途節(jié)點(diǎn)中賦值對(duì)象的增加節(jié)點(diǎn)方法 創(chuàng)建三級(jí)子元素動(dòng)態(tài)口令節(jié)點(diǎn),在動(dòng)態(tài)口令節(jié)點(diǎn)中賦值元素對(duì)象的增加屬性方法增加動(dòng)態(tài) 口令節(jié)點(diǎn)的屬性及屬性值;
令牌類型確定子單元,用于根據(jù)令牌類型標(biāo)識(shí)符確定令牌類型為事件同步動(dòng)態(tài)令 牌或時(shí)間動(dòng)態(tài)令牌;
事件同步動(dòng)態(tài)令牌處理子單元,用于如果令牌類型是事件同步動(dòng)態(tài)令牌根據(jù)令牌 類型標(biāo)識(shí)符調(diào)用數(shù)據(jù)節(jié)點(diǎn)中賦值對(duì)象的增加節(jié)點(diǎn)方法創(chuàng)建三級(jí)子元素計(jì)數(shù)器節(jié)點(diǎn);在計(jì)數(shù) 器節(jié)點(diǎn)后標(biāo)識(shí)數(shù)據(jù)節(jié)點(diǎn)的結(jié)尾;調(diào)用計(jì)數(shù)器節(jié)點(diǎn)中賦值對(duì)象的增加節(jié)點(diǎn)方法創(chuàng)建四級(jí)子元 素用戶默認(rèn)值節(jié)點(diǎn),調(diào)用用戶默認(rèn)值節(jié)點(diǎn)中的賦值對(duì)象的填充節(jié)點(diǎn)方法填充用戶默認(rèn)值節(jié) 點(diǎn),在用戶默認(rèn)值節(jié)點(diǎn)后標(biāo)識(shí)計(jì)數(shù)器節(jié)點(diǎn)結(jié)尾;
時(shí)間動(dòng)態(tài)令牌處理子單元,用于如果令牌類型是時(shí)間動(dòng)態(tài)令牌,調(diào)用數(shù)據(jù)節(jié)點(diǎn)賦 值對(duì)象的增加節(jié)點(diǎn)方法創(chuàng)建三級(jí)子元素起始參考時(shí)間節(jié)點(diǎn)和時(shí)鐘周期節(jié)點(diǎn),調(diào)用起始參考 時(shí)間節(jié)點(diǎn)和時(shí)鐘周期節(jié)點(diǎn)中賦值對(duì)象的增加節(jié)點(diǎn)方法創(chuàng)建四級(jí)子元素用戶默認(rèn)值節(jié)點(diǎn);調(diào) 用用戶默認(rèn)值節(jié)點(diǎn)中賦值對(duì)象的填充節(jié)點(diǎn)方法填充用戶默認(rèn)值節(jié)點(diǎn);在用戶默認(rèn)值節(jié)點(diǎn)結(jié) 尾后標(biāo)識(shí)起始參考時(shí)間節(jié)點(diǎn)和時(shí)鐘周期節(jié)點(diǎn)結(jié)尾。
第三子元素創(chuàng)建模塊85包括
密鑰設(shè)備節(jié)點(diǎn)設(shè)置單元,用于調(diào)用密鑰容器節(jié)點(diǎn)中賦值對(duì)象的增加節(jié)點(diǎn)方法創(chuàng)建 密鑰容器節(jié)點(diǎn)的第三子元素節(jié)點(diǎn),將第三子元素節(jié)點(diǎn)作為包含令牌種子的密鑰設(shè)備節(jié)點(diǎn);
令牌節(jié)點(diǎn)創(chuàng)建單元,用于調(diào)用密鑰設(shè)備節(jié)點(diǎn)中賦值對(duì)象的增加節(jié)點(diǎn)方法創(chuàng)建令牌 節(jié)點(diǎn),調(diào)用令牌節(jié)點(diǎn)中賦值對(duì)象的增加方法增加令牌節(jié)點(diǎn)的令牌編號(hào)屬性及屬性值、令牌 類型標(biāo)識(shí)符屬性及令牌類型標(biāo)識(shí)符屬性的屬性值;
密鑰數(shù)據(jù)節(jié)點(diǎn)創(chuàng)建單元,用于調(diào)用令牌節(jié)點(diǎn)中賦值對(duì)象的增加節(jié)點(diǎn)方法創(chuàng)建令牌節(jié)點(diǎn)的子元素密鑰數(shù)據(jù)節(jié)點(diǎn),在密鑰數(shù)據(jù)節(jié)點(diǎn)后標(biāo)識(shí)令牌節(jié)點(diǎn)的結(jié)尾;
令牌種子節(jié)點(diǎn)創(chuàng)建單元,用于調(diào)用密鑰數(shù)據(jù)節(jié)點(diǎn)中賦值對(duì)象的增加節(jié)點(diǎn)方法創(chuàng)建 密鑰數(shù)據(jù)節(jié)點(diǎn)的子元素令牌種子節(jié)點(diǎn);在令牌種子節(jié)點(diǎn)后標(biāo)識(shí)密鑰數(shù)據(jù)節(jié)點(diǎn)的結(jié)尾;
密文數(shù)值節(jié)點(diǎn)創(chuàng)建單元,用于調(diào)用令牌種子節(jié)點(diǎn)中增加節(jié)點(diǎn)方法創(chuàng)建令牌種子節(jié) 點(diǎn)的子元素密文數(shù)值節(jié)點(diǎn),在密文數(shù)值節(jié)點(diǎn)后標(biāo)識(shí)令牌種子節(jié)點(diǎn)的結(jié)尾。
其中,密文數(shù)值節(jié)點(diǎn)創(chuàng)建單元包括
第一密文數(shù)值節(jié)點(diǎn)配置子單元,用于調(diào)用密文數(shù)值節(jié)點(diǎn)中賦值對(duì)象的增加方法創(chuàng) 建密文數(shù)值節(jié)點(diǎn)的兩子元素xenc公共命名空間加密方法節(jié)點(diǎn)和xenc公共命名空間密文數(shù) 據(jù)節(jié)點(diǎn)、調(diào)用xenc公共命名空間加密方法節(jié)點(diǎn)賦值對(duì)象的增加節(jié)點(diǎn)屬性方法增加xenc公 共命名空間加密方法節(jié)點(diǎn)的算法屬性及令牌種子數(shù)值加密方式標(biāo)識(shí)符的屬性值;
第二密文數(shù)值節(jié)點(diǎn)配置子單元,用于調(diào)用xenc公共命名空間密文數(shù)據(jù)節(jié)點(diǎn)中賦 值對(duì)象的增加節(jié)點(diǎn)方法創(chuàng)建xenc公共命名空間密文數(shù)據(jù)節(jié)點(diǎn),在xenc公共命名空間密文 數(shù)值節(jié)點(diǎn)后標(biāo)識(shí)xenc公共命名空間密文數(shù)據(jù)節(jié)點(diǎn)的結(jié)尾;
第三密文數(shù)值節(jié)點(diǎn)配置子單元,用于創(chuàng)建空白字符型變量,使用3DES加密算法或 AES256加密算法將未加密令牌種子數(shù)值進(jìn)行加密,將加密后的令牌種子數(shù)值賦值字符型變 量;調(diào)用xenc公共命名空間密文數(shù)據(jù)節(jié)點(diǎn)中賦值對(duì)象的填充節(jié)點(diǎn)方法將所述字符型變量 代表的加密后令牌種子數(shù)值填充在上述密文數(shù)據(jù)節(jié)點(diǎn),在所述加密后令牌種子數(shù)值后標(biāo)識(shí) 上述xenc公共命名空間密文數(shù)值節(jié)點(diǎn)的結(jié)尾。
優(yōu)選地,第三密文數(shù)值節(jié)點(diǎn)配置子單元包括字符型變量賦值子單元,用于將加密 后的令牌種子數(shù)值使用BASE64編碼成為字符型數(shù)值,將該字符型數(shù)值賦值給所述字符型變量。
第三子元素創(chuàng)建模塊85包括密鑰設(shè)備配置單元,用于為第三子元素節(jié)點(diǎn)配置指 定個(gè)數(shù)的密鑰設(shè)備節(jié)點(diǎn),并根據(jù)配置的密鑰設(shè)備節(jié)點(diǎn)重復(fù)執(zhí)行上述密鑰設(shè)備節(jié)點(diǎn)的配置過(guò) 程,重復(fù)執(zhí)行的次數(shù)為該指定個(gè)數(shù)。
本實(shí)施例通過(guò)采用xml文件的格式創(chuàng)建安全文件,使該安全文件能夠兼容各種系 統(tǒng),而不需要對(duì)安全文件進(jìn)行格式轉(zhuǎn)換,因此解決了因格式轉(zhuǎn)換導(dǎo)致的安全隱患問(wèn)題;同 時(shí),本實(shí)施例在配置安全文件中各節(jié)點(diǎn)時(shí),采用對(duì)令牌種子加密的方式配置密鑰設(shè)備對(duì)應(yīng) 的節(jié)點(diǎn)(即第三子元素節(jié)點(diǎn)),該方式進(jìn)一步降低了系統(tǒng)導(dǎo)入、導(dǎo)出安全文件時(shí)重要信息被 泄露的威脅。
實(shí)施例4
參見圖9,本實(shí)施例提供了一種生成安全文件的系統(tǒng),該系統(tǒng)基于便攜共享密鑰容 器標(biāo)準(zhǔn)生成安全文件,該系統(tǒng)包括令牌服務(wù)器1 ;
令牌服務(wù)器1,用于引用xml安裝組件中對(duì)象創(chuàng)建安全文件的各級(jí)節(jié)點(diǎn),調(diào)用對(duì)象 的方法增加根元素的子元素節(jié)點(diǎn)及其屬性;
令牌服務(wù)器1具體包括文件創(chuàng)建模塊11,根元素創(chuàng)建模塊12,頭節(jié)點(diǎn)創(chuàng)建模塊13, 第一子元素創(chuàng)建模塊14,第二子元素創(chuàng)建模塊15,第三子元素創(chuàng)建模塊16,文件生成模塊 17 ;
文件創(chuàng)建模塊11,用于令牌服務(wù)器1創(chuàng)建安全文件;具體分為第一對(duì)象引用單元 111,第一調(diào)用方法單元112,第一賦值對(duì)象名稱單元113 ;
第一引用對(duì)象單元111,用于令牌服務(wù)器1引用xml組件dom4j包中 DoeumentHelper 對(duì)象禾口 Document 對(duì)象;
第一調(diào)用方法單元112,用于令牌服務(wù)器1調(diào)用DoeumentHelper對(duì)象的方法創(chuàng)建 XML文檔,
第一賦值對(duì)象名稱單元113,用于令牌服務(wù)器1賦值Document對(duì)象名稱為 Document ;
根元素創(chuàng)建模塊12,用于令牌服務(wù)器1創(chuàng)建根元素節(jié)點(diǎn)和屬性;
具體分為第二對(duì)象引用單元121,第二調(diào)用方法單元122,第二賦值對(duì)象名稱單元 123 ;
第二對(duì)象引用單元121,用于令牌服務(wù)器1引用xml組件dom4j包中Element對(duì) 象;
第二調(diào)用方法單元122,用于令牌服務(wù)器1調(diào)用document對(duì)象的addElement方法 創(chuàng)建根元素〈KeyContainer〉(密鑰容器)節(jié)點(diǎn);
調(diào)用elemRoot對(duì)象的addAttribute方法增加的Version(版本號(hào))屬性和屬性 值1.0、xmlns (xmlns公共命名空間)的空間地址屬性和屬性值urn: ietf :params:xml :n s:keyprov:pskc:l. 0、xmlns:ds(ds公共命名空間)空間地址屬性和屬性值http://www. w3. org/2000/09/xmldsig#, xmlns xenc (xenc公共命名空間)空間地址屬性和屬性值 http://www. w3. org/2001/04/xmlenc# ;
第二賦值對(duì)象名稱單元123,用于令牌服務(wù)器1賦值Element對(duì)象名稱為 elemRoot 對(duì)象,
頭節(jié)點(diǎn)創(chuàng)建模塊13,用于令牌服務(wù)器1自動(dòng)生成頭節(jié)點(diǎn)及其屬性、聲明頭節(jié)點(diǎn)的 屬性值;
頭節(jié)點(diǎn)創(chuàng)建模塊13具體包括頭節(jié)點(diǎn)自動(dòng)生成單元131和頭節(jié)點(diǎn)聲明單元132 ;
頭節(jié)點(diǎn)自動(dòng)生成單元131,用于令牌服務(wù)器1自動(dòng)生成XML安全文件頭節(jié)點(diǎn)<xml> 和屬性version (版本號(hào))和encoding (編碼規(guī)范);
頭節(jié)點(diǎn)聲明單元132,用于令牌服務(wù)器1聲明頭節(jié)點(diǎn)<xml>的Versi0n(版本號(hào)) 為1. 0和encoding (編碼規(guī)范)為UTF-8 ;
第一子元素創(chuàng)建模塊14,用于令牌服務(wù)器1創(chuàng)建第一子元素節(jié)點(diǎn)及其屬性;具體 分為第三對(duì)象引用單元141,第三調(diào)用方法單元142,第三賦值對(duì)象名稱單元143,第一結(jié)尾 標(biāo)識(shí)單元144 ;
第三對(duì)象引用單元141,用于令牌服務(wù)器1引用xml組件dom4j包中Element (元 素)對(duì)象;
第三調(diào)用方法單元142,用于令牌服務(wù)器1調(diào)用根元素〈KeyContainer〉(密鑰容 器)節(jié)點(diǎn)中elemRoot對(duì)象的addElement方法創(chuàng)建第一子元素<EncryptionKey> (密鑰文 件)節(jié)點(diǎn);
調(diào)用第一子元素<EncryptionKey>(密鑰文件)節(jié)點(diǎn)中encryptionElem對(duì)象的 addElement方法創(chuàng)建<EncryptionKey> (密鑰文件)節(jié)點(diǎn)的子元素<ds:KeyName> (解密密 鑰文件名稱)節(jié)點(diǎn);
調(diào)用<ds: KeyNameM解密密鑰文件名稱)節(jié)點(diǎn)中keyNameElem對(duì)象的setText方法將解密密鑰文件名稱填充在<ds = KeyNameM解密密鑰文件名稱)節(jié)點(diǎn);
第三賦值對(duì)象名稱單元143,用于令牌服務(wù)器1第一子元素〈EncryptionKeyM密 鑰文件)節(jié)點(diǎn)中賦值Element對(duì)象名稱encryptionElem ;在<ds:KeyName> (解密密鑰文件 名稱)節(jié)點(diǎn)中賦值Element對(duì)象名稱keyNameElem ;
第一結(jié)尾標(biāo)識(shí)單元144,用于令牌服務(wù)器1在<dS:KeyName>(解密密鑰文件名稱) 節(jié)點(diǎn)后標(biāo)識(shí) <EncryptionKey> 節(jié)點(diǎn)的結(jié)尾 </EncryptionKey> ;
第二子元素創(chuàng)建模塊15,用于令牌服務(wù)器1創(chuàng)建第二子元素節(jié)點(diǎn)及其屬性;具體 分為第四對(duì)象引用單元151,第四調(diào)用方法單元152,第四賦值對(duì)象名稱單元153,第一類 型判斷單元154,第二結(jié)尾標(biāo)識(shí)單元155 ;
第四對(duì)象引用單元151,用于令牌服務(wù)器1引用xml組件dom4j包中Element (元 素)對(duì)象;
第四調(diào)用方法單元152,用于令牌服務(wù)器1調(diào)用根元素〈KeyContainerM密鑰容 器)節(jié)點(diǎn)中elemRoot對(duì)象的addElement方法創(chuàng)建第二子元素〈KeyftOperties〉(令牌屬 性)節(jié)點(diǎn);
用于令牌服務(wù)器1調(diào)用〈KeyProperties〉(令牌屬性)節(jié)點(diǎn)中keyftOperElem對(duì) 象的addAttribute方法增加〈KeyProperties〉(令牌屬性)節(jié)點(diǎn)的2個(gè)屬性xml id (公共 命名空間標(biāo)識(shí)符)屬性,屬性值為H0TPKPID或T0TPKPID ;KeyAlgorithm(令牌算法)屬性, 屬性值為 http://www. ietf. org/keyprov/pskc#hotp
或http://www. ietf. org/keyprov/pskc#totp ;
用于令牌服務(wù)器1調(diào)用〈KeyftOpertiesX令牌屬性)節(jié)點(diǎn)中keyProperElem對(duì)象 的addElement方法創(chuàng)建〈KeyProperties〉(令牌屬性)節(jié)點(diǎn)的兩個(gè)二級(jí)子元素〈Usage〉(密 鑰用途)節(jié)點(diǎn)和<Data> (數(shù)據(jù))節(jié)點(diǎn);
用于令牌服務(wù)器1調(diào)用usageElem對(duì)象的addAttribute方法增加〈Usage〉(密鑰 用途)節(jié)點(diǎn)的OTP(動(dòng)態(tài)令牌)屬性,屬性值為true;
用于令牌服務(wù)器1調(diào)用〈Usage〉(密鑰用途)節(jié)點(diǎn)中usageElem對(duì)象的addElement 方法創(chuàng)建三級(jí)子元素〈ResponseFormatM動(dòng)態(tài)口令)節(jié)點(diǎn);
用于令牌服務(wù)器1調(diào)用responseElem對(duì)象的addAttribute方法增加 <ResponseFormat> (動(dòng)態(tài)口令)節(jié)點(diǎn)的兩個(gè)屬性format (數(shù)值格式)屬性,屬性值為 DECIMAL ;Length(動(dòng)態(tài)口令長(zhǎng)度)屬性,屬性值為6,具體地6代表6位十進(jìn)制數(shù)字;
用于令牌服務(wù)器1調(diào)用〈Counter〉(計(jì)數(shù)器)節(jié)點(diǎn)中counterElem對(duì)象的 addElement方法創(chuàng)建四級(jí)子元素〈PlainValue〉(用戶默認(rèn)值)節(jié)點(diǎn);
用于令牌服務(wù)器1調(diào)用<Data> (數(shù)據(jù))節(jié)點(diǎn)中dataElem對(duì)象的addElement方法 創(chuàng)建三級(jí)子元素〈Counter〉(計(jì)數(shù)器)節(jié)點(diǎn);
用于令牌服務(wù)器1調(diào)用plainElem對(duì)象的setText方法將數(shù)字0填充在 〈PlainValue〉(用戶默認(rèn)值)節(jié)點(diǎn);
用于令牌服務(wù)器1調(diào)用<Data> (數(shù)據(jù))節(jié)點(diǎn)中dataElem對(duì)象的addElement方法 創(chuàng)建三級(jí)子元素<Time>(起始參考時(shí)間)節(jié)點(diǎn)和〈TimelntervalM時(shí)鐘周期)節(jié)點(diǎn);
用于令牌服務(wù)器1調(diào)用<Time> (起始參考時(shí)間)節(jié)點(diǎn)中timeElem對(duì)象的 addElement方法創(chuàng)建四級(jí)子元素〈PlainValue〉(用戶默認(rèn)值)節(jié)點(diǎn);
用于令牌服務(wù)器1調(diào)用<Timehterval>(時(shí)鐘周期)節(jié)點(diǎn)中timehtervalElem 對(duì)象的addElement方法創(chuàng)建四級(jí)子元素〈PlainValue〉(用戶默認(rèn)值)節(jié)點(diǎn);
用于令牌服務(wù)器1調(diào)用valPlainElem對(duì)象的setText方法將數(shù)字0填充 〈PlainValue〉(用戶默認(rèn)值)節(jié)點(diǎn);
第四賦值對(duì)象名稱單元153,用于令牌服務(wù)器1在〈Keyl^opertiesM令牌屬性) 節(jié)點(diǎn)中賦值Element對(duì)象名稱keyProperElem ;
<Usage>(密鑰用途)節(jié)點(diǎn)中賦值Element對(duì)象名稱usageElem ;<Data> (數(shù)據(jù))節(jié) 點(diǎn)中賦值Element對(duì)象名稱dataElem ;
<ResponseFormat>(動(dòng)態(tài)口令)節(jié)點(diǎn)賦值 Element 對(duì)象名稱為 responseElem ;
〈Counter〉(計(jì)數(shù)器)節(jié)點(diǎn)中賦值Element對(duì)象名稱為counterElem ;
<PlainValue>(用戶默認(rèn)值)節(jié)點(diǎn)中賦值Element對(duì)象名稱為plainElem和 valPlainElem ;
<Time>(起始參考時(shí)間)節(jié)點(diǎn)中賦值Element對(duì)象名稱為timeElem ;
<TimeInterval>(時(shí)鐘周期)節(jié)點(diǎn)中賦值Element對(duì)象名稱為 timeIntervalElem ;
第一類型判斷單元154,用于令牌服務(wù)器1判斷令牌類型標(biāo)識(shí)符是否為1 ;
第二結(jié)尾標(biāo)識(shí)單元155,用于令牌服務(wù)器l<Data> (數(shù)據(jù))節(jié)點(diǎn)后標(biāo)識(shí) <KeyProperties>(令牌屬性)節(jié)點(diǎn)的結(jié)尾 </KeyProperties> ;
〈Counter〉(計(jì)數(shù)器)節(jié)點(diǎn)后標(biāo)識(shí)<Data> (數(shù)據(jù))節(jié)點(diǎn)的結(jié)尾</Data> ;
〈PlainValue〉(用戶默認(rèn)值)節(jié)點(diǎn)后標(biāo)識(shí)〈Counter〉(計(jì)數(shù)器)節(jié)點(diǎn)結(jié)尾</ Counter);
〈PlainValue〉(用戶默認(rèn)值)節(jié)點(diǎn)結(jié)尾后標(biāo)識(shí)<Time> (起始參考時(shí)間)節(jié)點(diǎn)結(jié)尾 </Time> ;
〈PlainValue〉(用戶默認(rèn)值)節(jié)點(diǎn)后標(biāo)識(shí)〈Timelnterval〉(時(shí)鐘周期)節(jié)點(diǎn)的結(jié) 尾 </TimeInterval> ;
第三子元素創(chuàng)建模塊16,用于令牌服務(wù)器1創(chuàng)建第三子元素節(jié)點(diǎn)及其屬性;具體 包括第五對(duì)象引用單元161,第五調(diào)用方法單元162,第五賦值對(duì)象名稱單元163,第二類型 判斷單元164,數(shù)值計(jì)算單元165,第三結(jié)尾標(biāo)識(shí)單元166 ;
第五對(duì)象引用單元161,用于令牌服務(wù)器1弓丨用xml組件dom4j包中Element對(duì) 象;
第五調(diào)用方法單元162,用于令牌服務(wù)器1調(diào)用根元素〈KeyContainerX密鑰容 器)節(jié)點(diǎn)中elemRoot對(duì)象的addElement方法創(chuàng)建第三子元素〈Device〉(密鑰設(shè)備)節(jié)點(diǎn)
用于令牌服務(wù)器1調(diào)用keyElem對(duì)象的addAttribute方法增加<Key> (令牌)節(jié) 點(diǎn)的2個(gè)屬性,KeyId (令牌編號(hào))屬性,屬性值為FTK2000FR93、KeyPrOperties (令牌類型 標(biāo)識(shí)符)屬性,屬性值為H0TPKPID或T0TPKPID ;
用于令牌服務(wù)器1調(diào)用deviceElem對(duì)象的addElement方法創(chuàng)建子元素<Key> (令 牌)節(jié)點(diǎn);
用于令牌服務(wù)器1調(diào)用keyElem對(duì)象的addElement方法創(chuàng)建<Key> (令牌)節(jié)點(diǎn)子元素<Data> (密鑰數(shù)據(jù))節(jié)點(diǎn);
用于令牌服務(wù)器1調(diào)用keyDataElem對(duì)象的addElement方法創(chuàng)建<Data> (密鑰 數(shù)據(jù))節(jié)點(diǎn)子元素〈Secret〉(令牌種子)節(jié)點(diǎn);
用于令牌服務(wù)器1調(diào)用keySecretElem對(duì)象的addElement方法創(chuàng)建〈Secret〉(令 牌種子)節(jié)點(diǎn)的子元素〈EncryptedValue〉(密文數(shù)值)節(jié)點(diǎn);
用于令牌服務(wù)器1調(diào)用keyEncryElem對(duì)象的addElement方法創(chuàng)建 <EncryptedValue> (密文數(shù)值)節(jié)點(diǎn)的兩子元素 <xenc EncryptionMethod> (xenc 公共命名 空間加密方法)節(jié)點(diǎn)和〈xenc:CipherDataXxenc公共命名空間密文數(shù)據(jù))節(jié)點(diǎn);
用于令牌服務(wù)器1調(diào)用keyXencEncryElem對(duì)象的addAttribute方法增加 <xenc EncryptionMethod> (xenc公共命名空間加密方法)節(jié)點(diǎn)的Algorithm(算法) 屬性,屬性值為:http://www. w3. org/2001/04/xmlenc#tripledes-cbc 或 http //www. w3.org/2001/04/xmlenc#aes256_cbc ;
用于令牌服務(wù)器1調(diào)用keyXencCipherElem對(duì)象的addElement方法創(chuàng)建 <xenc CipherData> (xenc 公共命名空 |、司密文數(shù)據(jù))節(jié),子元素 <xenc CipherValue> (xenc 公共命名空間密文數(shù)值)節(jié)點(diǎn);
用于令牌服務(wù)器1調(diào)用keyCipherVElem對(duì)象的setText方法將字符型變量 tknpubkey代表的加密后令牌種子數(shù)值填充在<xenc CipherValue〉(xenc公共命名空間密 文數(shù)值)節(jié)點(diǎn);
第五賦值對(duì)象名稱單元163,用于令牌服務(wù)器1在〈Device〉(密鑰設(shè)備)節(jié)點(diǎn)中賦 值Element對(duì)象名稱為deviceElem ;
在<Key> (令牌)節(jié)點(diǎn)中賦值Element對(duì)象名稱為keyElem ;
在<Data> (密鑰數(shù)據(jù))節(jié)點(diǎn)中賦值Element對(duì)象名稱為keyDataElem ;
在〈Secret〉(令牌種子)節(jié)點(diǎn)中賦值Element對(duì)象名稱為keykcretElem ;
在〈EncryptedValue〉(密文數(shù)值)節(jié)點(diǎn)中賦值Element對(duì)象名稱為 keyEncryElem ;
在<xenc EncryptionMethod> (xenc公共命名空間加密方法)節(jié)點(diǎn)中賦值Element 對(duì)象的名稱為keyXencEncryElem ;
在<xenc:CipherDataMxenc公共命名空間密文數(shù)據(jù))節(jié)點(diǎn)中賦值Element對(duì)象 的名稱為 keyXencCipherElem ;
在<xenc: CipherValue〉(xenc公共命名空間密文數(shù)值)節(jié)點(diǎn)中賦值Element對(duì)象 的名稱為 keyCipherVElem ;
第二類型判斷單元164,用于令牌服務(wù)器1判斷令牌類型標(biāo)識(shí)符是否為1 ;判斷令 牌種子數(shù)值加密方式標(biāo)識(shí)符是否為1,
數(shù)值計(jì)算模塊165,用于令牌服務(wù)器1使用DESUtil類的DES3enCrypt方法或 AESUtil類的AES256encrypt方法計(jì)算未加密令牌種子數(shù)值,將加密后令牌種子數(shù)值賦值 字符型變量tknpiAkey ;
第三結(jié)尾標(biāo)識(shí)單元166,用于令牌服務(wù)器1在<Key>(令牌)節(jié)點(diǎn)后標(biāo)識(shí) 〈Device〉(密鑰設(shè)備)節(jié)點(diǎn)的結(jié)尾〈/Device〉;
用于令牌服務(wù)器1在<Data>(密鑰數(shù)據(jù))節(jié)點(diǎn)后標(biāo)識(shí)<Key>(令牌)節(jié)點(diǎn)的結(jié)尾</Key> ;
用于令牌服務(wù)器1在〈Secret〉(令牌種子)節(jié)點(diǎn)后標(biāo)識(shí)<Data> (密鑰數(shù)據(jù))節(jié)點(diǎn) 的結(jié)尾</Data> ;
用于令牌服務(wù)器1在〈EncryptedValue〉(密文數(shù)值)節(jié)點(diǎn)后標(biāo)識(shí)〈Secret〉(令牌 種子)節(jié)點(diǎn)的結(jié)尾〈/Secret〉;
用于令牌服務(wù)器1在<XenC:CipherValue>(XenC公共命名空間密文數(shù) 值)節(jié)點(diǎn)后標(biāo)識(shí)<xenc CipherData> (xenc公共命名空間密文數(shù)據(jù))節(jié)點(diǎn)的結(jié)尾</ xencCipherData> ;
用于令牌服務(wù)器1在加密后令牌種子數(shù)值后標(biāo)識(shí)<xenc CipherValue> (xenc公共 命名空間密文數(shù)值)節(jié)點(diǎn)的結(jié)尾</xenc:CipherValue> ;
文件生成模塊17,用于令牌服務(wù)器1使用creatXML方法將配置好的數(shù)據(jù)結(jié)構(gòu)輸出 到后綴名為XML的文本文件中生成安全文件。
本實(shí)施例通過(guò)采用xml文件的格式創(chuàng)建安全文件,使該安全文件能夠兼容各種系 統(tǒng),而不需要對(duì)安全文件進(jìn)行格式轉(zhuǎn)換,因此解決了因格式轉(zhuǎn)換導(dǎo)致的安全隱患問(wèn)題;同 時(shí),本實(shí)施例在配置安全文件中各節(jié)點(diǎn)時(shí),采用對(duì)令牌種子加密的方式配置密鑰設(shè)備對(duì)應(yīng) 的節(jié)點(diǎn)(即第三子元素節(jié)點(diǎn)),該方式進(jìn)一步降低了系統(tǒng)導(dǎo)入、導(dǎo)出安全文件時(shí)重要信息被 泄露的威脅。
顯然,本領(lǐng)域的技術(shù)人員應(yīng)該明白,上述的本發(fā)明的各模塊或各步驟可以用通用 的計(jì)算裝置來(lái)實(shí)現(xiàn),它們可以集中在單個(gè)的計(jì)算裝置上,或者分布在多個(gè)計(jì)算裝置所組成 的網(wǎng)絡(luò)上,可選地,它們可以用計(jì)算裝置可執(zhí)行的程序代碼來(lái)實(shí)現(xiàn),從而,可以將它們存儲(chǔ) 在存儲(chǔ)裝置中由計(jì)算裝置來(lái)執(zhí)行,并且在某些情況下,可以以不同于此處的順序執(zhí)行所示 出或描述的步驟,或者將它們分別制作成各個(gè)集成電路模塊,或者將它們中的多個(gè)模塊或 步驟制作成單個(gè)集成電路模塊來(lái)實(shí)現(xiàn)。這樣,本發(fā)明不限制于任何特定的硬件和軟件結(jié)合。
以上所述僅為本發(fā)明的優(yōu)選實(shí)施例而已,并不用于限制本發(fā)明,對(duì)于本領(lǐng)域的技 術(shù)人員來(lái)說(shuō),本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修 改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種生成安全文件的方法,其特征在于,包括 令牌服務(wù)器創(chuàng)建xml文件;所述令牌服務(wù)器為所述xml文件創(chuàng)建根元素,并將所述根元素作為存儲(chǔ)令牌種子的密 鑰容器節(jié)點(diǎn),配置所述密鑰容器節(jié)點(diǎn)的屬性及屬性值;所述令牌服務(wù)器為所述根元素創(chuàng)建第一子元素節(jié)點(diǎn);其中,所述第一子元素節(jié)點(diǎn)用于 配置令牌種子的密鑰文件節(jié)點(diǎn),所述密鑰文件節(jié)點(diǎn)包括解密密鑰文件名稱;所述令牌服務(wù)器為所述根元素創(chuàng)建第二子元素節(jié)點(diǎn);其中,所述第二子元素節(jié)點(diǎn)用于 配置包含令牌種子的令牌屬性節(jié)點(diǎn);所述令牌服務(wù)器為所述根元素創(chuàng)建第三子元素節(jié)點(diǎn),其中,所述第三子元素節(jié)點(diǎn)用于 配置包含令牌種子的密鑰設(shè)備節(jié)點(diǎn);所述令牌種子加密后保存在所述密鑰設(shè)備節(jié)點(diǎn); 所述密鑰設(shè)備節(jié)點(diǎn)的配置過(guò)程包括所述令牌服務(wù)器為所述第三子元素節(jié)點(diǎn)創(chuàng)建令牌節(jié)點(diǎn),并根據(jù)所述第三子元素節(jié)點(diǎn)配 置的所述密鑰設(shè)備節(jié)點(diǎn)設(shè)置所述令牌節(jié)點(diǎn)的屬性,所述令牌節(jié)點(diǎn)的屬性包括令牌編號(hào)和令 牌類型標(biāo)識(shí)符;根據(jù)所述令牌節(jié)點(diǎn)的編號(hào)和令牌類型標(biāo)識(shí)符為所述令牌節(jié)點(diǎn)創(chuàng)建密鑰數(shù)據(jù) 節(jié)點(diǎn),所述密鑰數(shù)據(jù)節(jié)點(diǎn)包括解密令牌種子的密鑰、加密方式信息、加密后的密文; 所述令牌服務(wù)器將配置后的所述xml文件作為安全文件。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述令牌服務(wù)器創(chuàng)建xml文件包括令牌服務(wù)器引用xml組件dom4j包中的文檔對(duì)象中的創(chuàng)建文檔方法創(chuàng)建xml文件,引 用所述xml組件dom4j包中的文檔對(duì)象,為所述xml文件賦值文檔對(duì)象名稱;所述令牌服務(wù)器生成所述xml文件的頭節(jié)點(diǎn)的版本號(hào)屬性和編碼規(guī)范屬性,并聲明所 述頭節(jié)點(diǎn)的版本號(hào)屬性和編碼規(guī)范屬性。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述令牌服務(wù)器為所述xml文件創(chuàng)建根元 素,并將所述根元素作為存儲(chǔ)令牌種子的密鑰容器節(jié)點(diǎn),配置所述密鑰容器節(jié)點(diǎn)的屬性及 屬性值包括所述令牌服務(wù)器調(diào)用xml組件dom4j包中的文檔對(duì)象的增加節(jié)點(diǎn)方法,為所述xml文 件創(chuàng)建根元素;所述令牌服務(wù)器將所述根元素作為存儲(chǔ)令牌種子的密鑰容器節(jié)點(diǎn); 所述令牌服務(wù)器調(diào)用所述密鑰容器節(jié)點(diǎn)中賦值元素對(duì)象的增加屬性方法配置所述密 鑰容器節(jié)點(diǎn)的屬性及屬性值,并在所述ml文件最后一行標(biāo)識(shí)所述密鑰容器節(jié)點(diǎn)的結(jié)尾。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述令牌服務(wù)器為所述根元素創(chuàng)建第一 子元素節(jié)點(diǎn)包括所述令牌服務(wù)器調(diào)用所述密鑰容器節(jié)點(diǎn)中根元素對(duì)象的增加節(jié)點(diǎn)方法創(chuàng)建第一子元 素節(jié)點(diǎn),將所述第一子元素節(jié)點(diǎn)作為令牌種子的密鑰文件節(jié)點(diǎn);所述令牌服務(wù)器調(diào)用所述第一子元素節(jié)點(diǎn)中賦值元素對(duì)象的增加節(jié)點(diǎn)方法創(chuàng)建所述 密鑰文件節(jié)點(diǎn)的子元素節(jié)點(diǎn),將所述密鑰文件節(jié)點(diǎn)的子元素節(jié)點(diǎn)作為解密密鑰文件名稱節(jié) 點(diǎn);在所述解密密鑰文件名稱節(jié)點(diǎn)中賦值元素對(duì)象,調(diào)用所述賦值元素對(duì)象的填充節(jié)點(diǎn)方 法將解密密鑰文件名稱填充在所述解密密鑰文件名稱節(jié)點(diǎn),在所述解密密鑰文件名稱節(jié)點(diǎn) 后標(biāo)識(shí)所述密鑰文件節(jié)點(diǎn)的結(jié)尾。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述令牌服務(wù)器為所述根元素創(chuàng)建第二子元素節(jié)點(diǎn)包括所述令牌服務(wù)器調(diào)用所述密鑰容器節(jié)點(diǎn)中賦值元素對(duì)象的增加節(jié)點(diǎn)方法創(chuàng)建第二子 元素節(jié)點(diǎn),將所述第二子元素節(jié)點(diǎn)作為包含令牌種子的令牌屬性節(jié)點(diǎn),在所述令牌屬性節(jié) 點(diǎn)中賦值元素對(duì)象,并根據(jù)所述密鑰容器節(jié)點(diǎn)中的令牌種子的令牌類型增加令牌屬性節(jié)點(diǎn) 的屬性及屬性值。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述根據(jù)所述密鑰容器節(jié)點(diǎn)中的令牌種 子的令牌類型增加令牌屬性節(jié)點(diǎn)的屬性及屬性值包括所述令牌服務(wù)器調(diào)用所述令牌屬性節(jié)點(diǎn)中的賦值元素對(duì)象的增加節(jié)點(diǎn)方法創(chuàng)建所述 令牌屬性節(jié)點(diǎn)的兩個(gè)二級(jí)子元素節(jié)點(diǎn),將所述兩個(gè)二級(jí)子元素節(jié)點(diǎn)分別作為密鑰用途節(jié)點(diǎn) 和數(shù)據(jù)節(jié)點(diǎn);所述令牌服務(wù)器調(diào)用密鑰用途節(jié)點(diǎn)中賦值對(duì)象的增加屬性方法增加密鑰用途節(jié)點(diǎn)的 動(dòng)態(tài)令牌屬性及屬性值,并在所述數(shù)據(jù)節(jié)點(diǎn)后標(biāo)識(shí)所述令牌屬性節(jié)點(diǎn)的結(jié)尾;所述令牌服務(wù)器調(diào)用所述密鑰用途節(jié)點(diǎn)中賦值對(duì)象的增加節(jié)點(diǎn)方法創(chuàng)建三級(jí)子元素 動(dòng)態(tài)口令節(jié)點(diǎn),在所述動(dòng)態(tài)口令節(jié)點(diǎn)中賦值元素對(duì)象的增加屬性方法增加所述動(dòng)態(tài)口令節(jié) 點(diǎn)的屬性及屬性值;所述令牌服務(wù)器根據(jù)令牌類型標(biāo)識(shí)符確定令牌類型為事件同步動(dòng)態(tài)令牌或時(shí)間動(dòng)態(tài) 令牌;如果所述令牌類型是事件同步動(dòng)態(tài)令牌,所述令牌服務(wù)器根據(jù)令牌類型標(biāo)識(shí)符調(diào)用所 述數(shù)據(jù)節(jié)點(diǎn)中賦值對(duì)象的增加節(jié)點(diǎn)方法創(chuàng)建三級(jí)子元素計(jì)數(shù)器節(jié)點(diǎn);在所述計(jì)數(shù)器節(jié)點(diǎn)后 標(biāo)識(shí)數(shù)據(jù)節(jié)點(diǎn)的結(jié)尾;調(diào)用所述計(jì)數(shù)器節(jié)點(diǎn)中賦值對(duì)象的增加節(jié)點(diǎn)方法創(chuàng)建四級(jí)子元素用 戶默認(rèn)值節(jié)點(diǎn),調(diào)用所述用戶默認(rèn)值節(jié)點(diǎn)中的賦值對(duì)象的填充節(jié)點(diǎn)方法填充用戶默認(rèn)值節(jié) 點(diǎn),在所述用戶默認(rèn)值節(jié)點(diǎn)后標(biāo)識(shí)計(jì)數(shù)器節(jié)點(diǎn)結(jié)尾;如果所述令牌類型是時(shí)間動(dòng)態(tài)令牌,所述令牌服務(wù)器調(diào)用所述數(shù)據(jù)節(jié)點(diǎn)賦值對(duì)象的增 加節(jié)點(diǎn)方法創(chuàng)建三級(jí)子元素起始參考時(shí)間節(jié)點(diǎn)和時(shí)鐘周期節(jié)點(diǎn),調(diào)用所述起始參考時(shí)間節(jié) 點(diǎn)和所述時(shí)鐘周期節(jié)點(diǎn)中賦值對(duì)象的增加節(jié)點(diǎn)方法創(chuàng)建四級(jí)子元素用戶默認(rèn)值節(jié)點(diǎn);調(diào)用 所述用戶默認(rèn)值節(jié)點(diǎn)中賦值對(duì)象的填充節(jié)點(diǎn)方法填充用戶默認(rèn)值節(jié)點(diǎn);在所述用戶默認(rèn)值 節(jié)點(diǎn)結(jié)尾后標(biāo)識(shí)起始參考時(shí)間節(jié)點(diǎn)和時(shí)鐘周期節(jié)點(diǎn)結(jié)尾。
7.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述令牌服務(wù)器為所述根元素創(chuàng)建第三子元素節(jié)點(diǎn)包括所述令牌服務(wù)器調(diào)用所述密 鑰容器節(jié)點(diǎn)中賦值對(duì)象的增加節(jié)點(diǎn)方法創(chuàng)建所述密鑰容器節(jié)點(diǎn)的第三子元素節(jié)點(diǎn),將所述 第三子元素節(jié)點(diǎn)作為包含令牌種子的密鑰設(shè)備節(jié)點(diǎn);所述令牌服務(wù)器為所述第三子元素節(jié)點(diǎn)創(chuàng)建令牌節(jié)點(diǎn)包括所述令牌服務(wù)器調(diào)用所述 密鑰設(shè)備節(jié)點(diǎn)中賦值對(duì)象的增加節(jié)點(diǎn)方法創(chuàng)建令牌節(jié)點(diǎn),調(diào)用所述令牌節(jié)點(diǎn)中賦值對(duì)象的 增加方法增加所述令牌節(jié)點(diǎn)的令牌編號(hào)屬性及屬性值、令牌類型標(biāo)識(shí)符屬性及所述令牌類 型標(biāo)識(shí)符屬性的屬性值;所述根據(jù)所述令牌節(jié)點(diǎn)的編號(hào)和令牌類型標(biāo)識(shí)符為所述令牌節(jié)點(diǎn)創(chuàng)建密鑰數(shù)據(jù)節(jié)點(diǎn) 包括所述令牌服務(wù)器調(diào)用所述令牌節(jié)點(diǎn)中賦值對(duì)象的增加節(jié)點(diǎn)方法創(chuàng)建所述令牌節(jié)點(diǎn)的 子元素密鑰數(shù)據(jù)節(jié)點(diǎn),在所述密鑰數(shù)據(jù)節(jié)點(diǎn)后標(biāo)識(shí)所述令牌節(jié)點(diǎn)的結(jié)尾;調(diào)用所述密鑰數(shù) 據(jù)節(jié)點(diǎn)中賦值對(duì)象的增加節(jié)點(diǎn)方法創(chuàng)建所述密鑰數(shù)據(jù)節(jié)點(diǎn)的子元素令牌種子節(jié)點(diǎn);在所述令牌種子節(jié)點(diǎn)后標(biāo)識(shí)所述密鑰數(shù)據(jù)節(jié)點(diǎn)的結(jié)尾;所述令牌服務(wù)器調(diào)用所述令牌種子節(jié)點(diǎn)中 增加節(jié)點(diǎn)方法創(chuàng)建所述令牌種子節(jié)點(diǎn)的子元素密文數(shù)值節(jié)點(diǎn),在所述密文數(shù)值節(jié)點(diǎn)后標(biāo)識(shí) 所述令牌種子節(jié)點(diǎn)的結(jié)尾。
8.根據(jù)權(quán)利要求7所述的方法,其特征在于,所述令牌服務(wù)器調(diào)用所述令牌種子節(jié)點(diǎn) 中增加節(jié)點(diǎn)方法創(chuàng)建所述令牌種子節(jié)點(diǎn)的子元素密文數(shù)值節(jié)點(diǎn)包括所述令牌服務(wù)器調(diào)用所述密文數(shù)值節(jié)點(diǎn)中賦值對(duì)象的增加方法創(chuàng)建所述密文數(shù)值節(jié) 點(diǎn)的兩子元素xenc公共命名空間加密方法節(jié)點(diǎn)和xenc公共命名空間密文數(shù)據(jù)節(jié)點(diǎn)、調(diào)用 所述xenc公共命名空間加密方法節(jié)點(diǎn)賦值對(duì)象的增加節(jié)點(diǎn)屬性方法增加所述xenc公共命 名空間加密方法節(jié)點(diǎn)的算法屬性及令牌種子數(shù)值加密方式標(biāo)識(shí)符的屬性值;所述令牌服務(wù)器調(diào)用所述xenc公共命名空間密文數(shù)據(jù)節(jié)點(diǎn)中賦值對(duì)象的增加節(jié)點(diǎn)方 法創(chuàng)建xenc公共命名空間密文數(shù)值節(jié)點(diǎn);在所述xenc公共命名空間密文數(shù)值節(jié)點(diǎn)后標(biāo)識(shí) 所述xenc公共命名空間密文數(shù)據(jù)節(jié)點(diǎn)的結(jié)尾;所述令牌服務(wù)器創(chuàng)建空白字符型變量,使用AES256加密算法或3DES加密算法將未加 密令牌種子數(shù)值進(jìn)行加密,將加密后的令牌種子數(shù)值賦值所述字符型變量;調(diào)用所述xenc 公共命名空間密文數(shù)據(jù)節(jié)點(diǎn)中賦值對(duì)象的填充節(jié)點(diǎn)方法將所述字符型變量代表的加密后 令牌種子數(shù)值填充在所述密文數(shù)據(jù)節(jié)點(diǎn),在所述加密后令牌種子數(shù)值后標(biāo)識(shí)所述xenc公 共命名空間密文數(shù)值節(jié)點(diǎn)的結(jié)尾。
9.根據(jù)權(quán)利要求8所述的方法,其特征在于,所述將加密后的令牌種子數(shù)值賦值所述 字符型變量包括將加密后的令牌種子數(shù)值使用BASE64編碼成為字符型數(shù)值,將所述字符 型數(shù)值賦值給所述字符型變量。
10.根據(jù)權(quán)利要求1-9中任一項(xiàng)所述的方法,其特征在于,所述第三子元素節(jié)點(diǎn)用于配 置指定個(gè)數(shù)的密鑰設(shè)備節(jié)點(diǎn),并根據(jù)配置的所述密鑰設(shè)備節(jié)點(diǎn)重復(fù)執(zhí)行所述密鑰設(shè)備節(jié)點(diǎn) 的配置過(guò)程,重復(fù)執(zhí)行的次數(shù)為所述指定個(gè)數(shù)。
11.一種生成安全文件的裝置,其特征在于,包括文件創(chuàng)建模塊,用于創(chuàng)建Xml文件;根元素創(chuàng)建模塊,用于為所述xml文件創(chuàng)建根元素,并將所述根元素作為存儲(chǔ)令牌種 子的密鑰容器節(jié)點(diǎn),配置所述密鑰容器節(jié)點(diǎn)的屬性及屬性值;第一子元素創(chuàng)建模塊,用于為所述根元素創(chuàng)建第一子元素節(jié)點(diǎn);其中,所述第一子元素 節(jié)點(diǎn)用于配置令牌種子的密鑰文件節(jié)點(diǎn),所述密鑰文件節(jié)點(diǎn)包括解密密鑰文件名稱;第二子元素創(chuàng)建模塊,用于為所述根元素創(chuàng)建第二子元素節(jié)點(diǎn);其中,所述第二子元素 節(jié)點(diǎn)用于配置包含令牌種子的令牌屬性節(jié)點(diǎn);第三子元素創(chuàng)建模塊,用于為所述根元素創(chuàng)建第三子元素節(jié)點(diǎn),其中,所述第三子元素 節(jié)點(diǎn)用于配置包含令牌種子的密鑰設(shè)備節(jié)點(diǎn);所述令牌種子加密后保存在所述密鑰設(shè)備節(jié) 點(diǎn);所述密鑰設(shè)備節(jié)點(diǎn)的配置過(guò)程包括為所述第三子元素節(jié)點(diǎn)創(chuàng)建令牌節(jié)點(diǎn),并根據(jù)所 述第三子元素節(jié)點(diǎn)配置的所述密鑰設(shè)備設(shè)置所述令牌節(jié)點(diǎn)的屬性,所述令牌節(jié)點(diǎn)的屬性包 括令牌編號(hào)和令牌類型標(biāo)識(shí)符;根據(jù)所述令牌節(jié)點(diǎn)的編號(hào)和令牌類型標(biāo)識(shí)符為所述令牌節(jié) 點(diǎn)創(chuàng)建密鑰數(shù)據(jù)節(jié)點(diǎn),所述密鑰數(shù)據(jù)節(jié)點(diǎn)包括解密令牌種子的密鑰、加密方式信息、加密后 的密文;文件生成模塊,用于將配置后的所述xml文件作為安全文件。
12.根據(jù)權(quán)利要求11所述的裝置,其特征在于,所述文件創(chuàng)建模塊包括文件創(chuàng)建單元,用于引用xml組件dom4j包中的文檔幫助對(duì)象中的創(chuàng)建文檔方法創(chuàng)建 xml文件;賦值文檔對(duì)象名稱單元,用于引用所述ml組件dom4j包中的文檔對(duì)象,為所述xml文 件賦值文檔對(duì)象名稱;頭節(jié)點(diǎn)生成單元,用于生成所述ml文件的頭節(jié)點(diǎn)的版本號(hào)屬性和編碼規(guī)范屬性,并 聲明所述頭節(jié)點(diǎn)的版本號(hào)屬性和編碼規(guī)范屬性。
13.根據(jù)權(quán)利要求11所述的裝置,其特征在于,所述根元素創(chuàng)建模塊包括根元素創(chuàng)建單元,用于調(diào)用xml組件dom4j包中的文檔對(duì)象的增加節(jié)點(diǎn)方法,為所述 xml文件創(chuàng)建根元素;密鑰容器節(jié)點(diǎn)設(shè)置單元,用于將所述根元素作為存儲(chǔ)令牌種子的密鑰容器節(jié)點(diǎn); 密鑰容器節(jié)點(diǎn)配置單元,用于調(diào)用所述密鑰容器節(jié)點(diǎn)中賦值元素對(duì)象的增加屬性方法 配置所述密鑰容器節(jié)點(diǎn)的屬性及屬性值,并在所述ml文件最后一行標(biāo)識(shí)所述密鑰容器節(jié) 點(diǎn)的結(jié)尾。
14.根據(jù)權(quán)利要求11所述的裝置,其特征在于,所述第一子元素創(chuàng)建模塊包括密鑰文件節(jié)點(diǎn)設(shè)置單元,用于調(diào)用所述密鑰容器節(jié)點(diǎn)中根元素對(duì)象的增加節(jié)點(diǎn)方法創(chuàng) 建第一子元素節(jié)點(diǎn),將所述第一子元素節(jié)點(diǎn)作為令牌種子的密鑰文件節(jié)點(diǎn);解密密鑰文件名稱節(jié)點(diǎn)設(shè)置單元,用于調(diào)用所述第一子元素節(jié)點(diǎn)中賦值元素對(duì)象的增 加節(jié)點(diǎn)方法創(chuàng)建所述密鑰文件節(jié)點(diǎn)的子元素節(jié)點(diǎn),將所述密鑰文件節(jié)點(diǎn)的子元素節(jié)點(diǎn)作為 解密密鑰文件名稱節(jié)點(diǎn);解密密鑰文件名稱節(jié)點(diǎn)配置單元,用于在所述解密密鑰文件名稱節(jié)點(diǎn)中賦值元素對(duì) 象,調(diào)用所述賦值元素對(duì)象的填充節(jié)點(diǎn)方法將解密密鑰文件名稱填充在所述解密密鑰文件 名稱節(jié)點(diǎn),在所述解密密鑰文件名稱節(jié)點(diǎn)后標(biāo)識(shí)所述密鑰文件節(jié)點(diǎn)的結(jié)尾。
15.根據(jù)權(quán)利要求11所述的裝置,其特征在于,所述第二子元素創(chuàng)建模塊包括令牌屬性節(jié)點(diǎn)設(shè)置單元,用于調(diào)用所述密鑰容器節(jié)點(diǎn)中賦值元素對(duì)象的增加節(jié)點(diǎn)方法 創(chuàng)建第二子元素節(jié)點(diǎn),將所述第二子元素節(jié)點(diǎn)作為包含令牌種子的令牌屬性節(jié)點(diǎn);令牌屬性節(jié)點(diǎn)配置單元,用于在所述令牌屬性節(jié)點(diǎn)中賦值元素對(duì)象,并根據(jù)所述密鑰 容器節(jié)點(diǎn)中的令牌種子的令牌類型增加令牌屬性節(jié)點(diǎn)的屬性及屬性值。
16.根據(jù)權(quán)利要求15所述的裝置,其特征在于,所述令牌屬性節(jié)點(diǎn)配置單元包括二級(jí)子元素節(jié)點(diǎn)設(shè)置子單元,用于調(diào)用所述令牌屬性節(jié)點(diǎn)中的賦值元素對(duì)象的增加節(jié) 點(diǎn)方法創(chuàng)建所述令牌屬性節(jié)點(diǎn)的兩個(gè)二級(jí)子元素節(jié)點(diǎn),將所述兩個(gè)二級(jí)子元素節(jié)點(diǎn)分別作 為密鑰用途節(jié)點(diǎn)和數(shù)據(jù)節(jié)點(diǎn);二級(jí)子元素節(jié)點(diǎn)配置子單元,用于調(diào)用密鑰用途節(jié)點(diǎn)中賦值對(duì)象的增加屬性方法增加 密鑰用途節(jié)點(diǎn)的動(dòng)態(tài)令牌屬性及屬性值,并在所述數(shù)據(jù)節(jié)點(diǎn)后標(biāo)識(shí)所述令牌屬性節(jié)點(diǎn)的結(jié) 尾;三級(jí)子元素節(jié)點(diǎn)配置子單元,用于調(diào)用所述密鑰用途節(jié)點(diǎn)中賦值對(duì)象的增加節(jié)點(diǎn)方法 創(chuàng)建三級(jí)子元素動(dòng)態(tài)口令節(jié)點(diǎn),在所述動(dòng)態(tài)口令節(jié)點(diǎn)中賦值元素對(duì)象的增加屬性方法增加 所述動(dòng)態(tài)口令節(jié)點(diǎn)的屬性及屬性值;令牌類型確定子單元,用于根據(jù)令牌類型標(biāo)識(shí)符確定令牌類型為事件同步動(dòng)態(tài)令牌或時(shí)間動(dòng)態(tài)令牌;事件同步動(dòng)態(tài)令牌處理子單元,用于如果所述令牌類型是事件同步動(dòng)態(tài)令牌根據(jù)令牌 類型標(biāo)識(shí)符調(diào)用所述數(shù)據(jù)節(jié)點(diǎn)中賦值對(duì)象的增加節(jié)點(diǎn)方法創(chuàng)建三級(jí)子元素計(jì)數(shù)器節(jié)點(diǎn);在 所述計(jì)數(shù)器節(jié)點(diǎn)后標(biāo)識(shí)數(shù)據(jù)節(jié)點(diǎn)的結(jié)尾;調(diào)用所述計(jì)數(shù)器節(jié)點(diǎn)中賦值對(duì)象的增加節(jié)點(diǎn)方法 創(chuàng)建四級(jí)子元素用戶默認(rèn)值節(jié)點(diǎn),調(diào)用所述用戶默認(rèn)值節(jié)點(diǎn)中的賦值對(duì)象的填充節(jié)點(diǎn)方法 填充用戶默認(rèn)值節(jié)點(diǎn),在所述用戶默認(rèn)值節(jié)點(diǎn)后標(biāo)識(shí)計(jì)數(shù)器節(jié)點(diǎn)結(jié)尾;時(shí)間動(dòng)態(tài)令牌處理子單元,用于如果所述令牌類型是時(shí)間動(dòng)態(tài)令牌,調(diào)用所述數(shù)據(jù)節(jié) 點(diǎn)賦值對(duì)象的增加節(jié)點(diǎn)方法創(chuàng)建三級(jí)子元素起始參考時(shí)間節(jié)點(diǎn)和時(shí)鐘周期節(jié)點(diǎn),調(diào)用所述 起始參考時(shí)間節(jié)點(diǎn)和所述時(shí)鐘周期節(jié)點(diǎn)中賦值對(duì)象的增加節(jié)點(diǎn)方法創(chuàng)建四級(jí)子元素用戶 默認(rèn)值節(jié)點(diǎn);調(diào)用所述用戶默認(rèn)值節(jié)點(diǎn)中賦值對(duì)象的填充節(jié)點(diǎn)方法填充用戶默認(rèn)值節(jié)點(diǎn); 在所述用戶默認(rèn)值節(jié)點(diǎn)結(jié)尾后標(biāo)識(shí)起始參考時(shí)間節(jié)點(diǎn)和時(shí)鐘周期節(jié)點(diǎn)結(jié)尾。
17.根據(jù)權(quán)利要求11所述的裝置,其特征在于,所述第三子元素創(chuàng)建模塊包括密鑰設(shè)備節(jié)點(diǎn)設(shè)置單元,用于調(diào)用所述密鑰容器節(jié)點(diǎn)中賦值對(duì)象的增加節(jié)點(diǎn)方法創(chuàng)建 所述密鑰容器節(jié)點(diǎn)的第三子元素節(jié)點(diǎn),將所述第三子元素節(jié)點(diǎn)作為包含令牌種子的密鑰設(shè) IJ ; ^^,令牌節(jié)點(diǎn)創(chuàng)建單元,用于調(diào)用所述密鑰設(shè)備節(jié)點(diǎn)中賦值對(duì)象的增加節(jié)點(diǎn)方法創(chuàng)建令牌 節(jié)點(diǎn),調(diào)用所述令牌節(jié)點(diǎn)中賦值對(duì)象的增加方法增加所述令牌節(jié)點(diǎn)的令牌編號(hào)屬性及屬性 值、令牌類型標(biāo)識(shí)符屬性及所述令牌類型標(biāo)識(shí)符屬性的屬性值;密鑰數(shù)據(jù)節(jié)點(diǎn)創(chuàng)建單元,用于調(diào)用所述令牌節(jié)點(diǎn)中賦值對(duì)象的增加節(jié)點(diǎn)方法創(chuàng)建所述 令牌節(jié)點(diǎn)的子元素密鑰數(shù)據(jù)節(jié)點(diǎn),在所述密鑰數(shù)據(jù)節(jié)點(diǎn)后標(biāo)識(shí)所述令牌節(jié)點(diǎn)的結(jié)尾;令牌種子節(jié)點(diǎn)創(chuàng)建單元,用于調(diào)用所述密鑰數(shù)據(jù)節(jié)點(diǎn)中賦值對(duì)象的增加節(jié)點(diǎn)方法創(chuàng)建 所述密鑰數(shù)據(jù)節(jié)點(diǎn)的子元素令牌種子節(jié)點(diǎn);在所述令牌種子節(jié)點(diǎn)后標(biāo)識(shí)所述密鑰數(shù)據(jù)節(jié)點(diǎn) 的結(jié)尾;密文數(shù)值節(jié)點(diǎn)創(chuàng)建單元,用于調(diào)用所述令牌種子節(jié)點(diǎn)中增加節(jié)點(diǎn)方法創(chuàng)建所述令牌種 子節(jié)點(diǎn)的子元素密文數(shù)值節(jié)點(diǎn),在所述密文數(shù)值節(jié)點(diǎn)后標(biāo)識(shí)所述令牌種子節(jié)點(diǎn)的結(jié)尾。
18.根據(jù)權(quán)利要求17所述的裝置,其特征在于,所述密文數(shù)值節(jié)點(diǎn)創(chuàng)建單元包括第一密文數(shù)值節(jié)點(diǎn)配置子單元,用于調(diào)用所述密文數(shù)值節(jié)點(diǎn)中賦值對(duì)象的增加方法創(chuàng) 建所述密文數(shù)值節(jié)點(diǎn)的兩子元素xenc公共命名空間加密方法節(jié)點(diǎn)和xenc公共命名空間密 文數(shù)據(jù)節(jié)點(diǎn)、調(diào)用所述xenc公共命名空間加密方法節(jié)點(diǎn)賦值對(duì)象的增加節(jié)點(diǎn)屬性方法增 加所述xenc公共命名空間加密方法節(jié)點(diǎn)的算法屬性及令牌種子數(shù)值加密方式標(biāo)識(shí)符的屬 性值;第二密文數(shù)值節(jié)點(diǎn)配置子單元,用于調(diào)用所述xenc公共命名空間密文數(shù)據(jù)節(jié)點(diǎn)中賦 值對(duì)象的增加節(jié)點(diǎn)方法創(chuàng)建xenc公共命名空間密文數(shù)據(jù)節(jié)點(diǎn),在所述xenc公共命名空間 密文數(shù)值節(jié)點(diǎn)后標(biāo)識(shí)xenc公共命名空間密文數(shù)據(jù)節(jié)點(diǎn)的結(jié)尾;第三密文數(shù)值節(jié)點(diǎn)配置子單元,用于創(chuàng)建空白字符型變量,使用AES256加密算法或 3DES加密算法將未加密令牌種子數(shù)值進(jìn)行加密,將加密后的令牌種子數(shù)值賦值所述字符型 變量;調(diào)用所述xenc公共命名空間密文數(shù)據(jù)節(jié)點(diǎn)中賦值對(duì)象的填充節(jié)點(diǎn)方法將所述字符 型變量代表的加密后令牌種子數(shù)值填充在所述密文數(shù)據(jù)節(jié)點(diǎn),在所述加密后令牌種子數(shù)值 后標(biāo)識(shí)所述xenc公共命名空間密文數(shù)值節(jié)點(diǎn)的結(jié)尾。
19.根據(jù)權(quán)利要求18所述的裝置,其特征在于,所述第三密文數(shù)值節(jié)點(diǎn)配置子單元包 括字符型變量賦值子單元,用于將加密后的令牌種子數(shù)值使用BASE64編碼成為字符型數(shù) 值,將所述字符型數(shù)值賦值給所述字符型變量。
20.根據(jù)權(quán)利要求11-19中任一項(xiàng)所述的裝置,其特征在于,所述第三子元素創(chuàng)建模塊 包括密鑰設(shè)備配置單元,用于為第三子元素節(jié)點(diǎn)配置指定個(gè)數(shù)的密鑰設(shè)備節(jié)點(diǎn),并根據(jù)配 置的所述密鑰設(shè)備節(jié)點(diǎn)重復(fù)執(zhí)行所述密鑰設(shè)備節(jié)點(diǎn)的配置過(guò)程,重復(fù)執(zhí)行的次數(shù)為所述指 定個(gè)數(shù)。
全文摘要
本發(fā)明提供了一種生成安全文件的方法及裝置。其中,該方法包括令牌服務(wù)器創(chuàng)建xml文件;令牌服務(wù)器為xml文件創(chuàng)建根元素,并將根元素作為存儲(chǔ)令牌種子的密鑰容器節(jié)點(diǎn),配置密鑰容器節(jié)點(diǎn)的屬性及屬性值;令牌服務(wù)器為根元素創(chuàng)建第一子元素節(jié)點(diǎn),第一子元素節(jié)點(diǎn)用于配置令牌種子的密鑰文件節(jié)點(diǎn);并為根元素創(chuàng)建第二子元素節(jié)點(diǎn),第二子元素節(jié)點(diǎn)用于配置令牌種子的令牌屬性節(jié)點(diǎn);以及為根元素創(chuàng)建第三子元素節(jié)點(diǎn),其中,第三子元素節(jié)點(diǎn)用于配置包含令牌種子的密鑰設(shè)備節(jié)點(diǎn);令牌服務(wù)器將配置后的xml文件作為安全文件。根據(jù)本發(fā)明,解決了因格式轉(zhuǎn)換導(dǎo)致的安全隱患問(wèn)題,并降低了系統(tǒng)導(dǎo)入、導(dǎo)出安全文件時(shí)重要信息被泄露的威脅。
文檔編號(hào)H04L9/32GK102034062SQ20101062039
公開日2011年4月27日 申請(qǐng)日期2010年12月31日 優(yōu)先權(quán)日2010年12月31日
發(fā)明者于華章, 陸舟 申請(qǐng)人:北京飛天誠(chéng)信科技有限公司