Internet上的安全认证
─加密与数字签名


    迅速发展的Internet给人们的生活、工作带来了巨大的方便,人们可以坐在家里通过Internet收发电子邮件、打电话、进行网上购物、银行转帐等活动。然而,您可曾想过,您发出的电子邮件(或别人发给您的电子邮件)是否已被人看过,甚至还被人修改过?您和朋友打的电话是否被人窃听?当您某次从您的银行帐户上给别人转帐5万元(通过Internet),是否会有人恶意地将您的这一次操作重新执行1次甚至多次?总之,您在Internet上做的一切安全吗?同时,对于银行和信用卡公司而言,怎样来确定您就是真正的“您”呢?
    这一切,导致了加密、解密、数字签名技术的产生,并且正在继续不断地研究和发展。本文试图就这些技术作一些初步的介绍和探讨,并给出在Microsoft Outlook Express下安全收发电子邮件的操作方法。

一、加密

   为了保护您的数据在传递过程中不被别人窃听或修改,您必须对数据进行加密(加密后的数据称为密文),这样,即使别人窃取了您的数据(密文),由于没有密钥而无法将之还原成明文(未经加密数据),从而保证了数据的安全性,接收方因有正确的密钥,因此可以将密文还原成正确的明文。

1、常规密钥密码体制

    所谓常规密钥密码体制,即加密密钥与解密密钥是相同的。
    在早期的常规密钥密码体制中,典型的有代替密码,其原理可以用一个例子来说明。
    例如,将字母a,b,c,d,…,w,x,y,z的自然顺序保持不变,但使之与D,E,F,G,…,Z,A,B,C分别对应(即相差3个字符)。若明文为student则对应的密文为VWXGHQW(此时密钥为3)。
    由于英文字母中各字母出现的频度早已有人进行过统计,所以根据字母频度表可以很容易对这种代替密码进行破译。

2、数据加密标准DES

    DES算法原是IBM公司为保护产品的机密于1971年至1972年研制成功的,后被美国国家标准局和国家安全局选为数据加密标准,并于1977年颁布使用。ISO也已将DES作为数据加密标准。
    DES对64位二进制数据加密,产生64位密文数据。使用的密钥为64位,实际密钥长度为56位(有8位用于奇偶校验)。解密时的过程和加密时相似,但密钥的顺序正好相反。
    DES的保密性仅取决于对密钥的保密,而算法是公开的。DES内部的复杂结构是至今没有找到捷径破译方法的根本原因。现在DES可由软件和硬件实现。美国AT&T首先用LSI芯片实现了DES的全部工作模式,该产品称为数据加密处理机DEP。

3、公开密钥密码体制

    公开密钥(publickey)密码体制出现于1976年。它最主要的特点就是加密和解密使用不同的密钥,每个用户保存着一对密钥──公开密钥PK和秘密密钥SK,因此,这种体制又称为双钥或非对称密钥密码体制。
    在这种体制中,PK是公开信息,用作加密密钥,而SK需要由用户自己保密,用作解密密钥。加密算法E和解密算法D也都是公开的。虽然SK与PK是成对出现,但却不能根据PK计算出SK。公开密钥算法的特点如下:
    用加密密钥PK对明文X加密后,再用解密密钥SK解密,即可恢复出明文,或写为:DSK(EPK(X))=X
    加密密钥不能用来解密,即
    DPK(EPK(X))≠X在计算机上可以容易地产生成对的PK和SK。
    从已知的PK实际上不可能推导出SK。
    加密和解密的运算可以对调,即:
    EPK(DSK(X))=X/
    在公开密钥密码体制中,最有名的一种是RSA体制。它已被ISO/TC97的数据加密技术分委员会SC20推荐为公开密钥数据加密标准。
    下面简要介绍RSA体制的原理。
    用户选择2个足够大的秘密的素数p和q(一般为100位以上的十进制数)。
    ,li>令n=pq。n是公开的。实际上,从n分解出因子p和q是极其困难的。n的欧拉函数Φ(n)=(p-1)(q-1),Φ(n)即小于等于n并与n互素的数的个数。
    选择一个相对较大的整数e作为加密指数,使e与Φ(n)互素。
    解同余方程
    ed=1modΦ(n)
    求出解密指数d。
    若用整数X、Y分别表示明文、密文,则以下2式可用于加密和解密(X、Y均小于N):
    加密:Y=Xemodn
    解密:X=Ydmodn
    每个用户都有一组密钥(e,d、n)。对这种体制,只有(e,n)是出现在公开手册上的(即PK)。d则是需要用户保密的(即SK)。
    要求明文X<n。
    RSA体制的保密性在于对大数的因数分解很花时间。若设机器周期为1μs,分解一个二进制数n所需时间如表1所示。
    位数1002003005007501000
    所需时间30秒3天9年1兆年2×109年6×1015年
    因此,当n足够大时,在目前情况下,对n进行因数分解实际上是无法实现的。

二、数字签名

    以往的书信或文件是根据亲笔签名或印章来证明其真实性的。但在计算机网络中传送的报文又如何盖章呢?这就是数字签名所要解决的问题。数字签名必须保证以下3点:
    1.接收者能够核实发送者对报文的签名;
    2.发送者事后不能抵赖对报文的签名;
    3.接收者不能伪造对报文的签名。
    现在已有多种实现各种数字签名的方法,但采用公开密钥算法要比常规算法更容易实现。下面就来介绍这种数字签名。
    发送者A用其秘密解密密钥SKA对报文X进行运算,将结果DSKA(X)传送给接收者B。B用已知的A的公开加密密钥得出EPKA(DSKA(X))=X。因为除A外没有别人能具有A的解密密钥SKA,所以除A外没有别人能产生密文DSKA(X)。这样,报文X就被签名了。
    假若A要抵赖曾发送报文给B。B可将X及DSKA(X)出示给第三者。第三者很容易用PKA去证实A确实发送消息X给B。反之,如果是B将X伪造成X',则B不能在第三者面前出示DSKA(X')。这样就证明B伪造了报文。可以看出,实现数字签名也同时实现了对报文来源的鉴别。
    但是上述过程只是对报文进行了签名。对传送的报文X本身却未保密。因为截到密文DSKA(X)并知道发送者身份的任何人,通过查问手册即可获得发送者的公开密钥PKA,因而能够理解报文内容。则可同时实现秘密通信和数字签名。SKA和SKB分别为A和B的秘密密钥,而PKA和PKB分别为A和B的公开密钥。

三、密钥分配

    目前,公认的有效方法是通过密钥分配中心KDC来管理和分配公开密钥。每个用户只保存自己的秘密密钥和KDC的公开密钥PKAS。用户可以通过KDC获得任何其他用户的公开密钥。。
    首先,A向KDC申请公开密钥,将信息(A,B)发给KDC。KDC返回给A的信息为(CA,CB),其中,CA=DSKAS(A,PKA,T1),CB=DSKAS(B,PKB,T2)。CA和CB称为证明书(Certificate),分别含有A和B的公开密钥。KDC使用其解密密钥SKAS对CA和CB进行了签名,以防止伪造。时间戳T1和T2的作用是防止重放攻击。
    最后,A将证明书CA和CB传送给B。B获得了A的公开密钥PKA,同时也可检验他自己的公开密钥PKB。

四、Outlook Express下的操作实例

    Microsoft公司的Outlook Express是目前功能较完善、使用较方便的一个电子邮件管理软件,其中所提供的安全特性就支持前述的加密与数字签名,使您在Internet上可以发送和接收安全的电子邮件,下面具体介绍其使用方法。
    要使用Outlook Express中的安全电子邮件,您需要数字标识。数字标识(也叫证书)提供了一种在Internet上验证您身份的方式,与司机驾照或日常生活中的其他身份证的方式相似。这里所说的数字标识即前面提到的公开密钥PK和秘密密钥SK。
    数字标识允许您给电子邮件签名,这样真正的收件人可确保该邮件确实是由您发来的并且没有受损。另外,数字标识也允许其他人给您发送加密邮件。

1、获取您的数字标识

    使用数字标识之前需要先获取数字标识,您可以从发证机构获得数字标识,那是个负责发布数字标识的组织,并不断地验证数字标识是否仍然有效。然后您可以将您的数字标识发送给需要给您发送加密邮件的用户,您也可以用相同的数字标识发送签名邮件。有较多的商业发证机构,如果您选用Verisign公司,您可以通过以下步骤获得您的数字标识:
    访问http://www.verisign.com站点,按提示填入您的个人信息及电子邮件地址,确认无误并提交后,稍过一会儿,您可以从您的电子信箱中收到一封Verisign公司发来的电子邮件,其中就包含了您的DigitalIDPIN。
    根据刚收到的电子邮件的提示,访问http://digitalid.verisign.com/mspickup.htm,然后根据提示输入您的DigitalIDPIN并提交,成功后,您即可获得您的数字标识(数字标识将自动被加入到了本机的Outlook Express中)。
    需要注意的是,Verisign公司提供给您的数字标识免费使用日期只有60天,您要长期使用,必须付费。
    以下是其他一些提供类似服务的商业发证机构:
    BankGateCA,http://www.bankgate.com/
    BelSignNVSA,http://www.belsign.be/
    CertiSignCertificadoraDigitalLtda(西班牙文),http://www.certisign.com.br/
    GTECyberTrustSolutions,Incorporated,http://www.cybertrust.gte.com/
    KeyWitnessCanada,http://www.keywitness.ca/
    ThawteConsulting,http://www.thawte.com/

2、使用您的数字标识

    在发送签名邮件之前,必须注意电子邮件帐号与数字标识的对应。为此,请单击“工具”菜单并单击“帐号”,选择您想使用标识的帐号,单击“属性”,然后单击“安全”选项卡。检查名称为“发送安全邮件时使用数字标识”的对话框,然后单击“数字标识”,选择与该帐号有关的数字标识(只显示出与帐号的电子邮件地址相同的邮件地址的数字标识)。

3、备份您的数字标识

   数字标识的部分信息是存储在计算机上的不能替换的非公开关键字。如果该非公开关键字丢失,您将无法再发送已签名的邮件或读取具有该数字标识的加密邮件。您应该保留数字标识的备份,以防包含该数字标识的文件损坏或无法读取。要备份数字标识,先运行Internet Explorer,然后单击“查看”菜单,然后单击“Internet选项”,单击“内容”选项卡并随后单击“个人”按钮。“导入”和“导出”该页面上的按钮允许管理您的数字标识。

4、安全电子邮件

    您已经拥有数字标识,可以发送安全电子邮件了。Outlook Express中的安全电子邮件通过使用数字签名和加密对Internet通信提供保护。使用数字签名,您可以在所发电子邮件上签署独特的标识,这样接收方就可以确认您是邮件的发送者,并且邮件在传送过程中未被篡改。对所发邮件进行加密有助于确保只有预定接收人员才能在传送过程中读取该邮件。
    因为Outlook Express使用标准S/MIME,所以其他人可以用支持该技术的程序阅读您所撰写的安全电子邮件。同样,您也可以用支持S/MIME技术的电子邮件程序阅读他人撰写的邮件。Outlook Express具有内置安全电子邮件,并提供具有下列特性的易用界面:
    发送签名的邮件。签名电子邮件允许收件人验证您的身份。要对某邮件进行数字签名,可以单击“工具”菜单,然后单击“数字签名”(或使用邮件工具条上的按扭)。
    接收签名的邮件。来自其他人的已签名邮件允许您验证邮件的身份——该邮件是否由指定用户发送、在发送过程中是否已更改。已签名的邮件带有特定的已签名图标。如果接收到的已签名邮件出现问题,则表明该邮件已被更改或来自其他发送人。
    发送加密的邮件。将某电子邮件加密会防止传输过程中有其他人阅读邮件。要将电子邮件加密,您需要有收件人的数字标识。数字标识必须是“通讯簿”中所输入的那个数字标识的一部分。要发送加密邮件,请单击“工具”菜单,然后单击“加密”(或使用邮件工具栏上的按钮)。
    接收加密的邮件。收到加密的电子邮件信息时,Outlook Express自动将电子邮件解密。
    将您的数字标识发送给别人。他人必须知晓您的数字标识才能给您发送加密邮件。要将数字标识发送给他们,只要发送带有您的数字签名的电子邮件即可,Outlook Express会自动包含您的数字标识。
    检索他人的数字标识。要向其他人发送加密邮件,您必须知道他们的数字标识。Outlook Express允许您通过目录服务检索数字标识。要查找数字标识,可以单击“编辑”菜单,然后单击“查找用户”,选择带有数字标识的目录服务(如VeriSign目录服务),在相应的搜索域中输入接受方名称或电子邮件地址,然后单击“查找”,从结果窗格中选择列表然后单击“添加到通讯簿”。
    获得他人数字标识的另一方法是让他给您发送“签过名的邮件”。要将一封签过名的邮件数字标识添加到您的“通讯簿”,请单击“文件”菜单并单击“属性”,单击“安全”选项卡并单击“将数字标识添加到通讯簿中”按钮。
    更改数字标识的可信状态。将某人的数字标识添加到通讯簿中时,与之相关的信任状态表明您是否信任要给其发布数字标识的个人、小组或公司。如果某数字标识的所有者警告您,他或她怀疑数字标识私人密钥已受到损害,您就可能希望将信任状态更改为“明确不信任”。


back(1).gif (2190 字节)