《基于xml的电子公文签名研究》由会员分享,可在线阅读,更多相关《基于xml的电子公文签名研究(71页珍藏版)》请在金锄头文库上搜索。
1、中文摘要 摘要 在纸质公文上手写签名或印章具有可信、 不可伪造、 不可重用,以及 签名的文件不可改变和签名不可抵赖等特点。 但是, 电子公文却容易被复 制, 被更改并且不留痕迹, 利用公钥密码体制的数字签名理论能够保证它 的机密性、 完整性、 验证性和不可否认性。由于常规的数字签名技术没有 考虑到上下文, 签名的只是纯粹的字节, 实现的是整体签名, 并不能实现 部分签名和难于实现多重签名。 X ML签名基于X ML的树形结构化特点 可以比较容易地实现整体签名、 部分签名和多重签名。目 前, 我国也启动 了电子政务标准化工作, 基于 X M I “ 的电子公文格式规范是首批的六 个标准项目 之一
2、。 因此, 基于X ML的电子公文签名研究是一个十分重要 的研究问题,本文追踪了这一热点研究问题。主要的研究工作包括: ( 1 )在分析常规的数字签名和电子公文的签名现状基础上,指出了 常规的数字签名方式具有无法实现对文档的特定部分签名和难于实现多 重签名的局限性。 ( 2 )在分析 X ML电子公文处理技术现状的基础上, 初设计X M L时没有过多考虑安全问题而存在的安全漏洞。 指出了由于当 XML 范是有效阻止X ML安全漏洞的基本方法,并且它也是其他X ML 范的基础。 签名规 安全规 ( 3 )针对常规的签名方式的局限性,本文提出了一种利用 X ML签 名实现部分签名和多重签名的方案。
3、该方案采用三层体系结构:客户端, W e b 服务器端和信息服务器端 ( 包括C A服务器) 。用户通过浏览器查询 C A服务器获取签名者的公钥证书验证签名; 用户也可以通过浏览器存取 信息服务器;W e b服务器是客户端和信息服务器端的中介,提供文档中 转, 发布和访问C A服务器与信息服务器。 本文重点分析了方案的实现方 法, 利用X P a t b 变换对输入的X M L 文档进行过滤, 输出符合条件的节点 组成的节点 集, 从而实现部分签名;通过添加 来指定 是一个外部文件, 通过 ”用 代替, , G o u d a 对上面的X M L 文档进行X P a t h 变换表达式如下:
4、a n c e s t o r - o r - s e l f : G o o d C h e e s e 表达式的输出节点集结构如下: E x t r a s h a r p C h e d d a r 4 C h e d d a r _ Typ e 3 .3 X M L电子公文处理技术现状分析 电子公文是指以数字形式存储于磁带、 磁盘、 光盘等载体, 依赖计算 机系统阅读、处理并可在通信网络上传输的公文 ( 谭建军,2 0 0 3 ) 。本质 上, 电子公文与纸质公文一样, 都是国家机关在管理活动中形成的原始记 录, 但因电子公文自 身的技术特点, 使得它在生效要件上与纸质公文呈现 出如下
5、差异( 王绍侠,2 0 0 2 ) : ( 1 ) 作者的身份确定方式不同:纸质公文可以通过签署或印 章来确 定,电子公文的身份确定需要签名技术保障。 ( 2 ) 形成程序不同: 国家行政机关公文处理办法 对纸质公文的处 华南农业大学硕士学位论文:基于X h 几 的电子公文签名研究 理程序有严格的要求, 而电子公文并不能完全套用上述办法。 需要针对电 子公文的易变性和共享性,形成电子文件归档与管理规范。 ( 3 )真实性状况及其认证方法不同:纸质公文的信息内容固化于纸 张载体上,载体的原始性决定了信息内容的真实性。通过对字体、字迹、 纸张性质、印刷方法、 印章、 印文等物理特性的鉴定来认证其真
6、实性; 而 电子公文的真实性需要电子签名技术、管理和法律三者为保障。 ( 4 )形式不同:纸质公文一般都是采用书面的形式,电子公文以二 进制形式存在于存储媒介上。 电子公文可以分为以下几种类型 ( 桑宇东, 2 0 0 3 ) : 党的机关公文; 行政机关公文;其他机关公文 ( 扩展公文类型) 。电子公文的基本组 成要素包括公文体信息( 内 容一 C o n t e n t ) 、 公文式样( 显现一 L a y o u t ) 、 公文 办理信息 ( 处理一 P r o c e s s ) 、公文交换信息 ( 交换一 E x c h a n g e ) 、公文归档 信息 ( 归档一 A r
7、c h i v e s ) 、公文安全性信息 ( 安全一 S e c u r i t y ) . 3 . 3 . 1 基于X ML 的电 子公文格式规范 基于X M L 的电子公文是指以可扩展置标语言 ( X M L )对电子公文处理 过程的相关信息进行结构化描述。 公文体包括眉首、 主体、 版记。 我国已 经启动了电子政务标准化工作,2 0 0 2 年8月8日召开了首批六个标准项 目 的启动会, 这六个标准是: 电子政务数据元; 基于X M L 的电子公文 格式; 电子政务业务流程设计方法通用指南: 电子政务主题词表; X M L 在电子政务系统中的应用指南;信息化工程监理规范。按照计划,
8、2 0 0 3 年 1 月1 5 日, 基于X M L 的电 子公文格式规范要形成最终征求意 见稿。 目 前, 在电 子政务标准数据库中己经可以查询到关于电子公文的标 准:电子公文数据元目 录、 基于X M L 的电子公文格式、 电子公文交换处理 规范、 电 子公文存档管理规范和电 子公文处理流程规范。 但在国家标准数 据库中还不能查询到这方面的标准, 因此, 电子政务中电子公文的有关标 准仍在征求意见阶段,还没有正式版本出版。 华南农业大学硕士学位论文:基于X ML的电子公文签名研究 由于X M L 能够灵活地表示数据、 以X M L 数据库存储数据和各种形式操 作数据, 所以 基于X M
9、L 的电 子公文格式可以比 较好地解决电子政务应用中 所面临的问 题 ( 李光亚,2 0 0 3 ) : ( 1 ) 大部分电子政务系统的信息孤岛; ( 2 )不同的系统表示数据的格式千差万别; ( 3 )内容提取效率不高,需要进行数据再加工; ( 4 )各个应用系统需要反复、重复录入数据. 因此, 基于M E的电子公文格式肯定是今后电子政务、 电子商务应用 的主要格式,下面给出一个X M L 形式的电子公文模型: 市人大 市政协 ( ) ? ( ) * 图3 . 4 X M L 签名的外部结构和框架 1 . 元素 它标识了一个特定上下文环境的完整X M L 签名, 是X M L 签名的核心元
10、 素, 可以作为一个单独的文档而存在, 可以封装它所签署的数据对象, 也 可以封装在数据对象之内。 根据签名元素和签名对象之间的关系, X M L 有 如下三种签名方式( E d S i m o n , 2 0 0 1 ) ,如图3 . 5 : X ML签名 x ml res o u r c ex ml res o u r c ex ml res o u r c e ( a ) 封装式签名( b ) 嵌入式签名( c ) 分离式签名 图3 . 5 X M L 签名与被签名数据的关系 ( 1 ) 封装式签名 ( E n v e l o p i n g S i g n a t u r e ): 被
11、签名数据封装在X M L 3 1 华南农业大学硕士学位论文:基于X I v II . 的电子公文签名研究 签名元素的内 部, 元素类似于一个 “ 信封” ,如图3 . 5 ( a ) . ( 2 )嵌入式签名 ( E n v e l o p e d S i g n a t u r e ): 元素本身 被嵌入到被签名数据中,如图3 . 5 ( b ) o ( 3 )分离式签名 ( D e t a c h e d s i g n a t u r e ) : 元素和被签 名数据是彼此分离的, 两者之间不存在包含和被包含的关系。 被签名数据 可以 是独立的 外部文档, 也可以 是跟 元素位于同 一X
12、M L 文档 内的并列的兄弟元素 ( S i b l i n g E l e m e n t ) 。如图3 . 5 ( c ) e 2 . 元素 它记录了真正被签署的信息, 是整个X M L 签名中数据最丰富的核心元 素, 它包含了在签名中的每一个数据对象的引用。 从元素名字可以知道它 包括实际签名的所有信息, 即签过名的信息。 规范化的该元素的加密摘要 代表的就是 X M L签名值。 内容包括下列元素序列: . 和 元素。 ( 1 ) 元素:指定对X M L 数据进行规范化 时遵循的原则和处理方法。 在目 前的X M L 数字签名规范中, 该方法通常采 用的规范是: e 规范化的目的是为了使
13、得语义上相同的 X M L文档在二进制层次上也 相同,从而保证对它们产生的数字签名也相同。因为按照X M L 1 . 0 和X M L 名字空间的规范, 相同语义上下文的两份X M L 文档, 在表现形式上是允许 有所不同的,这些不同表现在空白 字符 ( W h i t e s p a c e )的处理、元素属 性的先后顺序、 空元素的处理、 名字空间的顺序等细节上。 另一方面,由 于X M L 数据在存储和重用的过程中, 往往会丢失其原来的表现形式, 譬如: X M L 数据被存入到S Q L 或O r a c l e 等关系数据库的时候,往往由于数据库 模式的限制, 丢失了一些表现形式上的
14、数据, 如编码方式、 属性的顺序等, 当X M L 数据从数据库中取出并重组时,很难保证跟原来的数据一模一样。 华南农业大学硕士学位论文:基于Y M I的电子公文签名研究 正因为此, 它的散列值将发生很大的变化, 从而导致X M L 签名校验的失败。 这个元素只包含标识符, 实际上它并没有指向在签名生成中所用的任何数 据, 它作为 的一部分是为了防止替换攻击。 ( 2 ) 元素: 指的是对 元素应用规范 化方法后, 采用的 签名算法, 常见的有R S A , D S A 与M D 5 , S H A - 1 的组合。 这个元素同样也只包含标识符, 实际上它并没有指向在签名生成中所用的 任何数据
15、,它作为 的一部分也是为了防止替换攻击。 ( 3 ) 元素: 指的是引用对象, 它是一个可以至少出现一 次或多次出现,在X M L 签名中,一个 元素代表一个被签署元 素, 定义了待签名的实际数据。 X M L 签名的大多数附加特性都出现在该元 素的定义和使用中, 该元素实际上是X M L 签名的核心部分, 它基本上描述 了如何获得资源,如何在可能的情况下变换资源以生成被摘要的数据。 元素可以表示潜在的任何一种类型和格式的资源,包括二进 制格式,譬如:G I F i m a g e 。在 元素中包含了三个子元素: , 和 o 子元素和 元素是必需的, 他们包括摘 要算法和用B A S E 6
16、4 进行编码的摘要值。 表 3 . 1 变换名称 规范化的X M L B a s e 6 4 编码 X P a t h 过滤 封装变换 X S L T 变换 X M L 签名变换 关键字 R e q u i r e d R e q u i r e d R e c o m m e n d e d R e q u i r e d O p t i o n a l 子元素是可选的,如果 的U R I 属性指定的 原始文档不需要变换操作,则 散列值可以从该文档计算得 华南农业大学硕士学位论文:基于X N II . 的电子公文签名研究 到; 如果需要对U R I 属性指定的原始文档进行一系列的变换操作, 前一个 的 输出 作为 下一个 的 输入, 直 至得到 最后的 变 换结果, 然后利用该结果计算散列值填入 元素中。 X M L签 名变换如表3 . 1 所示 ( W 3 C , 2 0 0 2 ): 3 . 元素 该元素记录了按照 指定的签名算法生成的签名 值,该值以B A S E 6 4 编码形式表示。 4 . 元素 该元素是一个可选的元素, 主要用于描述