ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 60151|回复: 76

也谈数字签名

[复制链接]

TA的精华主题

TA的得分主题

发表于 2002-3-31 02:27 | 显示全部楼层 |阅读模式
本帖已被收录到知识树中,索引项:文档保护和加密

测试环境:  

OS : Windows98 SE 简体中文版  

App : Excel 2000 简体中文版

 

对于Excel中包含VBA的文档,大家最恐惧的一件事情便是是否病毒,因此往往把Excel安全级别设置为"中",即对不可靠的来源提醒用户是否启动宏。而对于VBA开发人员来说,最想做的就是使Excel程序启动时不出现提示框,直接进入(在安全级别为中的情况下),如何做到呢?

 

这时数字签名就派上用场了!

 

准备工作:   

 

1. 数字签名仅在安装了 Microsoft Internet Explorer 4.0 或其后续版本的计算机上有效。  

2. 您需要定制安装Excel,选择数字签名一项。

 

步入正题:   

 

如果您定制安装Excel,并选择了数字签名一项,则在Office的安装目录下会出现一个新文件 "Selfcert.exe" ,双击它,再打开的窗口中输入的名称即可,这时您已经做了一个数字证书。  

 

在Excel环境中按 ALT+F11 打开VBE编辑器,[工具]-[数字签名]-[选择],选择新建的数字证书。  

保存文件。  

对于开发者来说主要工作已经做完。对于用户一方要做的就是在第一次打开含有此数字签名的文档时,选择"永远相信源于此的宏"。这样只要是用此证书签名的文档都会被认为是可靠来源,以后也不会再出现"是否启动宏"的对话框了。  

 

大致原理即是这样。   

 

那么为什么用户第一次打开文档时还会出现"是否启动宏"的对话框呢?这是因为数字签名只是对用户身份加以确认,而对数据本身并不进行加密,因此该工作薄还有可能带有病毒。

 

进一步探讨:   

为什么添加数字签名需要 IE 支持呢?这是因为,之所以有数字证书技术,是由于网络信息安全性的日益重视而引起,它的主要作用就是验证通信双方的身份,这在电子商务、政府等领域是十分重要的。而IE就支持这样的技术。而Microsoft却把这一特性引入了Excel,真可以说Microsoft为用户想得非常周到(也可能是由于Excel文档可以在Internet上共享的缘故)。  

 

让您有个感性的认识:打开IE属性对话框,在[内容]标签中有一个[认证]按钮,点击它就会打开证书管理器。在这里您可以管理您的证书。  

 

对于VBA开发人员来说,可能会有这样的问题,如果这个人在另一台机器上开发了另一个产品(比如这个人的家中有一台计算机),且这个产品是针对同样的用户,而又要进行数字签名,是不是必须把这个文档Copy到有证书的那台机器上呢?不必!在刚才的IE选项中,选择您的证书,点击导出,这样证书就会以文件的形式导出。您只要把这个导出的文件分发到您要工作的任何计算机上并安装即可。  

 

关于安装导出的证书文件,一种方法是直接双击该文档,二是通过刚才IE选项对话框中的"导入"按钮,然后按照向导来完成。  

 

如果您想删除某一数字证书,该如何操作呢?对开大部分类型的数字证书可以直接通过数字证书管理器的"删除"来完成。不过有些数字证书在这里是看不到的,不要紧,点击Windows的开始菜单,点击"运行",键入"Regedit",回车。这时便打开了注册表编辑器。在"HKEY_CURRENT_USER\Software\Microsoft\SystemCertificates\"个位置下有几个选项,您看看便知道如何做了。   

 

到现在为止您是不是认为关于Excel的数字签名的主要内容都掌握了呢?非也!虽然您可以为您的Excel文档定制您自己的签名,不过如果您的产品是面向很多的用户,而您还不能确定用户群是谁,就会出现另一个问题,就是用户并不能确定您是否为真正的可靠源,因为其他人完全可以用您的签名做一个数字证书来假冒您,如果他的Excel文档包括后台监视程序或系统破坏程序等,那么这个用户就很有可能成为被攻击对象!  

 

要想真正的做到可靠的来源,还需向独立、公正、可信赖的第三方组织-认证中心CA来申请数字证书。

 

最后补充:   

Excel有个可靠来源表,在最开始安装Excel成功时,它是空的,以后根据情况而添加。想删除某个可靠来源可以通过[工具]-[宏]-[安全性]-[可靠来源]标签面板来完成。

[此贴子已经被leaf于2002-3-31 2:27:21编辑过]

TA的精华主题

TA的得分主题

发表于 2002-3-31 18:17 | 显示全部楼层
好文章,送精品。

TA的精华主题

TA的得分主题

 楼主| 发表于 2002-3-31 20:37 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
谢了! 其实这是按我自己理解琢磨出来的,很可能有错误的地方哟!

TA的精华主题

TA的得分主题

发表于 2002-4-5 16:47 | 显示全部楼层
leaf,这样的文章,你应该放到网站上去! 你不是有管理入口吗?

TA的精华主题

TA的得分主题

 楼主| 发表于 2002-4-5 18:54 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2002-4-5 21:25 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
是个好东东。我建议你们这些高手,时不时贴一些这样的好文章。俗话说:踏破铁鞋无觅处,得来全不费功夫。我想也就是这种感觉吧。

TA的精华主题

TA的得分主题

发表于 2002-5-28 18:10 | 显示全部楼层
要想真正的做到可靠的来源,还需向独立、公正、可信赖的第三方组织-认证中心CA来申请数字证书。
除此之外,还有一途,就是在网络中安装一台证书服务器(用WINDOWS 2000 SERVER),用来颁发用于给代码签名的证书。 [fly][em04][em04][/fly]

TA的精华主题

TA的得分主题

 楼主| 发表于 2002-5-29 12:37 | 显示全部楼层
对头,NT Server系统可以安装证书服务器,用来给企业网内部颁发证书很好用噢。

TA的精华主题

TA的得分主题

发表于 2004-2-11 10:14 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2004-5-5 10:02 | 显示全部楼层

关于"也谈数字签名"的一个问题

我创建了一个自已的证书,用于签署VBA工程代码,但在重装系统前,我想导出此证书,以便使证书在新系统中使用,我试了证书的导出功能,但发现无法导出私钥,但导出的证书再导入时,Office就不能再用于VBA的签署了.

这与你的文章中的说法不一致 - "对于VBA开发人员来说,可能会有这样的问题,如果这个人在另一台机器上开发了另一个产品(比如这个人的家中有一台计算机),且这个产品是针对同样的用户,而又要进行数字签名,是不是必须把这个文档Copy到有证书的那台机器上呢?不必!在刚才的IE选项中,选择您的证书,点击导出,这样证书就会以文件的形式导出。您只要把这个导出的文件分发到您要工作的任何计算机上并安装即可"

请指教.

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关闭

最新热点上一条 /1 下一条

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-4-25 14:15 , Processed in 0.037543 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表