新闻资讯 | 控件产品 | 技术文章 | 购物车 | 合作伙伴 | 问题解答 | 电子简报 | PDF论坛 | 资源下载
您现在的位置:技术文章>PDF开发篇 首页|PDF应用篇|PDF开发篇|解决方案

数字签名在交互式PDF表单中的应用

发布日期:2012-4-19 作者:ifbateam 出处:http://ifbateam.blog.51cto.com/

原文地址:http://ifbateam.blog.51cto.com/2962061/634811

今天这篇文章主要介绍一下数字签名(Digital Signatures)在交互式PDF表单中的应用。大家都知道,从有纸化办公发展为无纸化办公是办公领域发展的一个必然的趋势,而这一过程中,又引发出了很多需要人们去解决的新问题,其中如何保证文档内容的安全性就是其中之一。如果不能保证文档的安全性,那么黑客就可以任意查看甚至删改文档的内容,这样对于用户造成的损失将是无可估量的。为此,各个厂商都开始使用自己的技术来保证文档的安全性,下面我来介绍一下在PDF交互式表单中,Adobe公司是如何运用数字签名技术来保证文档的安全性的。 

通常厂商的文档安全解决方案是在文档的存储阶段(如文件服务器加密)和传输过程(如使用https协议)中对文档进行保护,直到文档到达指定接收人的手里。这样做有一个问题,当文档到达指定接收人手里的时候,文档的生命周期并没有结束,但是这时候它已经失去了保护。大家可以想想,如果这时候文档被转发到不应该转发的人手里怎么办?如果文档被那些人修改后继续传播,又会发生怎样的事情? 

通常情况下,我们通过六个标准来衡量文档的安全性,它们分别是机密性(Confidentiality),正确授权(Authorization),责任性(Accountability),完整性(Integrity), 可靠性(Authenticity)以及不可否认性(Non-repudiation)。机密性用来控制哪些人有权利访问这些文档;正确授权是指不同用户被授予与他/她职责相应的对文档的操作权限;责任性用来控制哪些人才是文档的接受者;完整性用来控制文档在传输的过程中没有被修改过;可靠性控制文档来自于一个可靠的来源;不可否认性指的是文档签名是有据可查的,任何以前的签字都不可抵赖。只有真正做到以上的六点,我们才能说这个文档是安全可靠的。 

数字签名是Adobe工作在交互式PDF表单中提供的一种比较常见的文档安全解决方案,如果从上面的6个文档安全性标准来看,它主要的作用是负责文档的完整性,可靠性和不可否认性。 

在日常的工作中,文档的完整性无疑是非常重要的。试想,一家上市公司准备公布这个季度的财报,它需要把数据整理好之后以电子表单的形式发送给上交所,上交所会在自己的网站公布这家公司的季报,如果文档在到达上交所之前,被一些不法之徒截获,并修改了其中的数据然后再发给上交所,当上交所把假数据登陆到自己官方网站的时候,对上市企业的影响将是无法估量的。 Adobe主要采用了One-way hashMessage Authentication Codes (MAC)这两种技术。One-way hash指的是首先创建一个固定长度的hash值,它就如同人的独一无二的指纹一样,这个hash值会和文档一起发送给接收者,接收者需要计算接收到的文档的hash值,并且用这个值和原来的hash值进行比对,如果一样的话,说明文档在传输过程中没有被修改过。Adobe采用了SHA-1SHA-256这两种比较通用的hash算法。Message Authentication Codes (MAC)指的是在MAChash MAC(HMAC)之间形成一个对称密钥,破解者无法获取密钥,也就无法伪造文档。 

文档的可靠性在企业运作过程中也是非常重要的,假设你是公司的部门采购,那么只有接收到有总经理的数字签名的采购单的时候你才能去采购,如果其他的同事和你开玩笑,给你发了个100W美金的采购单,而你在未分清真伪的情况下采购了这批货物,恐怕等待你的就不仅仅是下岗那么简单的事情了。一个文档作者,通常用公钥来给自己的文档加密,只有拥有私钥的人才能够解密并查看文档的内容;这一技术同样应用到了Adobe的交互式PDF表单之中,不同的是,PDF表单需要使用私钥加密,而接受者是唯一一个拥有公钥的人,这把公钥可以用来解密文档。

 同样你还工作在采购部门,有一天你的经理让你下订单来购买100W美金的货物,然而最后发现,购买这批货物是一个非常重大的决策性失误,给公司造成了很多的损失,从上面来看,一定要有人来承担责任,接收惩罚,那么经理当时在单据上的数字签名可能就会帮你脱离这趟浑水。Adobe的交互式PDF表单中用到了PKI(Public Key Infrastructure),它主要作用是提供数字签名,使文档的接收者可以确定文档这个绑定了个人信息的公钥是否属于正确的人。 

既然数字签名这么重要,那么在设计PDF表单的时候,如何加入数字签名呢?在Livecycle Designer中,提供了一个名为Signature Field标准控件,它的作用就是给PDF文档加入数字签名,把它拖入设计视图,如下图,

 

数字签名默认是对整个PDF表单都起作用的,用户也可以设计让它只对个别的控件起作用,点击数字签名的属性标签,如下图,

 

还有一个检验框当表单被签名之后,整个文档就被锁定的选项默认也是被激活的,如果我们在一个PDF表单中设计了多个Signature Field,那么有两种方法可以阻止当某一个签名被签之后整个表单锁定的问题,方法一就是对每一个数字签名控件都不要选择’Lock Field After Signing’,方法二就是不同的数字签名控制不同的控件,这样即使某些数字签名被签导致部分控件被锁定,那么剩下的由其他数字签名控制的控件也还是激活状态,大家互不影响。 

PDF做好以后,点击数字签名控件,一个对话框就会弹出,如下图:

你可以根据自己的需要从已有的数字签名中选择一个填入控件,或者根据提示创建一个新的。签名做好的效果图如下:

今天关于PDF表单中数字签名的应用就先介绍到这里,谢谢~

 

 

 

发布人:管理员 【报告错误】·【推荐好友】·【打印文章】
相关评论 本文现有 0 条评论 评分人数: 0 平均分: 0
相关评论
用户名: 密  码:
说明:输入正确的用户名和密码才能参与评论。如果您不是本站会员,你可以注册为本站会员。
注意:文章中的链接、内容等需要修改的错误,请用报告错误,以利文档及时修改。
注意:请不要在评论中含与内容无关的广告链接,违者封ID
文章搜索
推荐文章
循序渐进学习iTextShar
循序渐进学习iTextShar
循序渐进学习iTextShar
循序渐进学习iTextShar
循序渐进学习iTextShar
循序渐进学习iTextShar
循序渐进学习iTextShar
循序渐进学习iTextShar
循序渐进学习iTextShar
循序渐进学习iTextShar
热门点击
一个简单的PDF文件结构的分析(22340)
PHP的FDF文档支持(16147)
用C#制作PDF文件全攻略(13578)
Word转换PDF格式的C#或(12118)
pdfMaker文章:PDF加(11626)
ITextRenderer学习(11083)
PDF文件加密仿真(11035)
怎样用iReport制作Web(10383)
iText PDF概述(1)(9887)
循序渐进学习iTextShar(9833)
热门评论
从pdf文档中提取出文本(8)
PDFlib开发:创建超文本元(2)
客户端自动打印PDF(Prin(2)
浅谈PDFlib中文输出(一)(2)
xml的转换之pdf 2 ((1)
xml的转换之pdf 1 (x(1)
PDF知识讲座(1)(1)
PDFBox使用简介(1)
使用正则表达式计算PDF文档的(1)
word转pdf(1)