目录: (to myself: 文件图片已发送到自己的hotmail中,docx格式的文件。)
谈到文件加密或许有人马上联想起WORD或EXCEL等文档文件的密码保护,要注意在此我所要讲的绝不是这种密码保护,而WIN2000所拥有的利用加密钥匙来实现的文件加密和数字签名,它是数字化的。WORD或EXCEL的密码保护仅是保证文件在没有密码时不能打开或修改,这个保护级别相对来说较低,一般这种保护密码很容易通过一些专用程序解密。而现在要讲的文件加密和数字签名,加密后的文件在解密之前会面目全非,没有对应的密码是无法进行阅读的,更别谈修改了,况且这种密码比起前者所使用的密码长许多倍,而且是配对使用的,据专家分析用任何程序解密的可能性几乎为零,即使能解密,也起码要10000年,你说这样的解密又有什么意义呢?所以说这里所讲的文件加密与数字签名的密级相对来讲高了许多许多! 软件开发网
在正式讲解文件加密和数字签名之前我们要先了解加密的工具,在这里我们用的是用户的公钥(Public Key)和私钥(Private Key)来实现的,加密、解密必须用同一个用户的一对公钥和私钥来配对使用,也就是说如果加密时用的某用户的公钥,那么解密时就必须用其人的私钥来解,反之如加密时用的是某人的私钥,那么解密时必须用其人的公钥来解,不能同时用公钥或私钥,更不能用不同用户的公钥或私钥来解密。公钥可以告诉别人,但私钥却一般不能告诉别人,除非授权。就象我们的大楼一样,大门钥匙我们可以给各住户,但各家自己门的钥匙却只能给住户本人,不能随便给。下面我要讲的“文件加密”与“数字签名”虽然其过程不一样,但原理是一样的,大家注意理解。
一, 文件加密 。。。。。。。。。。。。。。。。。。。。。。。。。。Back
我们知道加密的目的就是在于证明用户身份,防止别人偷截你的文件或内容。我们同样知道现在网络还存在许多不安全因素,在我们发送电子邮件或传输文件时或许有很多人在别处密切监视着我们,特别是对一些大公司伟输一些机密文件时,怎样实现安全传输呢?在WIN2000中为我们提供了具有相当安全级别的加密措施,那就是用个人的公钥和私钥配对使用加密或解密。下面就以一个具体例子来讲解加密和解密,以及保护加密文件的过程。
现假设有A公司的老板名叫BOb,B公司的老板名叫Alice,现BOb想传输一个文件File BS给Alice,这个文件是有关于一个合作项目标书议案,属公司机密,不能给其它人知道,而恰好有一个C公司的老板Linda对A和B公司有关那项合作标书非常关注,总想取得A公司的标书议案,于是他时刻监视他们的网络通信,想如果Bob通过网络传输这份标书议案时从网络上截取它。为了防止Linda截取标书议案,实现安全传输,我们可以采用以下步骤:
1、首先Alice把自己的公钥(设为Public Key A)通过网络传给Bob;
2、Bob用Alice的公钥(Public Key)给标书议案文件File BS加密;
3、Bob把经过加密的文件传给Alice;
软件开发网
4、Alice收到Bob传来的File BS后再用自己的私钥(设为 Private Key)来解密。
以上四步可用下图表示:
或许有朋友会要问,在第一步中C公司的老板Linda同样可以截取Alice的公钥(Public Key),且在第3步中也可以截取加密后的标书议案文件File BS,但首先要知道这都没有任何意义。因为虽然Linda获取了Alice的公钥和标书议案文件File BS,但用Alice公钥加密后的文件只能用Alice的私钥来解开,即使使用Alice的公钥也无法自己解密,因为公钥和私钥必须配对使用,这就是发明这种加密方法的绝妙之处。所以在这个传输中可算是比较安全的,当然安全是相对的,据说曾经有黑客专家宣称可以利用个人的公钥推算出其私钥,结果事实证明可能性几乎为零,即使可能也要10000年后才可以,你说这又有什么意义呢?至于这个人公钥和私钥如何获得我下面将详细介绍,在此不作重叙。
二, 数字签名 。。。。。。。。。。。。。。。。。。。。。。。。。。。。。Back
数字签名也主要是为了证明发件人身份,就象我们来看到的某文件签名一样,但现在要说的签名是采取数字的方式,它可以防止别人仿签,以过加密后的签名就变得面目全非,别人根本不可能看到真正的签名样子,它与前面所讲的文件加密机理是一样的,但方法不太一样,下面介绍如下。
仍就和文件加密所举的例子一样,Bob要在所发的文件File BS后面要加以签名,以证明这份标书的有效性(因为Bob是A公司的老板),同样是发给B公司的老板Alice,公司C的老板如果想要假冒Bob的签名发另一份标书给Alice,以达到破坏A公司中标的目的。
1、Bob首先把自己的公钥发给Alice;
2、Bob再要对File BS文件签名以Bob的私钥进行加密,加密后再发给Alice;
3、Bob把经过加密的签名文件传给Alice;
4、Alice在收到加密后签名文件File BS后用Bob的公钥进行解密。
因为File BS已经用加密方式进行加密,同上例,我们知道Linda无法获得Alice的私钥,也就无法阅读到文件内容,但它可以用Bob的公钥解读File BS的签名。但这同样没有意义,因为如果Linda要仿冒Bob的数字签名必须要有Bob的私钥,否则Alice无法用Bob的公钥对签名进行解密,或许你又要说如果Linda也把自己的公钥发给Alice,那么Alice怎样区别哪一个公钥是真正的Bob的公钥呢?这就要涉及到后面要讲的公钥的获得途径了,先要说的就是Alice可以到发证机关进行查询来辨别,就这样Linda的阴谋也就不能得逞。
在讲证书如何获得之前,先做下小节。
总结:
文件加密- 发送方用接受的公钥加密,接受方用自己的私钥解密。(接受方首先把自己的公钥给发送方,然后发送用接受的公钥加密要发送的文件数据,接受方接收不具可读性的文件后,用自己相应的私钥解密文件)
数据签名-发送方用自己的私钥加密数据,然后把加密公钥给接收方,接受方用发送方的公钥解密数据,以此证实此数据确实是期望的发送方发送的。
三, 公钥和私钥的获得。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。Back
上面我们讲了文件加密和数字签名都必须用到个人用户的公钥和私钥,到底如何获取这两个钥匙呢?下就分别介绍:
1、私钥的获取
要获取私钥首先必须要申请证书,一般一个用户一在系统中注册系统就会自动分配一个私钥给用户,它是通过系统的安全认证后获得自动获得的,要获取私钥也就必须先获取系统给用户的安全证书,获取安全证书和私钥的步骤如下:
首先要查看“管理工具”栏中是否有“控制台”这一项,如图3所示。如有打开控制台,如没有则“运行”弹出菜单项(如图4)中键入“mmc”,则出现如下图5所示的的对话框,系统会自动为用户添加一个名为“控制台1”的控制台。
图3
图4
图5
如果在“控制台”中没有“证书”这一项,就选择“控制台”菜单下单击“添加/删除管理单元(M)...”子菜单,即出现如图6所示的对话框。再单击图6中的“添加”按钮,出现如图7所示对话框,在这个对话框中我们选择“证书”项后,按“添加”按钮。
图6
图7
出现的对话框如图8所示。在这个对话框中我们选择第一个单选项“我的用户账户”,按“完成后出现如图9所示的对话框。这样我们在图9中我们选择个人证书项,如图示,即在控制台右边出现个人用户获得证书的情况,其实这个时候系统就已经为用户分配了一个私钥,只不过还看不到而已。
图8
图9
要看到这个私钥就必须先导出这个私钥,注意私钥一般和个人用户安全证书一起,所以要导出私钥就必须先导出个人证书。选择自己的账号,然后在”操作菜单下的“所有任务”下的“导出...”,如图10所示,选择后即出现如图11所示的对话框,它是一个导出证书的向导。跟着按“下一步”,出现如图12所示的对话框。在这个对话框中选择“是,导出私钥”单选项,按默认选择一直按“下一步”,当出现如图13所示的对话框时键入导出后私钥文件的保存密码(这个就有点象WORD和EXCEL等文档文件的保存密码了),确认后继续按“下一步。在后面出现的对话框中我们只要输入相应提示内容即可完成证书导出向导。
图10
图11
图12
图13
2、公钥的获取
上面讲了个人用户私钥是由相应用户或系统管理员在本机上由系统在安全证书导出时导出,在证书中其实也就包含了用户的公钥,如图14所示。从图中可以看出公钥是相当长的一段代码,比起我们平时WORD或EXCEL所用的密码不知长多少倍,图中显示的还是较短的。用这种方式只是系统内得到承认,系统外用户就无法证实其真实性,也不具有法律效力,所以我们一般向专门的电子安全机构申请,这个机构就叫做公钥组织(即Public Key Ifrastructure,也即通常所讲的PKI),在申请证书的后PKI会分配一个公钥给申请用户。具体的申请过程途径有多种,现介绍两种方法。
图14
方法一:就是在“控制台”中选择用户然后在“操作”菜单下选择“所有任务”下的几种申请方法,如图15。
图15
方法二:就是在OUTLOOK中我们打开“工具”菜单下的“选项...”子菜单,如图16所示。在“安全邮件”中选择“获取数字标识(G)...”项,如果已联网,则会自动进入微软公司获数字标识的默认网址,在这其中会出现许多发证机关,但要记住这是要收费的,如图17和图18所示。
图16
四, 公钥和私钥的特性。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。Back
上面我们讲了有关文件加密、数字签名的方法以及公钥和私钥的获取方法,到底公钥和私钥又有哪些特性呢?我们还是不得而知。下面就简单介绍如下:
1、公钥和私钥在文件加密和数字签名上必须配对使用,且必须是同一个账号用户的。
这一点我在上面也讲过,一个文件不能同时用某一个用户账号的公钥或私钥来加密和解密,必须配对使用,就是说如果加密时用的是一个账号的公钥,那解密时必须用那个账号用户的私钥,反之,如加密时用的是某个账号用户的私钥,那解密时就必须用那账号用户的公钥。
2、公钥是可以公开的,私钥是属个人用户账号所有,不可公开的(除非自己愿意)
这一点在上面也提到过,所以我们的公钥可以通过网络传输给某人,不怕别人截取,但私钥绝不要这样传输。
3、公钥和私钥加密文件是在背后操作的
加密后的文件会变得面目全非,但我们不要知道这是怎么做,只需执行“加密”即可。
4、私钥只对作者用户提供
也就是说并不是所有用户都可以获得账号用户的私钥,但至少还可以通过以下两种途径获得:
a、作者授权;
b、具有系统管理员账号组的用户可以覆盖原私钥数据库。
所以一般来说不要怕某个人用自己的私钥对某些重要文件进行加密,而造成公司损失,至少系统管理员可以覆盖原来这个用户的私钥,至于如何覆盖,请查有关书籍。
好了,讲了这么多,基本上有关文件加密和数字签名的基础知识讲得也差不多了,当然WIN2000给文件加密的方法远不止这一种,且目前为止WIN2000的这种加密方式也只有在IE、IIS、OUTLOOK、EXCHANGE SERVER等有限的几个软件中应用,并不是所有软件都可以用。
图17
图18