CN102034062B - 生成安全文件的方法及装置 - Google Patents
生成安全文件的方法及装置 Download PDFInfo
- Publication number
- CN102034062B CN102034062B CN2010106203923A CN201010620392A CN102034062B CN 102034062 B CN102034062 B CN 102034062B CN 2010106203923 A CN2010106203923 A CN 2010106203923A CN 201010620392 A CN201010620392 A CN 201010620392A CN 102034062 B CN102034062 B CN 102034062B
- Authority
- CN
- China
- Prior art keywords
- node
- token
- key
- attribute
- daughter element
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 265
- 238000004422 calculation algorithm Methods 0.000 claims description 23
- 230000008569 process Effects 0.000 abstract description 18
- 238000006243 chemical reaction Methods 0.000 abstract description 11
- 238000010586 diagram Methods 0.000 description 9
- 230000001360 synchronised effect Effects 0.000 description 8
- 238000004364 calculation method Methods 0.000 description 5
- 238000007726 management method Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 230000008676 import Effects 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000012797 qualification Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Images
Landscapes
- Storage Device Security (AREA)
Abstract
本发明提供了一种生成安全文件的方法及装置。其中,该方法包括:令牌服务器创建xml文件;令牌服务器为xml文件创建根元素,并将根元素作为存储令牌种子的密钥容器节点,配置密钥容器节点的属性及属性值;令牌服务器为根元素创建第一子元素节点,第一子元素节点用于配置令牌种子的密钥文件节点;并为根元素创建第二子元素节点,第二子元素节点用于配置令牌种子的令牌属性节点;以及为根元素创建第三子元素节点,其中,第三子元素节点用于配置包含令牌种子的密钥设备节点;令牌服务器将配置后的xml文件作为安全文件。根据本发明,解决了因格式转换导致的安全隐患问题,并降低了系统导入、导出安全文件时重要信息被泄露的威胁。
Description
技术领域
本发明涉及对信息安全领域,特别涉及一种生成安全文件的方法及装置。
背景技术
XML(Extensible Markup Language)即可扩展标记语言。XML是Internet环境中跨平台的,依赖于内容的技术,是当前处理结构化文档信息的有力工具。它是一种简单的数据存储语言,使用一系列简单的标记描述数据,而这些标记可以用方便的方式建立,XML极其简单易于掌握和使用。XML展示数据,显示内容简单。Dom4j是一个Java的XML API,类似于jdom,用来读写XML文件的。Dom4j最大的特色是使用大量的接口,这也是它被认为比JDOM灵活的主要原因。Dom4j是一个易用的、开源的库,用于XML,XPath和XSLT,它应用于Java平台,采用了Java集合框架并完全支持DOM,SAX和JAXP。
在现有技术中,对称加密采用了对称密码编码技术,它的特点是文件加密和解密使用相同的密钥,即加密密钥也可以用作解密密钥,这种方法在密码学中叫做对称加密算法,对称加密算法使用起来简单快捷,密钥较短,且破译困难。在越来越多的基于对称密钥的认证系统,如一次性密码或挑战应答机制的认证系统,需要一个标准的格式用于系统间的导入导出(或产生)基于认证凭据的安全文件。未加密的安全文件在导入、导出时安全性也会受到威胁,使客户的隐蔽资料外泄。在不同系统中,例如认证授权销售方的安全管理系统和服务提供者的安全管理系统,存在数据格式不兼容的尴尬局面,需要转换成各自安全管理系统兼容的格式,该方式也增加了重要信息泄露的几率。
由上可知,现有技术中未加密的安全文件在系统导入、导出时其安全性受到威胁,会造成重要的安全信息外漏;同时,不同的安全管理系统之间存在数据格式不兼容的情况,导致该重要信息使用过程中存在安全隐患。
发明内容
本发明的主要目的在于提供一种生成安全文件的方法及装置,以至少解决上述重要信息使用过程中的存在安全隐患问题。
根据本发明的一个方面,提供了一种生成安全文件的方法,该方法包括:令牌服务器创建xml文件;令牌服务器为xml文件创建根元素,并将根元素作为存储令牌种子的密钥容器节点,配置密钥容器节点的属性及属性值;令牌服务器为根元素创建第一子元素节点;其中,第一子元素节点用于配置令牌种子的密钥文件节点,密钥文件节点包括解密密钥文件名称;令牌服务器为根元素创建第二子元素节点;其中,第二子元素节点用于配置包含令牌种子的令牌属性节点;令牌服务器为根元素创建第三子元素节点,其中,第三子元素节点用于配置包含令牌种子的密钥设备节点;令牌种子加密后保存在密钥设备节点;密钥设备节点的配置过程包括:令牌服务器为第三子元素节点创建令牌节点,并根据第三子元素节点配置的密钥设备设置令牌节点的属性,令牌节点的属性包括令牌编号和令牌类型标识符;根据令牌节点的编号和令牌类型标识符为令牌节点创建密钥数据节点,密钥数据节点包括解密令牌种子的密钥、加密方式信息、加密后的密文;令牌服务器将配置后的xml文件作为安全文件。
根据本发明的另一方面,提供了一种生成安全文件的装置,该装置包括:文件创建模块,用于创建xml文件;根元素创建模块,用于为xml文件创建根元素,并将根元素作为存储令牌种子的密钥容器节点,配置密钥容器节点的属性及属性值;第一子元素创建模块,用于为根元素创建第一子元素节点;其中,第一子元素节点用于配置令牌种子的密钥文件节点,密钥文件节点包括解密密钥文件名称;第二子元素创建模块,用于为根元素创建第二子元素节点;其中,第二子元素节点用于配置包含令牌种子的令牌属性节点;第三子元素创建模块,用于为根元素创建第三子元素节点,其中,第三子元素节点用于配置包含令牌种子的密钥设备节点;令牌种子加密后保存在密钥设备节点;密钥设备节点的配置过程包括:为第三子元素节点创建令牌节点,并根据第三子元素节点配置的密钥设备设置令牌节点的属性,令牌节点的属性包括令牌编号和令牌类型标识符;根据令牌节点的编号和令牌类型标识符为令牌节点创建密钥数据节点,密钥数据节点包括解密令牌种子的密钥、加密方式信息、加密后的密文;文件生成模块,用于将配置后的xml文件作为安全文件。
通过本发明,采用xml文件的格式创建安全文件,使该安全文件能够兼容各种系统,而不需要对安全文件进行格式转换,因此解决了因格式转换导致的安全隐患问题;同时,本发明在配置安全文件中各节点时,采用对令牌种子加密的方式配置密钥设备对应的节点(即第三子元素节点),该方式进一步降低了系统导入、导出安全文件时重要信息被泄露的威胁。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例1的生成安全文件的方法流程图;
图2是根据本发明实施例2的生成安全文件的方法流程图;
图3是根据本发明实施例2的令牌服务器配置第二子元素节点的方法流程图;
图4是根据本发明实施例2的配置第三子元素节点的方法流程图;
图5是根据本发明实施例2的令牌服务器增加令牌节点的属性值的方法流程图;
图6是根据本发明实施例2的令牌服务器增加xenc公共命名空间加密方法节点的算法属性值的方法流程图;
图7是根据本发明实施例2的令牌服务器创建字符型变量的方法流程图;
图8是根据本发明实施例3的生成安全文件的装置结构框图;
图9是根据本发明实施例4的生成安全文件的系统结构框图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
本发明实施例中的密钥容器中包含多个密钥设备(也称为令牌),其中,令牌分为事件性和时间性两种类型,令牌通过加密令牌种子产生动态口令,密钥是解密令牌种子时需要输入的数据。
实施例1
参见图1,本实施例提供了一种生成安全文件的方法,在本实施例中,令牌服务器使用xml组件dom4j包完成创建xml文件等操作。除了dom4j之外,还可使用JDOM、XStream等其他现有组件完成相同的操作,操作过程中调用的具体函数、方法及接口不在本发明的范围之内。
该方法包括以下步骤:
步骤S102,令牌服务器创建xml文件;
本实施例中创建xml文件具体指:令牌服务器引用xml组件dom4j包中的文档帮助对象中的创建文档方法创建xml文件,引用该xml组件dom4j包中的文档对象,为该xml文件赋值文档对象名称;以及令牌服务器生成该xml文件的头节点的版本号属性和编码规范属性,并声明该头节点的版本号属性和编码规范属性。
步骤S104,令牌服务器为xml文件创建根元素,并将根元素作为存储令牌种子的密钥容器节点,配置密钥容器节点的属性及属性值;该步骤具体包括:
1)令牌服务器调用xml组件dom4j包中的文档对象的增加节点方法,为该xml文件创建根元素;
2)令牌服务器将该根元素作为存储令牌种子的密钥容器节点;
3)令牌服务器调用上述密钥容器节点中赋值元素对象的增加属性方法配置密钥容器节点的属性及属性值,并在该xml文件最后一行标识上述密钥容器节点的结尾。
步骤S106,令牌服务器为根元素创建第一子元素节点;其中,第一子元素节点用于配置密钥文件节点,密钥文件节点包括解密密钥文件名称;本步骤具体包括:
1)令牌服务器调用上述密钥容器节点中根元素对象的增加节点方法创建第一子元素节点,将该第一子元素节点作为令牌种子的密钥文件节点;
2)令牌服务器调用上述第一子元素节点中赋值元素对象的增加节点方法创建密钥文件节点的子元素节点,将该密钥文件节点的子元素节点作为解密密钥文件名称节点;在该解密密钥文件名称节点中赋值元素对象,调用该赋值元素对象的填充节点方法将解密密钥文件名称填充在该解密密钥文件名称节点,在该解密密钥文件名称节点后标识上述密钥文件节点的结尾。
步骤S108,令牌服务器为根元素创建第二子元素节点;其中,第二子元素节点用于配置包含令牌种子的令牌属性节点;
本步骤中,令牌服务器调用上述密钥容器节点中赋值元素对象的增加节点方法创建第二子元素节点,将该第二子元素节点作为包含令牌种子的令牌属性节点,在令牌属性节点中赋值元素对象,并根据上述密钥容器节点中的令牌种子的令牌类型增加令牌属性节点的属性及属性值,其中,令牌属性节点的属性包括:公共命名空间标示符和令牌算法两个属性。
优选地,根据密钥容器节点中的密钥设备的令牌类型增加令牌属性节点的属性及属性值包括以下步骤:
1)令牌服务器调用令牌属性节点中的赋值元素对象的增加节点方法创建令牌属性节点的两个二级子元素节点,将两个二级子元素节点分别作为密钥用途节点和数据节点;
2)令牌服务器调用密钥用途节点中赋值对象的增加属性方法增加密钥用途节点的动态令牌属性及属性值,并在数据节点后标识令牌属性节点的结尾;
3)令牌服务器调用密钥用途节点中赋值对象的增加节点方法创建三级子元素动态口令节点,在动态口令节点中赋值元素对象的增加属性方法增加动态口令节点的属性及属性值;
4)令牌服务器根据令牌类型标识符确定令牌类型为事件同步动态令牌或时间动态令牌;例如,令牌类型标识符为1,则确定令牌类型为事件同步动态令牌;令牌类型标识符为0,则确定令牌类型为时间动态令牌;
5)如果令牌类型是事件同步动态令牌,令牌服务器根据令牌类型标识符调用数据节点中赋值对象的增加节点方法创建三级子元素计数器节点;在计数器节点后标识数据节点的结尾;调用计数器节点中赋值对象的增加节点方法创建四级子元素用户默认值节点,调用用户默认值节点中的赋值对象的填充节点方法填充用户默认值节点,在用户默认值节点后标识计数器节点结尾;
6)如果令牌类型是时间动态令牌,令牌服务器调用数据节点赋值对象的增加节点方法创建三级子元素起始参考时间节点和时钟周期节点,调用起始参考时间节点和时钟周期节点中赋值对象的增加节点方法创建四级子元素用户默认值节点;调用用户默认值节点中赋值对象的填充节点方法填充用户默认值节点;在用户默认值节点结尾后标识起始参考时间节点和时钟周期节点结尾。
其中,起始参考时间接待和时钟周期节点赋值对象的名称不一样。
步骤S110,令牌服务器为根元素创建第三子元素节点,其中,第三子元素节点用于配置包含令牌种子的密钥设备节点;所述令牌种子加密后保存在该密钥设备节点。具体地,本步骤还包括配置第三子元素节点,即还包括密钥设备节点的配置过程,该配置过程包括:
1)令牌服务器为第三子元素节点创建令牌节点,并根据第三子元素节点配置的密钥设备设置令牌节点的属性,令牌节点的属性包括令牌编号和令牌类型标识符;
2)令牌服务器根据令牌节点的编号和令牌类型标识符为令牌节点创建密钥数据节点,密钥数据节点包括解密令牌种子的密钥、加密方式信息、加密后的密文。
优选地,令牌服务器为根元素创建第三子元素节点包括:令牌服务器调用密钥容器节点中赋值对象的增加节点方法创建密钥容器节点的第三子元素节点,将第三子元素节点作为包含令牌种子的密钥设备节点;
令牌服务器为第三子元素节点创建令牌节点包括:令牌服务器调用密钥设备节点中赋值对象的增加节点方法创建令牌节点,调用令牌节点中赋值对象的增加方法增加令牌节点的令牌编号属性及属性值、令牌类型标识符属性及令牌类型标识符属性的属性值;
根据令牌节点的编号和令牌类型标识符为令牌节点创建密钥数据节点包括:令牌服务器调用令牌节点中赋值对象的增加节点方法创建令牌节点的子元素密钥数据节点,在密钥数据节点后标识令牌节点的结尾;调用密钥数据节点中赋值对象的增加节点方法创建密钥数据节点的子元素令牌种子节点;在令牌种子节点后标识密钥数据节点的结尾;令牌服务器调用令牌种子节点中增加节点方法创建令牌种子节点的子元素密文数值节点,在密文数值节点后标识令牌种子节点的结尾。
其中,令牌服务器调用令牌种子节点中增加节点方法创建令牌种子节点的子元素密文数值节点包括:
令牌服务器调用密文数值节点中赋值对象的增加方法创建密文数值节点的两子元素xenc公共命名空间加密方法节点和xenc公共命名空间密文数据节点、调用xenc公共命名空间加密方法节点赋值对象的增加节点属性方法增加xenc公共命名空间加密方法节点的算法属性及令牌种子数值加密方式标识符的属性值;
令牌服务器调用xenc公共命名空间密文数据节点中赋值对象的增加节点方法创建xenc公共命名空间密文数据节点,在xenc公共命名空间密文数值节点后标识xenc公共命名空间密文数据节点的结尾;
令牌服务器创建空白字符型变量,使用AES256加密算法或3DES加密算法将未加密令牌种子数值进行加密,将加密后的令牌种子数值赋值字符型变量;调用xenc公共命名空间密文数据节点中赋值对象的填充节点方法将字符型变量代表的加密后令牌种子数值填充在上述密文数据节点,在加密后令牌种子数值后标识该xenc公共命名空间密文数值节点的结尾。
优选地,将加密后的令牌种子数值赋值所述字符型变量包括:将加密后的令牌种子数值使用BASE64编码成为字符型数值,将该字符型数值赋值给上述字符型变量。
优选地,本发明实施例中的第三子元素节点用于配置指定个数的密钥设备节点,并根据配置的密钥设备节点重复执行上述步骤S110中的密钥设备节点的配置过程,重复执行的次数为指定个数。
步骤S112,令牌服务器将配置后的xml文件作为安全文件。
本实施例通过采用xml文件的格式创建安全文件,使该安全文件能够兼容各种系统,而不需要对安全文件进行格式转换,因此解决了因格式转换导致的安全隐患问题;同时,本实施例在配置安全文件中各节点时,采用对令牌种子加密的方式配置密钥设备对应的节点(即第三子元素节点),该方式进一步降低了系统导入、导出安全文件时重要信息被泄露的威胁。
实施例2
参见图2,本实施例提供了一种生成安全文件的方法,该方法具体包括以下步骤:
步骤S201,令牌服务器创建一个xml文件,本实施例具体为令牌服务器引用xml组件dom4j包中DocumentHelper(文档帮助)对象中的createDocument方法创建一个XML文档,引用xml组件dom4j包中Document对象,赋值Document对象名称Document;
步骤S202,令牌服务器自动生成头节点,例如,自动生成XML文件的第一行头节点<xml>的version(版本号)属性和encoding(编码规范)属性;声明头节点<xml>的version(版本号)为1.0,头节点<xml>的encoding(编码规范)为UTF-8(变长字符编码);
具体地,XML文档类型声明为:<?xml version=”1.0”encoding=”UTF-8”?>。
步骤S203,令牌服务器创建根元素,作为令牌种子的密钥容器节点,本实施例中密钥容器的作用是存储密钥设备的容器,具体创建过程包括:令牌服务器调用document对象的addElement(增加节点)方法创建根元素<KeyContainer>(密钥容器)节点;在根元素<KeyContainer>(密钥容器)节点中引用xml组件dom4j包中Element对象,赋值Element对象名称elemRoot;调用elemRoot对象的addAttribute(增加属性)方法增加根元素<KeyContainer>(密钥容器)节点四个属性Version(版本号)属性,属性值1.0;xmlns(xmlns公共命名空间)空间地址属性,属性值urn:ietf:params:xml:ns:keyprov:pskc:1.0;xmlns:ds(ds公共命名空间)空间地址属性,属性值http://www.w3.org/2000/09/xmldsig#;xmlns:xenc(xenc公共命名空间)空间地址属性,属性值http://www.w3.org/2001/04/xmlenc#;XML文件最后一行标识根元素的结尾</KeyContainer>;
根元素<KeyContainer>(密钥容器)节点具体为:
<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,令牌服务器创建第一子元素节点,将该节点用于配置令牌种子的密钥文件节点,其中,密钥文件节点包含了解密密钥文件名称;具体创建过程包括:令牌服务器调用根元素<KeyContainer>(密钥容器)节点中elemRoot对象的addElement方法创建根元素<KeyContainer>(密钥容器)节点的第一子元素<EncryptionKey>(密钥文件)节点;在第一子元素<EncryptionKey>(密钥文件)节点中引用xml组件dom 4j包中Element(元素)对象,赋值Element对象名称encryptionElem;
步骤S204还具体包括如下步骤:
令牌服务器创建<EncryptionKey>(密钥文件)节点的子元素<ds:KeyName>(解密密钥文件名称)节点;具体创建过程包括:令牌服务器调用第一子元素<EncryptionKey>(密钥文件)节点中encryptionElem对象的addElement方法创建<ds:KeyName>(解密密钥文件名称)节点;在<ds:KeyName>(解密密钥文件名称)节点中赋值Element对象名称keyNameElem,调用keyNameElem对象的setText(填充节点)方法将解密密钥文件名称填充在<ds:KeyName>(解密密钥文件名称)节点,在<ds:KeyName>(解密密钥文件名称)节点后标识<EncryptionKey>节点的结尾</EncryptionKey>;
在本步骤中,时间同步令牌的解密密钥文件名称为3DES_KEY.cer;事件同步令牌的解密密钥文件名称为c_KEY.cer。
具体地,在时间同步令牌中<EncryptionKey>(密钥文件)节点为:
<EncryptionKey>
<ds:KeyName>3DES KEY.cer</ds:KeyName>
</EncryptionKey>
在事件同步令牌中<EncryptionKey>(密钥文件)节点具体为:
<EncryptionKey>
<ds:KeyName>c_KEY.cer</ds:KeyName>
</EncryptionKey>
步骤S205,令牌服务器创建第二子元素节点,将该节点用于配置包含令牌种子的令牌属性节点,具体创建过程包括:调用根元素<KeyContainer>(密钥容器)节点中elemRoot对象的addElement方法创建根元素<KeyContainer>(密钥容器)节点的第二子元素<KeyProperties>(令牌属性)节点;在<KeyProperties>(令牌属性)节点中引用xml组件dom4j包中Element(元素)对象,赋值Element对象名称keyProperElem;
参见图3,令牌服务器配置第二子元素节点的方法具体包括:
步骤S205-1,令牌服务器判断令牌类型标识符是否为1;如果是1,则令牌类型为事件同步动态令牌,执行步骤S205-2,否则令牌类型为时间同步动态令牌,执行步骤S205-3;
在本实施例步骤S205-1中,令牌类型标识符是令牌服务器中outform(令牌出库)对象的getofmotptype()方法返回值;
步骤S205-2,令牌服务器调用<KeyProperties>(令牌属性)节点中keyProperElem对象的addAttribute方法增加<KeyProperties>(令牌属性)节点的2个属性xml:id(公共命名空间标识符)属性,属性值为HOTPKPID;KeyAlgorithm(令牌算法)属性,属性值为http://www.ietf.org/keyprov/pskc#hotp;
步骤S205-3,令牌服务器调用<KeyProperties>(令牌属性)节点中keyProperElem对象的addAttribute方法增加第二子元素<KeyProperties>(令牌属性)节点的2个属性:xml:id(公共命名空间标识符)属性,属性值为TOTPKPID;KeyAlgorithm(令牌算法)属性,属性值为http://www.ietf.org/keyprov/pskc#totp;
步骤S205-4,令牌服务器创建令牌属性节点的子元素:密钥用途节点和数据节点,即指令牌属性为密钥用途和密钥数据,其中,密钥用途指定为OTP(动态令牌),具体指动态口令的数据格式和动态口令长度,密钥数据指加密形式或非加密形式的密钥八位字节数据;
本实施例创建令牌属性节点的子元素可以具体为:调用<KeyProperties>(令牌属性)节点中keyProperElem对象的addElement方法创建<KeyProperties>(令牌属性)节点的两个二级子元素<Usage>(密钥用途)节点和<Data>(数据)节点,在<Usage>(密钥用途)节点中引用xml组件dom4j包中Element(元素)对象,赋值Element对象名称usageElem;调用usageElem对象的addAttribute方法增加<Usage>(密钥用途)节点的OTP(动态令牌)属性,属性值为true;在<Data>(数据)节点中引用xml组件dom4j包中Element对象,赋值Element对象名称为dataElem;<Data>(数据)节点后标识<KeyProperties>(令牌属性)节点的结尾</KeyProperties>;
步骤S205-5,令牌服务器创建三级子元素节点,该节点用于配置动态口令的数值格式和动态口令长度,具体创建过程包括:令牌服务器调用<Usage>(密钥用途)节点中usageElem对象的addElement方法创建三级子元素<ResponseFormat>(动态口令)节点,在<ResponseFormat>(动态口令)节点中引用xml组件dom4j包中Element对象,赋值Element对象名称为responseElem;调用responseElem对象的addAttribute方法增加<ResponseFormat>(动态口令)节点的两个属性Format(数值格式)属性,属性值为DECIMAL;Length(动态口令长度)属性,属性值为6,具体地6代表6位十进制数字;
步骤S205-6,令牌服务器判断令牌类型标识符是否为1,如果是1,则令牌类型为事件同步动态令牌,执行步骤S205-7,否则令牌类型为时间动态令牌,执行步骤S205-9;
令牌服务器判断令牌的类型,在事件同步令牌中密钥数据指计数器,计数器中包含了用户默认值节点,用户默认值节点是指安全文件从令牌服务器导入到用户服务器的数据库中,用户数据库中与安全文件对应的字节使用数字零填充。在时间同步令牌中,密钥数据包含起始参考时间节点和时间周期节点,起始参考时间是指重置时间默认值为0,时间周期是指每60秒产生一个新口令。
在本实施例步骤S205-6中,令牌类型标识符是令牌服务器中outform(令牌出库)对象的getofmotptype()方法返回值;
步骤S205-7,令牌服务器创建三级子元素节点,该节点的具体创建过程包括:令牌服务器调用<Data>(数据)节点中dataElem对象的addElement方法创建三级子元素<Counter>(计数器)节点;在<Counter>(计数器)节点中引用xml组件dom4j包中Element对象,赋值Element对象名称为counterElem;<Counter>(计数器)节点后标识<Data>(数据)节点的结尾</Data>;
步骤S205-8,令牌服务器创建四级子元素节点,该节点用于配置用户默认值,具体创建过程包括:令牌服务器调用<Counter>(计数器)节点中counterElem对象的addElement方法创建四级子元素<PlainValue>(用户默认值)节点,在<PlainValue>(用户默认值)节点中引用xml组件dom4j包中Element对象,赋值Element对象名称plainElem;调用plainElem对象的setText方法将数字0填充在<PlainValue>(用户默认值)节点;<PlainValue>(用户默认值)节点后标识<Counter>(计数器)节点结尾</Counter>。
步骤S205-9,令牌服务器创建三级子元素节点,具体创建过程包括:令牌服务器调用<Data>(数据)节点中dataElem对象的addElement方法创建三级子元素<Time>(起始参考时间)节点和<TimeInterval>(时钟周期)节点,在<Time>节点中引用上xml组件dom4j包中Element对象,赋值Element对象的名称为timeElem,在<TimeInterval>(时钟周期)节点中引用上xml组件dom4j包中Element对象,赋值Element对象的名称timeIntervalElem;
步骤S205-10,令牌服务器创建四级子元素节点,该节点用于配置起始参考时间的默认值,具体创建过程包括:令牌服务器调用<Time>(起始参考时间)节点中timeElem对象的addElement方法创建四级子元素<PlainValue>(用户默认值)节点;在<PlainValue>(用户默认值)节点中引用上xml组件dom4j包中Element对象,赋值Element对象的名称为plainElem;调用plainElem对象的setText方法将数字0填充在<PlainValue>(用户默认值)节点;<PlainValue>(用户默认值)节点结尾后标识<Time>(起始参考时间)节点结尾</Time>;
步骤S205-11,令牌服务器创建四级子元素节点,该节点用于配置时钟周期的默认值,具体创建过程包括:令牌服务器调用<TimeInterval>(时钟周期)节点中timeIntervalFlem对象的addElement方法创建四级子元素<PlainValue>(用户默认值)节点;在<PlainValue>(用户默认值)节点中引用上xml组件dom 4j包中Element对象,赋值Element对象名称为valPlainElem;调用valPlainElem对象的setText方法将数字60填充<PlainValue>(用户默认值)节点,<PlainValue>(用户默认值)节点后标识<TimeInterval>(时钟周期)节点的结尾</TimeInterval>;
在事件同步令牌中<KeyProperties>(令牌属性)节点为:
<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>
在时间同步令牌中<KeyProperties>(令牌属性)节点为:
<KeyProperties
xml:id=″TOTPKPID″
KeyAlgorithm=″http://www.ietf.org/keyprov/pskc#totp″>
<Usage OTP=″true″>
<ResponseFormat Format=″DECIMAL″Length=″6″/>
</Usage>
<Data>
<Time>
<P1ainValue>0</Plain Value>
</Time>
<TimeInterval>
<PlainValue>60</PlainValue>
</TimeInterval>
</Data>
</KeyProperties>
步骤S206,令牌服务器创建第三子元素节点,将该节点用于配置包含令牌种子的密钥设备节点,令牌种子加密后保存在该密钥设备节点。例如调用根元素<KeyContainer>(密钥容器)节点中elemRoot对象的addElement方法创建根元素<KeyContainer>(密钥容器)节点的第三子元素<Device>(密钥设备)节点;在素<Device>(密钥设备)节点中引用xml组件dom4j包中Element对象,赋值Element对象名称为deviceElem;
在步骤S206中,根元素下可存在多个<Device>(密钥设备)节点,密钥设备节点创建过程反复执行步骤S206及其包含的具体方法。
参见图4,本实施例中配置第三子元素节点(密钥设备节点)的方法具体包括:
步骤S206-l,令牌服务器创建令牌的属性和时间同步令牌类型标识符、事件同步令牌类型标识符和令牌编号。
需要说明,不同的令牌对应不同编号;本实施例中,令牌服务器调用deviceElem对象的addElement方法创建子元素<Key>(令牌)节点,在<Key>(令牌)节点中引用xml组件dom 4j包中Element对象,赋值Element对象名称keyElem;调用keyElem对象的addAttribute方法增加<Key>(令牌)节点的2个属性,KeyId(令牌编号)属性,属性值为1830409996401、KeyProperties(令牌类型标识符)属性;在<Key>(令牌)节点后标识<Device>(密钥设备)节点的结尾</Device>;
在本实施例步骤S206-1中,KeyId(令牌编号)属性值对应不同的<Device>(密钥设备)节点。参见图5,步骤S206-1还具体包括:
步骤S206-1-1,令牌服务器判断令牌类型标识符是否为1;如果是,则令牌类型为事件同步动态令牌,执行步骤S206-1-2,否则令牌类型为时间同步动态令牌,执行步骤S206-1-3;
步骤S206-1-2,令牌服务器增加<Key>(令牌)节点的KeyProperties(令牌类型标识符)属性值为HOTPKPID;
步骤S206-1-3,令牌服务器增加<Key>(令牌)节点的KeyProperties(令牌类型标识符)属性值为TOTPKPID;
步骤S206-2,令牌服务器创建二级子元素节点,该节点用于配置密钥数据,具体创建过程包括:令牌服务器调用keyElem对象的addElement方法创建<Key>(令牌)节点子元素<Data>(密钥数据)节点;在<Data>(密钥数据)节点中引用xml组件dom4j包中Element对象,赋值Element对象名称为keyDataElem,<Data>(密钥数据)节点后标识第三级<Key>(令牌)节点的结尾</Key>;
步骤S206-3,令牌服务器创建二级子元素节点,该节点用于配置令牌种子,具体创建过程包括:令牌服务器调用keyDataElem对象的addElement方法创建<Data>(密钥数据)节点子元素<Secret>(令牌种子)节点;在<Secret>(令牌种子)节点中引用xml组件dom4j包中Element对象,赋值Element对象名称为keySecretElem,<Secret>(令牌种子)节点后标识<Data>(密钥数据)节点的结尾</Data>;
步骤S206-4,令牌服务器创建子元素节点,该节点用于配置密文数值,具体创建过程包括:令牌服务器调用keySecretElem对象的addElement方法创建<Secret>(令牌种子)节点的子元素<EncryptedValue>(密文数值)节点;在<EncryptedValue>(密文数值)节点中引用xml组件dom4j包中Element对象,赋值Element对象名称为keyEncryElem,<EncryptedValue>(密文数值)节点后标识第五级<Secret>(令牌种子)节点的结尾</Secret>;
步骤S206-5,令牌服务器创建二级子元素节点,该节点用于配置公共命名空间加密方式,具体创建过程包括:令牌服务器调用keyEncryElem对象的addElement方法创建<EncryptedValue>(密文数值)节点的两子元素<xenc:EncryptionMethod>(xenc公共命名空间加密方法)节点和<xenc:CipherData>(xenc公共命名空间密文数据)节点;在<xenc:EncryptionMethod>(xenc公共命名空间加密方法)节点中引用xml组件dom4j包中Element对象,赋值Element对象的名称为keyXencEncryElem;在<xenc:CipherData>(xenc公共命名空间密文数据)节点中引用xml组件dom4j包中Element对象,赋值Element对象的名称为keyXencCipherElem;令牌服务器调用keyXencEncryElem对象的addAttribute方法增加<xenc:EncryptionMethod>(xenc公共命名空间加密方法)节点的Algorithm(算法)属性;
参见图6,上述步骤S206-5还具体包括:
步骤S206-5-1,令牌服务器判断令牌种子数值加密方式标识符是否为1,如果数值为1,则令牌种子数值加密方式为3DES方法,执行步骤S206-5-2;如果数值为0,则令牌种子数值加密方式为AES256方法,执行步骤S206-5-3;
在本实施例步骤S206-5中,令牌种子数值加密方式标识符为令牌服务器中outform(令牌出库)对象的getofmenctype()方法返回值。
步骤S206-5-2,令牌服务器增加<xenc:EncryptionMethod>(xenc公共命名空间加密方法)节点的Algorithm(算法)属性值为http://www.w3.org/2001/04/xmlenc#tripledes-cbc″;
步骤S206-5-3,令牌服务器增加<xenc:EncryptionMethod>(xenc公共命名空间加密方法)节点的Algorithm(算法)属性值为http://www.w3.org/200I/04/xmlenc#aes256-cbc″。
步骤S206-6,令牌服务器创建二级子元素节点,该节点用于配置密文数据,具体创建过程包括:令牌服务器调用keyXencCipherElem对象的addElement方法创建<xenc:CipherData>(xenc公共命名空间密文数据)节点子元素<xenc:CipherValue>(密文数值)节点,在<xenc:CipherValue>(密文数值)节点中引用xml组件dom 4j包中Element对象,赋值Element对象的名称为keyCipherVElem;<xenc:CipherValue>(xenc公共命名空间密文数值)节点后标识<xenc:CipherData>(xenc公共命名空间密文数据)节点的结尾</xenc:CipherData>;
步骤S206-7,令牌服务器根据令牌种子数值加密方式标识符创建空白字符型变量;参见图7,步骤S206-7具体包括:
步骤S206-7-1,令牌服务器判断令牌种子数值加密方式标识符是否为1,如果数值为1,令牌种子数值加密方式为3DES方法,执行步骤S206-7-2,如果数值为0,令牌种子数值加密方式为256AES方法,执行步骤S206-7-3;
步骤S206-7-2,令牌服务器创建空白字符型变量tknpubkey,使用3DES加密算法将未加密令牌种子数值进行加密,将加密后令牌种子数值使用BASE64编码成为字符型数值后赋值给字符型变量tknpubkey;
步骤S206-7-3,令牌服务器创建空白字符型变量tknpubkey,使用AES256加密算法将未加密令牌种子数值进行加密,将加密后令牌种子数值使用BASE64编码成为字符型数值后赋值给字符型变量tknpubkey。
步骤S206-8,令牌服务器调用keyCipherVElem对象的setText方法将字符型变量tknpubkey代表的加密后令牌种子数值填充在<xenc:CipherValue>(xenc公共命名空间密文数值)节点;在加密后令牌种子数值后标识<xenc:CipherValue>(xenc公共命名空间密文数值)节点的结尾</xenc:CipherValue>。
在事件同步令牌中<Device>(密钥设备)节点为:
<Device>
<Key
KeyId=″1830409996401″KeyProperties=″FTHOTPKPID″>
<Data>
<Secret>
<EncryptedValue>
<xenc:EncryptionMethod
Algorithm=″http://www.w3.org/2001/04/xmlenc#aes256-cbc″/>
<xenc:CipherData>
<xenc:CipherValue>
oZPRDGHkCLLaZumdXPInDTz28/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>
R0TI1NHn4NDW/SeyDLG19sF9W5awokD7WhGpiIKleVU=
</xenc:CipherValue>
</xenc:CipherData>
</EncryptedValue>
</Secret>
</Data>
</Key>
</Device>
在时间同步令牌中<Device>(密钥设备)节点为:
<Device>
<Key
KeyId=″FTK2000BZVBHFR93″KeyProperties=″TOTPKPID″>
<Data>
<Secret>
<EncryptedValue>
<xenc:EncryptionMethod
Algorithm=″http://www.w3.org/2001/04/xmlenc#tripledes-cbc″/>
<xenc:CipherData>
<xenc:CipherValue>
47BQg77KIVQWz4XEh6RfcWweWUViRxrOdyV1kAmmZeg=
</xenc:CipherValue>
</xenc:CipherData>
</EncryptedValue>
</Secret>
</Data>
</Key>
</Device>
<Device>
<Key
KeyId=″FTK2000BZWOL9V84″
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,令牌服务器使用creatXML方法将配置好的数据结构输出到后缀名为XML的文本文件中生成安全文件。
本实施例通过采用xml文件的格式创建安全文件,使该安全文件能够兼容各种系统,而不需要对安全文件进行格式转换,因此解决了因格式转换导致的安全隐患问题;同时,本实施例在配置安全文件中各节点时,采用对令牌种子加密的方式配置密钥设备对应的节点(即第三子元素节点),该方式进一步降低了系统导入、导出安全文件时重要信息被泄露的威胁。
实施例3
参见图8,本实施例提供了一种生成安全文件的装置,该装置可以设置在令牌服务器上,该装置包括以下模块:
文件创建模块81,用于创建xml文件;
根元素创建模块82,与文件创建模块81相连,用于为xml文件创建根元素,并将根元素作为存储令牌种子的密钥容器节点,配置密钥容器节点的属性及属性值;
第一子元素创建模块83,与根元素创建模块82相连,用于为根元素创建第一子元素节点;其中,第一子元素节点用于配置令牌种子的密钥文件节点,密钥文件节点包括解密密钥文件名称;
第二子元素创建模块84,与根元素创建模块82相连,用于为根元素创建第二子元素节点;其中,第二子元素节点用于配置包含令牌种子的令牌属性节点;
第三子元素创建模块85,与根元素创建模块82相连,用于为根元素创建第三子元素节点,其中,第三子元素节点用于配置包含令牌种子的密钥设备节点;令牌种子加密后保存在该密钥设备节点;该密钥设备节点的配置过程包括:为第三子元素节点创建令牌节点,并根据第三子元素节点配置的密钥设备设置令牌节点的属性,令牌节点的属性包括令牌编号和令牌类型标识符;根据令牌节点的编号和令牌类型标识符为令牌节点创建密钥数据节点,密钥数据节点包括解密令牌种子的密钥、加密方式信息、加密后的密文;
文件生成模块86,与第一子元素创建模块83、第二子元素创建模块84和第三子元素创建模块85相连,用于将配置后的xml文件作为安全文件。
优选地,文件创建模块81包括:
文件创建单元,用于引用xml组件dom4j包中的文档帮助对象中的创建文档方法创建xml文件;
赋值文档对象名称单元,用于引用xml组件dom4j包中的文档对象,为xml文件赋值文档对象名称;
头节点生成单元,用于生成xml文件的头节点的版本号属性和编码规范属性,并声明头节点的版本号属性和编码规范属性。
根元素创建模块82包括:
根元素创建单元,用于调用xml组件dom4j包中的文档对象的增加节点方法,为xml文件创建根元素;
密钥容器节点设置单元,用于将根元素作为存储令牌种子的密钥容器节点;
密钥容器节点配置单元,用于调用密钥容器节点中赋值元素对象的增加属性方法配置密钥容器节点的属性及属性值,并在xml文件最后一行标识密钥容器节点的结尾。
第一子元素创建模块83包括:
密钥文件节点设置单元,用于调用密钥容器节点中根元素对象的增加节点方法创建第一子元素节点,将第一子元素节点作为令牌种子的密钥文件节点;
解密密钥文件名称节点设置单元,用于调用第一子元素节点中赋值元素对象的增加节点方法创建密钥文件节点的子元素节点,将密钥文件节点的子元素节点作为解密密钥文件名称节点;
解密密钥文件名称节点配置单元,用于在解密密钥文件名称节点中赋值元素对象,调用赋值元素对象的填充节点方法将解密密钥文件名称填充在解密密钥文件名称节点,在解密密钥文件名称节点后标识密钥文件节点的结尾。
第二子元素创建模块84包括:
令牌属性节点设置单元,用于调用密钥容器节点中赋值元素对象的增加节点方法创建第二子元素节点,将第二子元素节点作为包含令牌种子的令牌属性节点;
令牌属性节点配置单元,用于在令牌属性节点中赋值元素对象,并根据密钥容器节点中的令牌种子的令牌类型增加令牌属性节点的属性及属性值。
其中,令牌属性节点配置单元包括:
二级子元素节点设置子单元,用于调用令牌属性节点中的赋值元素对象的增加节点方法创建令牌属性节点的两个二级子元素节点,将两个二级子元素节点分别作为密钥用途节点和数据节点;
二级子元素节点配置子单元,用于调用密钥用途节点中赋值对象的增加属性方法增加密钥用途节点的动态令牌属性及属性值,并在数据节点后标识令牌属性节点的结尾;
三级子元素节点配置子单元,用于调用密钥用途节点中赋值对象的增加节点方法创建三级子元素动态口令节点,在动态口令节点中赋值元素对象的增加属性方法增加动态口令节点的属性及属性值;
令牌类型确定子单元,用于根据令牌类型标识符确定令牌类型为事件同步动态令牌或时间动态令牌;
事件同步动态令牌处理子单元,用于如果令牌类型是事件同步动态令牌根据令牌类型标识符调用数据节点中赋值对象的增加节点方法创建三级子元素计数器节点;在计数器节点后标识数据节点的结尾;调用计数器节点中赋值对象的增加节点方法创建四级子元素用户默认值节点,调用用户默认值节点中的赋值对象的填充节点方法填充用户默认值节点,在用户默认值节点后标识计数器节点结尾;
时间动态令牌处理子单元,用于如果令牌类型是时间动态令牌,调用数据节点赋值对象的增加节点方法创建三级子元素起始参考时间节点和时钟周期节点,调用起始参考时间节点和时钟周期节点中赋值对象的增加节点方法创建四级子元素用户默认值节点;调用用户默认值节点中赋值对象的填充节点方法填充用户默认值节点;在用户默认值节点结尾后标识起始参考时间节点和时钟周期节点结尾。
第三子元素创建模块85包括:
密钥设备节点设置单元,用于调用密钥容器节点中赋值对象的增加节点方法创建密钥容器节点的第三子元素节点,将第三子元素节点作为包含令牌种子的密钥设备节点;
令牌节点创建单元,用于调用密钥设备节点中赋值对象的增加节点方法创建令牌节点,调用令牌节点中赋值对象的增加方法增加令牌节点的令牌编号属性及属性值、令牌类型标识符属性及令牌类型标识符属性的属性值;
密钥数据节点创建单元,用于调用令牌节点中赋值对象的增加节点方法创建令牌节点的子元素密钥数据节点,在密钥数据节点后标识令牌节点的结尾;
令牌种子节点创建单元,用于调用密钥数据节点中赋值对象的增加节点方法创建密钥数据节点的子元素令牌种子节点;在令牌种子节点后标识密钥数据节点的结尾;
密文数值节点创建单元,用于调用令牌种子节点中增加节点方法创建令牌种子节点的子元素密文数值节点,在密文数值节点后标识令牌种子节点的结尾。
其中,密文数值节点创建单元包括:
第一密文数值节点配置子单元,用于调用密文数值节点中赋值对象的增加方法创建密文数值节点的两子元素xenc公共命名空间加密方法节点和xenc公共命名空间密文数据节点、调用xenc公共命名空间加密方法节点赋值对象的增加节点属性方法增加xenc公共命名空间加密方法节点的算法属性及令牌种子数值加密方式标识符的属性值;
第二密文数值节点配置子单元,用于调用xenc公共命名空间密文数据节点中赋值对象的增加节点方法创建xenc公共命名空间密文数据节点,在xenc公共命名空间密文数值节点后标识xenc公共命名空间密文数据节点的结尾;
第三密文数值节点配置子单元,用于创建空白字符型变量,使用3DES加密算法或AES256加密算法将未加密令牌种子数值进行加密,将加密后的令牌种子数值赋值字符型变量;调用xenc公共命名空间密文数据节点中赋值对象的填充节点方法将所述字符型变量代表的加密后令牌种子数值填充在上述密文数据节点,在所述加密后令牌种子数值后标识上述xenc公共命名空间密文数值节点的结尾。
优选地,第三密文数值节点配置子单元包括:字符型变量赋值子单元,用于将加密后的令牌种子数值使用BASE64编码成为字符型数值,将该字符型数值赋值给所述字符型变量。
第三子元素创建模块85包括:密钥设备配置单元,用于为第三子元素节点配置指定个数的密钥设备节点,并根据配置的密钥设备节点重复执行上述密钥设备节点的配置过程,重复执行的次数为该指定个数。
本实施例通过采用xml文件的格式创建安全文件,使该安全文件能够兼容各种系统,而不需要对安全文件进行格式转换,因此解决了因格式转换导致的安全隐患问题;同时,本实施例在配置安全文件中各节点时,采用对令牌种子加密的方式配置密钥设备对应的节点(即第三子元素节点),该方式进一步降低了系统导入、导出安全文件时重要信息被泄露的威胁。
实施例4
参见图9,本实施例提供了一种生成安全文件的系统,该系统基于便携共享密钥容器标准生成安全文件,该系统包括:令牌服务器1;
令牌服务器1,用于引用xml安装组件中对象创建安全文件的各级节点,调用对象的方法增加根元素的子元素节点及其属性;
令牌服务器1具体包括文件创建模块11,根元素创建模块12,头节点创建模块13,第一子元素创建模块14,第二子元素创建模块15,第三子元素创建模块16,文件生成模块17;
文件创建模块11,用于令牌服务器1创建安全文件;具体分为第一对象引用单元111,第一调用方法单元112,第一赋值对象名称单元113;
第一引用对象单元111,用于令牌服务器1引用xml组件dom4j包中DoeumentHelper对象和Document对象;
第一调用方法单元112,用于令牌服务器1调用DoeumentHelper对象的方法创建XML文档,
第一赋值对象名称单元113,用于令牌服务器1赋值Document对象名称为Document;
根元素创建模块12,用于令牌服务器1创建根元素节点和属性;
具体分为第二对象引用单元121,第二调用方法单元122,第二赋值对象名称单元123;
第二对象引用单元121,用于令牌服务器1引用xml组件dom4j包中Element对象;
第二调用方法单元122,用于令牌服务器1调用document对象的addElement方法创建根元素<KeyContainer>(密钥容器)节点;
调用elemRoot对象的addAttribute方法增加的Version(版本号)属性和属性值1.0、xmlns(xmlns公共命名空间)的空间地址属性和属性值urn:ietf:params:xml:ns:keyprov:pskc:1.0、xmlns:ds(ds公共命名空间)空间地址属性和属性值http://www.w3.org/2000/09/xmldsig#、xmlns:xenc(xenc公共命名空间)空间地址属性和属性值http://www.w3.org/2001/04/xmlenc#;
第二赋值对象名称单元123,用于令牌服务器1赋值Element对象名称为elemRoot对象,
头节点创建模块13,用于令牌服务器1自动生成头节点及其属性、声明头节点的属性值;
头节点创建模块13具体包括头节点自动生成单元131和头节点声明单元132;
头节点自动生成单元131,用于令牌服务器1自动生成XML安全文件头节点<xml>和属性version(版本号)和encoding(编码规范);
头节点声明单元132,用于令牌服务器1声明头节点<xml>的version(版本号)为1.0和encoding(编码规范)为UTF-8;
第一子元素创建模块14,用于令牌服务器1创建第一子元素节点及其属性;具体分为第三对象引用单元141,第三调用方法单元142,第三赋值对象名称单元143,第一结尾标识单元144;
第三对象引用单元141,用于令牌服务器1引用xml组件dom4j包中Element(元素)对象;
第三调用方法单元142,用于令牌服务器1调用根元素<KeyContainer>(密钥容器)节点中elemRoot对象的addElement方法创建第一子元素<EncryptionKey>(密钥文件)节点;
调用第一子元素<EncryptionKey>(密钥文件)节点中encryptionElem对象的addElement方法创建<EncryptionKey>(密钥文件)节点的子元素<ds:KeyName>(解密密钥文件名称)节点;
调用<ds:KeyName>(解密密钥文件名称)节点中keyNameElem对象的setText方法将解密密钥文件名称填充在<ds:KeyName>(解密密钥文件名称)节点;
第三赋值对象名称单元143,用于令牌服务器1第一子元素<EncryptionKey>(密钥文件)节点中赋值Element对象名称encryptionElem;在<ds:KeyName>(解密密钥文件名称)节点中赋值Element对象名称keyNameElem;
第一结尾标识单元144,用于令牌服务器1在<ds:KeyName>(解密密钥文件名称)节点后标识<EncryptionKey>节点的结尾</EncryptionKey>;
第二子元素创建模块15,用于令牌服务器1创建第二子元素节点及其属性;具体分为:第四对象引用单元151,第四调用方法单元152,第四赋值对象名称单元153,第一类型判断单元154,第二结尾标识单元155;
第四对象引用单元151,用于令牌服务器1引用xml组件dom4j包中Element(元素)对象;
第四调用方法单元152,用于令牌服务器1调用根元素<KeyContainer>(密钥容器)节点中elemRoot对象的addElement方法创建第二子元素<KeyProperties>(令牌属性)节点;
用于令牌服务器1调用<KeyProperties>(令牌属性)节点中keyProperElem对象的addAttribute方法增加<KeyProperties>(令牌属性)节点的2个属性xml:id(公共命名空间标识符)属性,属性值为HOTPKPID或TOTPKPID;KeyAlgorithm(令牌算法)属性,属性值为http://www.ietf.org/keyprov/pskc#hotp
或http://www.ietf.org/keyprov/pskc#totp;
用于令牌服务器1调用<KeyProperties>(令牌属性)节点中keyProperElem对象的addElement方法创建<KeyProperties>(令牌属性)节点的两个二级子元素<Usage>(密钥用途)节点和<Data>(数据)节点;
用于令牌服务器1调用usageElem对象的addAttribute方法增加<Usage>(密钥用途)节点的OTP(动态令牌)属性,属性值为true;
用于令牌服务器1调用<Usage>(密钥用途)节点中usageElem对象的addElement方法创建三级子元素<ResponseFormat>(动态口令)节点;
用于令牌服务器1调用responseElem对象的addAttribute方法增加<ResponseFormat>(动态口令)节点的两个属性Format(数值格式)属性,属性值为DECIMAL;Length(动态口令长度)属性,属性值为6,具体地6代表6位十进制数字;
用于令牌服务器1调用<Counter>(计数器)节点中counterElem对象的addElement方法创建四级子元素<PlainValue>(用户默认值)节点;
用于令牌服务器1调用<Data>(数据)节点中dataElem对象的addElement方法创建三级子元素<Counter>(计数器)节点;
用于令牌服务器1调用plainElem对象的setText方法将数字0填充在<PlainValue>(用户默认值)节点;
用于令牌服务器1调用<Data>(数据)节点中dataElem对象的addElement方法创建三级子元素<Time>(起始参考时间)节点和<TimeInterval>(时钟周期)节点;
用于令牌服务器1调用<Time>(起始参考时间)节点中timeElem对象的addElement方法创建四级子元素<PlainValue>(用户默认值)节点;
用于令牌服务器1调用<TimeInterval>(时钟周期)节点中timeIntervalElem对象的addElement方法创建四级子元素<PlainValue>(用户默认值)节点;
用于令牌服务器1调用valPlainElem对象的setText方法将数字0填充<PlainValue>(用户默认值)节点;
第四赋值对象名称单元153,用于令牌服务器1在<KeyProperties>(令牌属性)节点中赋值Element对象名称keyProperElem;
<Usage>(密钥用途)节点中赋值Element对象名称usageElem;<Data>(数据)节点中赋值Element对象名称dataElem;
<ResponseFormat>(动态口令)节点赋值Element对象名称为responseElem;
<Counter>(计数器)节点中赋值Element对象名称为counterElem;
<PlainValue>(用户默认值)节点中赋值Element对象名称为plainElem和valPlainElem;
<Time>(起始参考时间)节点中赋值Element对象名称为timeElem;
<TimeInterval>(时钟周期)节点中赋值Element对象名称为timeIntervalElem;
第一类型判断单元154,用于令牌服务器1判断令牌类型标识符是否为1;
第二结尾标识单元155,用于令牌服务器1<Data>(数据)节点后标识<KeyProperties>(令牌属性)节点的结尾</KeyProperties>;
<Counter>(计数器)节点后标识<Data>(数据)节点的结尾</Data>;
<PlainValue>(用户默认值)节点后标识<Counter>(计数器)节点结尾</Counter>;
<PlainValue>(用户默认值)节点结尾后标识<Time>(起始参考时间)节点结尾</Time>;
<PlainValue>(用户默认值)节点后标识<TimeInterval>(时钟周期)节点的结尾</TimeInterval>;
第三子元素创建模块16,用于令牌服务器1创建第三子元素节点及其属性;具体包括第五对象引用单元161,第五调用方法单元162,第五赋值对象名称单元163,第二类型判断单元164,数值计算单元165,第三结尾标识单元166;
第五对象引用单元161,用于令牌服务器1引用xml组件dom4j包中Element对象;
第五调用方法单元162,用于令牌服务器1调用根元素<KeyContainer>(密钥容器)节点中elemRoot对象的addElement方法创建第三子元素<Device>(密钥设备)节点;
用于令牌服务器1调用keyElem对象的addAttribute方法增加<Key>(令牌)节点的2个属性,KeyId(令牌编号)属性,属性值为FTK2000FR93、KeyProperties(令牌类型标识符)属性,属性值为HOTPKPID或TOTPKPID;
用于令牌服务器1调用deviceElem对象的addElement方法创建子元素<Key>(令牌)节点;
用于令牌服务器1调用keyElem对象的addElement方法创建<Key>(令牌)节点子元素<Data>(密钥数据)节点;
用于令牌服务器1调用keyDataElem对象的addElement方法创建<Data>(密钥数据)节点子元素<Secret>(令牌种子)节点;
用于令牌服务器1调用keySecretElem对象的addElement方法创建<Secret>(令牌种子)节点的子元素<EncryptedValue>(密文数值)节点;
用于令牌服务器1调用keyEncryElem对象的addElement方法创建<EncryptedValue>(密文数值)节点的两子元素<xenc:EncryptionMethod>(xenc公共命名空间加密方法)节点和<xenc:CipherData>(xenc公共命名空间密文数据)节点;
用于令牌服务器1调用keyXencEncryElem对象的addAttribute方法增加<xenc:EncryptionMethod>(xenc公共命名空间加密方法)节点的Algorithm(算法)属性,属性值为:http://www.w3.org/2001/04/xmlenc#tripledes-cbc或http://www.w3.org/2001/04/xmlenc#aes256-cbc;
用于令牌服务器1调用keyXencCipherElem对象的addElement方法创建<xenc:CipherData>(xenc公共命名空间密文数据)节点子元素<xenc:CipherValue>(xenc公共命名空间密文数值)节点;
用于令牌服务器1调用keyCipherVElem对象的setText方法将字符型变量tknpubkey代表的加密后令牌种子数值填充在<xenc:CipherValue>(xenc公共命名空间密文数值)节点;
第五赋值对象名称单元163,用于令牌服务器1在<Device>(密钥设备)节点中赋值Element对象名称为deviceElem;
在<Key>(令牌)节点中赋值Element对象名称为keyElem;
在<Data>(密钥数据)节点中赋值Element对象名称为keyDataElem;
在<Secret>(令牌种子)节点中赋值Element对象名称为keySecretElem;
在<EncryptedValue>(密文数值)节点中赋值Element对象名称为keyEncryElem;
在<xenc:EncryptionMethod>(xenc公共命名空间加密方法)节点中赋值Element对象的名称为keyXencEncryElem;
在<xenc:CipherData>(xenc公共命名空间密文数据)节点中赋值Element对象的名称为keyXencCipherElem;
在<xenc:CipherValue>(xenc公共命名空间密文数值)节点中赋值Element对象的名称为keyCipherVElem;
第二类型判断单元164,用于令牌服务器1判断令牌类型标识符是否为1;判断令牌种子数值加密方式标识符是否为1,
数值计算模块165,用于令牌服务器1使用DESUtil类的DES3encrypt方法或AESUtil类的AES256encrypt方法计算未加密令牌种子数值,将加密后令牌种子数值赋值字符型变量tknpubkey;
第三结尾标识单元166,用于令牌服务器1在<Key>(令牌)节点后标识<Device>(密钥设备)节点的结尾</Device>;
用于令牌服务器1在<Data>(密钥数据)节点后标识<Key>(令牌)节点的结尾</Key>;
用于令牌服务器1在<Secret>(令牌种子)节点后标识<Data>(密钥数据)节点的结尾</Data>;
用于令牌服务器1在<EncryptedValue>(密文数值)节点后标识<Secret>(令牌种子)节点的结尾</Secret>;
用于令牌服务器1在<xenc:CipherValue>(xenc公共命名空间密文数值)节点后标识<xenc:CipherData>(xenc公共命名空间密文数据)节点的结尾</xenc:CipherData>;
用于令牌服务器1在加密后令牌种子数值后标识<xenc:CipherValue>(xenc公共命名空间密文数值)节点的结尾</xenc:CipherValue>;
文件生成模块17,用于令牌服务器1使用creatXML方法将配置好的数据结构输出到后缀名为XML的文本文件中生成安全文件。
本实施例通过采用xml文件的格式创建安全文件,使该安全文件能够兼容各种系统,而不需要对安全文件进行格式转换,因此解决了因格式转换导致的安全隐患问题;同时,本实施例在配置安全文件中各节点时,采用对令牌种子加密的方式配置密钥设备对应的节点(即第三子元素节点),该方式进一步降低了系统导入、导出安全文件时重要信息被泄露的威胁。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (20)
1.一种生成安全文件的方法,其特征在于,包括:
令牌服务器创建xml文件;
所述令牌服务器为所述xml文件创建根元素,并将所述根元素作为存储令牌种子的密钥容器节点,配置所述密钥容器节点的属性及属性值;
所述令牌服务器为所述根元素创建第一子元素节点;其中,所述第一子元素节点用于配置令牌种子的密钥文件节点,所述密钥文件节点包括解密密钥文件名称;
所述令牌服务器为所述根元素创建第二子元素节点;其中,所述第二子元素节点用于配置包含令牌种子的令牌属性节点;
所述令牌服务器为所述根元素创建第三子元素节点,其中,所述第三子元素节点用于配置包含令牌种子的密钥设备节点;所述令牌种子加密后保存在所述密钥设备节点;
所述密钥设备节点的配置过程包括:
所述令牌服务器为所述第三子元素节点创建令牌节点,并根据所述第三子元素节点配置的所述密钥设备节点设置所述令牌节点的属性,所述令牌节点的属性包括令牌编号和令牌类型标识符;根据所述令牌节点的编号和令牌类型标识符为所述令牌节点创建密钥数据节点,所述密钥数据节点包括解密令牌种子的密钥、加密方式信息、加密后的密文;
所述令牌服务器将配置后的所述xml文件作为安全文件。
2.根据权利要求1所述的方法,其特征在于,所述令牌服务器创建xml文件包括:
令牌服务器引用xml组件dom4j包中的文档对象中的创建文档方法创建xml文件,引用所述xml组件dom4j包中的文档对象,为所述xml文件赋值文档对象名称;
所述令牌服务器生成所述xml文件的头节点的版本号属性和编码规范属性,并声明所述头节点的版本号属性和编码规范属性。
3.根据权利要求1所述的方法,其特征在于,所述令牌服务器为所述xml文件创建根元素,并将所述根元素作为存储令牌种子的密钥容器节点,配置所述密钥容器节点的属性及属性值包括:
所述令牌服务器调用xml组件dom4j包中的文档对象的增加节点方法,为所述xml文件创建根元素;
所述令牌服务器将所述根元素作为存储令牌种子的密钥容器节点;
所述令牌服务器调用所述密钥容器节点中赋值元素对象的增加属性方法配置所述密钥容器节点的属性及属性值,并在所述xml文件最后一行标识所述密钥容器节点的结尾。
4.根据权利要求1所述的方法,其特征在于,所述令牌服务器为所述根元素创建第一子元素节点包括:
所述令牌服务器调用所述密钥容器节点中根元素对象的增加节点方法创建第一子元素节点,将所述第一子元素节点作为令牌种子的密钥文件节点;
所述令牌服务器调用所述第一子元素节点中赋值元素对象的增加节点方法创建所述密钥文件节点的子元素节点,将所述密钥文件节点的子元素节点作为解密密钥文件名称节点;在所述解密密钥文件名称节点中赋值元素对象,调用所述赋值元素对象的填充节点方法将解密密钥文件名称填充在所述解密密钥文件名称节点,在所述解密密钥文件名称节点后标识所述密钥文件节点的结尾。
5.根据权利要求1所述的方法,其特征在于,所述令牌服务器为所述根元素创建第二子元素节点包括:
所述令牌服务器调用所述密钥容器节点中赋值元素对象的增加节点方法创建第二子元素节点,将所述第二子元素节点作为包含令牌种子的令牌属性节点,在所述令牌属性节点中赋值元素对象,并根据所述密钥容器节点中的令牌种子的令牌类型增加令牌属性节点的属性及属性值。
6.根据权利要求5所述的方法,其特征在于,所述根据所述密钥容器节点中的令牌种子的令牌类型增加令牌属性节点的属性及属性值包括:
所述令牌服务器调用所述令牌属性节点中的赋值元素对象的增加节点方法创建所述令牌属性节点的两个二级子元素节点,将所述两个二级子元素节点分别作为密钥用途节点和数据节点;
所述令牌服务器调用密钥用途节点中赋值对象的增加属性方法增加密钥用途节点的动态令牌属性及属性值,并在所述数据节点后标识所述令牌属性节点的结尾;
所述令牌服务器调用所述密钥用途节点中赋值对象的增加节点方法创建三级子元素动态口令节点,在所述动态口令节点中赋值元素对象的增加属性方法增加所述动态口令节点的属性及属性值;
所述令牌服务器根据令牌类型标识符确定令牌类型为事件同步动态令牌或时间动态令牌;
如果所述令牌类型是事件同步动态令牌,所述令牌服务器根据令牌类型标识符调用所述数据节点中赋值对象的增加节点方法创建三级子元素计数器节点;在所述计数器节点后标识数据节点的结尾;调用所述计数器节点中赋值对象的增加节点方法创建四级子元素用户默认值节点,调用所述用户默认值节点中的赋值对象的填充节点方法填充用户默认值节点,在所述用户默认值节点后标识计数器节点结尾;
如果所述令牌类型是时间动态令牌,所述令牌服务器调用所述数据节点赋值对象的增加节点方法创建三级子元素起始参考时间节点和时钟周期节点,调用所述起始参考时间节点和所述时钟周期节点中赋值对象的增加节点方法创建四级子元素用户默认值节点;调用所述用户默认值节点中赋值对象的填充节点方法填充用户默认值节点;在所述用户默认值节点结尾后标识起始参考时间节点和时钟周期节点结尾。
7.根据权利要求1所述的方法,其特征在于,
所述令牌服务器为所述根元素创建第三子元素节点包括:所述令牌服务器调用所述密钥容器节点中赋值对象的增加节点方法创建所述密钥容器节点的第三子元素节点,将所述第三子元素节点作为包含令牌种子的密钥设备节点;
所述令牌服务器为所述第三子元素节点创建令牌节点包括:所述令牌服务器调用所述密钥设备节点中赋值对象的增加节点方法创建令牌节点,调用所述令牌节点中赋值对象的增加方法增加所述令牌节点的令牌编号属性及属性值、令牌类型标识符属性及所述令牌类型标识符属性的属性值;
所述根据所述令牌节点的编号和令牌类型标识符为所述令牌节点创建密钥数据节点包括:所述令牌服务器调用所述令牌节点中赋值对象的增加节点方法创建所述令牌节点的子元素密钥数据节点,在所述密钥数据节点后标识所述令牌节点的结尾;调用所述密钥数据节点中赋值对象的增加节点方法创建所述密钥数据节点的子元素令牌种子节点;在所述令牌种子节点后标识所述密钥数据节点的结尾;所述令牌服务器调用所述令牌种子节点中增加节点方法创建所述令牌种子节点的子元素密文数值节点,在所述密文数值节点后标识所述令牌种子节点的结尾。
8.根据权利要求7所述的方法,其特征在于,所述令牌服务器调用所述令牌种子节点中增加节点方法创建所述令牌种子节点的子元素密文数值节点包括:
所述令牌服务器调用所述密文数值节点中赋值对象的增加方法创建所述密文数值节点的两子元素xenc公共命名空间加密方法节点和xenc公共命名空间密文数据节点、调用所述xenc公共命名空间加密方法节点赋值对象的增加节点属性方法增加所述xenc公共命名空间加密方法节点的算法属性及令牌种子数值加密方式标识符的属性值;
所述令牌服务器调用所述xenc公共命名空间密文数据节点中赋值对象的增加节点方法创建xenc公共命名空间密文数值节点;在所述xenc公共命名空间密文数值节点后标识所述xenc公共命名空间密文数据节点的结尾;
所述令牌服务器创建空白字符型变量,使用AES256加密算法或3DES加密算法将未加密令牌种子数值进行加密,将加密后的令牌种子数值赋值所述字符型变量;调用所述xenc公共命名空间密文数值节点中赋值对象的填充节点方法将所述字符型变量代表的加密后令牌种子数值填充在所述xenc公共命名空间密文数值节点,在所述加密后令牌种子数值后标识所述xenc公共命名空间密文数值节点的结尾。
9.根据权利要求8所述的方法,其特征在于,所述将加密后的令牌种子数值赋值所述字符型变量包括:将加密后的令牌种子数值使用BASE64编码成为字符型数值,将所述字符型数值赋值给所述字符型变量。
10.根据权利要求1-9中任一项所述的方法,其特征在于,所述第三子元素节点用于配置指定个数的密钥设备节点,并根据配置的所述密钥设备节点重复执行所述密钥设备节点的配置过程,直至执行的次数为所述指定个数。
11.一种生成安全文件的装置,其特征在于,包括:
文件创建模块,用于创建xml文件;
根元素创建模块,用于为所述xml文件创建根元素,并将所述根元素作为存储令牌种子的密钥容器节点,配置所述密钥容器节点的属性及属性值;
第一子元素创建模块,用于为所述根元素创建第一子元素节点;其中,所述第一子元素节点用于配置令牌种子的密钥文件节点,所述密钥文件节点包括解密密钥文件名称;
第二子元素创建模块,用于为所述根元素创建第二子元素节点;其中,所述第二子元素节点用于配置包含令牌种子的令牌属性节点;
第三子元素创建模块,用于为所述根元素创建第三子元素节点,其中,所述第三子元素节点用于配置包含令牌种子的密钥设备节点;所述令牌种子加密后保存在所述密钥设备节点;所述密钥设备节点的配置过程包括:为所述第三子元素节点创建令牌节点,并根据所述第三子元素节点配置的所述密钥设备节点设置所述令牌节点的属性,所述令牌节点的属性包括令牌编号和令牌类型标识符;根据所述令牌节点的编号和令牌类型标识符为所述令牌节点创建密钥数据节点,所述密钥数据节点包括解密令牌种子的密钥、加密方式信息、加密后的密文;
文件生成模块,用于将配置后的所述xml文件作为安全文件。
12.根据权利要求11所述的装置,其特征在于,所述文件创建模块包括:
文件创建单元,用于引用xml组件dom4j包中的文档帮助对象中的创建文档方法创建xml文件;
赋值文档对象名称单元,用于引用所述xml组件dom4j包中的文档对象,为所述xml文件赋值文档对象名称;
头节点生成单元,用于生成所述xml文件的头节点的版本号属性和编码规范属性,并声明所述头节点的版本号属性和编码规范属性。
13.根据权利要求11所述的装置,其特征在于,所述根元素创建模块包括:
根元素创建单元,用于调用xml组件dom4j包中的文档对象的增加节点方法,为所述xml文件创建根元素;
密钥容器节点设置单元,用于将所述根元素作为存储令牌种子的密钥容器节点;
密钥容器节点配置单元,用于调用所述密钥容器节点中赋值元素对象的增加属性方法配置所述密钥容器节点的属性及属性值,并在所述xml文件最后一行标识所述密钥容器节点的结尾。
14.根据权利要求11所述的装置,其特征在于,所述第一子元素创建模块包括:
密钥文件节点设置单元,用于调用所述密钥容器节点中根元素对象的增加节点方法创建第一子元素节点,将所述第一子元素节点作为令牌种子的密钥文件节点;
解密密钥文件名称节点设置单元,用于调用所述第一子元素节点中赋值元素对象的增加节点方法创建所述密钥文件节点的子元素节点,将所述密钥文件节点的子元素节点作为解密密钥文件名称节点;
解密密钥文件名称节点配置单元,用于在所述解密密钥文件名称节点中赋值元素对象,调用所述赋值元素对象的填充节点方法将解密密钥文件名称填充在所述解密密钥文件名称节点,在所述解密密钥文件名称节点后标识所述密钥文件节点的结尾。
15.根据权利要求11所述的装置,其特征在于,所述第二子元素创建模块包括:
令牌属性节点设置单元,用于调用所述密钥容器节点中赋值元素对象的增加节点方法创建第二子元素节点,将所述第二子元素节点作为包含令牌种子的令牌属性节点;
令牌属性节点配置单元,用于在所述令牌属性节点中赋值元素对象,并根据所述密钥容器节点中的令牌种子的令牌类型增加令牌属性节点的属性及属性值。
16.根据权利要求15所述的装置,其特征在于,所述令牌属性节点配置单元包括:
二级子元素节点设置子单元,用于调用所述令牌属性节点中的赋值元素对象的增加节点方法创建所述令牌属性节点的两个二级子元素节点,将所述两个二级子元素节点分别作为密钥用途节点和数据节点;
二级子元素节点配置子单元,用于调用密钥用途节点中赋值对象的增加属性方法增加密钥用途节点的动态令牌属性及属性值,并在所述数据节点后标识所述令牌属性节点的结尾;
三级子元素节点配置子单元,用于调用所述密钥用途节点中赋值对象的增加节点方法创建三级子元素动态口令节点,在所述动态口令节点中赋值元素对象的增加属性方法增加所述动态口令节点的属性及属性值;
令牌类型确定子单元,用于根据令牌类型标识符确定令牌类型为事件同步动态令牌或时间动态令牌;
事件同步动态令牌处理子单元,用于如果所述令牌类型是事件同步动态令牌根据令牌类型标识符调用所述数据节点中赋值对象的增加节点方法创建三级子元素计数器节点;在所述计数器节点后标识数据节点的结尾;调用所述计数器节点中赋值对象的增加节点方法创建四级子元素用户默认值节点,调用所述用户默认值节点中的赋值对象的填充节点方法填充用户默认值节点,在所述用户默认值节点后标识计数器节点结尾;
时间动态令牌处理子单元,用于如果所述令牌类型是时间动态令牌,调用所述数据节点赋值对象的增加节点方法创建三级子元素起始参考时间节点和时钟周期节点,调用所述起始参考时间节点和所述时钟周期节点中赋值对象的增加节点方法创建四级子元素用户默认值节点;调用所述用户默认值节点中赋值对象的填充节点方法填充用户默认值节点;在所述用户默认值节点结尾后标识起始参考时间节点和时钟周期节点结尾。
17.根据权利要求11所述的装置,其特征在于,所述第三子元素创建模块包括:
密钥设备节点设置单元,用于调用所述密钥容器节点中赋值对象的增加节点方法创建所述密钥容器节点的第三子元素节点,将所述第三子元素节点作为包含令牌种子的密钥设备节点;
令牌节点创建单元,用于调用所述密钥设备节点中赋值对象的增加节点方法创建令牌节点,调用所述令牌节点中赋值对象的增加方法增加所述令牌节点的令牌编号属性及属性值、令牌类型标识符属性及所述令牌类型标识符属性的属性值;
密钥数据节点创建单元,用于调用所述令牌节点中赋值对象的增加节点方法创建所述令牌节点的子元素密钥数据节点,在所述密钥数据节点后标识所述令牌节点的结尾;
令牌种子节点创建单元,用于调用所述密钥数据节点中赋值对象的增加节点方法创建所述密钥数据节点的子元素令牌种子节点;在所述令牌种子节点后标识所述密钥数据节点的结尾;
密文数值节点创建单元,用于调用所述令牌种子节点中增加节点方法创建所述令牌种子节点的子元素密文数值节点,在所述密文数值节点后标识所述令牌种子节点的结尾。
18.根据权利要求17所述的装置,其特征在于,所述密文数值节点创建单元包括:
第一密文数值节点配置子单元,用于调用所述密文数值节点中赋值对象的增加方法创建所述密文数值节点的两子元素xenc公共命名空间加密方法节点和xenc公共命名空间密文数据节点、调用所述xenc公共命名空间加密方法节点赋值对象的增加节点属性方法增加所述xenc公共命名空间加密方法节点的算法属性及令牌种子数值加密方式标识符的属性值;
第二密文数值节点配置子单元,用于调用所述xenc公共命名空间密文数据节点中赋值对象的增加节点方法创建xenc公共命名空间密文数值节点,在所述xenc公共命名空间密文数值节点后标识xenc公共命名空间密文数据节点的结尾;
第三密文数值节点配置子单元,用于创建空白字符型变量,使用AES256加密算法或3DES加密算法将未加密令牌种子数值进行加密,将加密后的令牌种子数值赋值所述字符型变量;调用所述xenc公共命名空间密文数值节点中赋值对象的填充节点方法将所述字符型变量代表的加密后令牌种子数值填充在所述xenc公共命名空间密文数值节点,在所述加密后令牌种子数值后标识所述xenc公共命名空间密文数值节点的结尾。
19.根据权利要求18所述的装置,其特征在于,所述第三密文数值节点配置子单元包括:字符型变量赋值子单元,用于将加密后的令牌种子数值使用BASE64编码成为字符型数值,将所述字符型数值赋值给所述字符型变量。
20.根据权利要求11-19中任一项所述的装置,其特征在于,所述第三子元素创建模块包括:密钥设备配置单元,用于为第三子元素节点配置指定个数的密钥设备节点,并根据配置的所述密钥设备节点重复执行所述密钥设备节点的配置过程,直至执行的次数为所述指定个数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010106203923A CN102034062B (zh) | 2010-12-31 | 2010-12-31 | 生成安全文件的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010106203923A CN102034062B (zh) | 2010-12-31 | 2010-12-31 | 生成安全文件的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102034062A CN102034062A (zh) | 2011-04-27 |
CN102034062B true CN102034062B (zh) | 2012-08-08 |
Family
ID=43886942
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010106203923A Active CN102034062B (zh) | 2010-12-31 | 2010-12-31 | 生成安全文件的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102034062B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1567255A (zh) * | 2003-09-02 | 2005-01-19 | 四川大学 | 一种安全文件系统的存储及访问控制方法 |
CN1979511A (zh) * | 2005-12-09 | 2007-06-13 | 北京书生国际信息技术有限公司 | 一种文档数据安全管理系统和方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10339336B2 (en) * | 2003-06-11 | 2019-07-02 | Oracle International Corporation | Method and apparatus for encrypting database columns |
-
2010
- 2010-12-31 CN CN2010106203923A patent/CN102034062B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1567255A (zh) * | 2003-09-02 | 2005-01-19 | 四川大学 | 一种安全文件系统的存储及访问控制方法 |
CN1979511A (zh) * | 2005-12-09 | 2007-06-13 | 北京书生国际信息技术有限公司 | 一种文档数据安全管理系统和方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102034062A (zh) | 2011-04-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101340279B (zh) | 数据加密及解密方法、系统及设备 | |
CN105610793B (zh) | 一种外包数据加密存储与密文查询系统及其应用方法 | |
KR20220137788A (ko) | 암호화된 사용자 데이터 송신 및 저장 | |
CN103138938B (zh) | 基于csp的sm2证书申请及应用方法 | |
CN101720071B (zh) | 基于安全sim卡的短消息两阶段加密传输和安全存储方法 | |
US20070101145A1 (en) | Framework for obtaining cryptographically signed consent | |
US20040078577A1 (en) | Method and apparatus for providing xml document encryption | |
Kaushik et al. | Cloud data security with hybrid symmetric encryption | |
Chen et al. | Data privacy in trigger-action systems | |
EP3614292A1 (en) | File transfer system comprising an upload, storage and download device | |
CN102456108B (zh) | 一种ibus拼音码表的加密方法 | |
Rahman et al. | Chaos and logistic map based key generation technique for AES-driven IoT security | |
CN102624892B (zh) | 一种防止外挂客户端模拟http请求的方法 | |
CN104486756A (zh) | 一种密笺短信的加解密方法及系统 | |
JP5411034B2 (ja) | データベース暗号化システム及び方法 | |
CN116866029B (zh) | 随机数加密数据传输方法、装置、计算机设备及存储介质 | |
Chaeikar et al. | Secure SMS transmission based on social network messages | |
CN102034062B (zh) | 生成安全文件的方法及装置 | |
CN104301102A (zh) | Widget通信方法、装置及系统 | |
CN106453069A (zh) | 一种即时通信消息发送、查看、查看控制方法及其设备 | |
Gutiérrez et al. | A survey of web services security | |
CN107733841A (zh) | 基于多重加密的消息传输方法及装置 | |
Gutiérrez et al. | Web Services Security: is the problem solved? | |
Su et al. | An Action‐Based Fine‐Grained Access Control Mechanism for Structured Documents and Its Application | |
CN106156625A (zh) | 一种插件签名的方法及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address |
Address after: 17th floor, building B, Huizhi building, No.9, Xueqing Road, Haidian District, Beijing 100085 Patentee after: Feitian Technologies Co.,Ltd. Country or region after: China Address before: 100085 17th floor, block B, Huizhi building, No.9 Xueqing Road, Haidian District, Beijing Patentee before: Feitian Technologies Co.,Ltd. Country or region before: China |
|
CP03 | Change of name, title or address |