什么是证书和认证系统
证书是保存有关个人或机构的信息及其公共密钥的数字记录。用RSA数据安全创始人之一RonRivest的话来说,“数字证书是您在因特网上的名片”。它们是用于多种安全用途的个人数字ID。
数字证书是标志网络用户身份信息的一系列数据,用来在网络通讯中识别通讯各方的身份,即要在Internet上解决"我是谁"的问题,就如同现实中我们每一个人都要拥有一张证明个人身份的身份证或驾驶执照一样,以表明我们的身份或某种资格。
数字证书采用公钥密码体制,即利用一对互相匹配的密钥进行加密、解密。每个用户拥有一把仅为本人所掌握的私有密钥(私钥),用它进行解密和签名;同时拥有一把公共密钥(公钥)并可以对外公开,用于加密和验证签名。当发送一份保密文件时,发送方使用接收方的公钥对数据加密,而接收方则使用自己的私钥解密,这样,信息就可以安全无误地到达目的地了,即使被第三方截获,由于没有相应的私钥,也无法进行解密。通过数字的手段保证加密过程是一个不可逆过程,即只有用私有密钥才能解密。在公开密钥密码体制中,常用的一种是RSA体制。
用户也可以采用自己的私钥对信息加以处理,由于密钥仅为本人所有,这样就产生了别人无法生成的文件,也就形成了数字签名。采用数字签名,能够确认以下两点:
(1)保证信息是由签名者自己签名发送的,签名者不能否认或难以否认;
(2)保证信息自签发后到收到为止未曾作过任何修改,签发的文件是真实文件。
证书将公共密钥绑定到密钥所有者并提供一种可靠的交换密钥的方法。一旦交换,密钥则可用于加密和解密消息。简单地说,公共密钥方案以类似如下的方式起作用:
1.甲希望给乙发送私人消息。甲用一种专门的实用程序生成了一对密钥。这两个密钥是惟一且彼此连接的。由一个密钥加密的数据可以用另一个(且没有其他的)解密。
2.甲保留私人密钥并使公共密钥可公共使用。
3.当甲准备给乙发送私人消息时,用其私人密钥加密。
4.乙收到消息后,用甲的公共密钥解密它。
相反的路也可以。乙可以用甲的公共密钥加密消息并将其发送给甲。甲收到后,用私人密钥解密消息。或者,乙也可以用自己的私人密钥加密消息,甲可以用乙的公共密钥解密消息。
CA的优点是它为甲和乙提供了一种安全可靠的交换公共密钥的方法。如果密钥是在CA发布的证书中,则可以认为密钥是被授予证书的那人的真实密钥。
数字证书是由权威公正的第三方机构即CA中心签发的,如Verisign,甚至美国邮局发布。基本上是,发布一个证书,等于CA在说:“我们已经验证了证书中有关该人或机构的信息是真实的,并且证书中的公共密钥对该人或机构是有效的公共密钥”。以数字证书为核心的加密技术可以对网络上传输的信息进行加密和解密、数字签名和签名验证,确保网上传递信息的机密性、完整性,以及交易实体身份的真实性,签名信息的不可否认性,从而保障网络应用的安全性。
并非所有的证书都是为公共密钥发布而设计。属性证书将描述性数据绑定到某人或单独的公共密钥证书上,数据是经过属性授权机构数字签名的,以保证内容通过它自己的签名。
证书可能包括标识、访问控制、安全许可证等等。证书可以用于客户机和服务器间的验证和安全消息交换程序。证书甚至可用于代替网上交易时的信用卡号。由主要信用卡公司开发的SET (安全电子交易)方案是为向贸易商隐藏信用卡号而设计的,方法是用数字证书代替信用卡号。
消息伪造的风险或许是使用公共密钥基础结构的一个更重要的原因。随着电子商务的发展,增进了确保消息可信和不被更改的需要。另一个问题是消息否认,即消息的作者否认已经发送了一个消息。这些问题可以通过数字签名消息而得以避免。消息与用户密钥结合并随机创建一个惟一的消息摘要,该摘要以后可以用于检测更改并证明用户签署了原始消息。
CA提供多种服务,包括验证申请证书的人或组织的身份,管理和更新数字证书,维护证书吊销列表(已被吊销的证书)以及以安全的方式管理证书服务器和证书信息。
理想的情况是,所有证书应该具备标准格式(布局、结构)以便它们可以用于世界各地。最公认的证书标准是由ISO/IEC定义的X.5O9版本3。证书格式包括信息字段,如)X.509版本号、序列号、发布CA、有效期、持有者的名字、持有者的公共密钥和为适应应用程序而定制的可选信息。目前,数字证书主要分为安全电子邮件证书、个人和企业身份证书、服务器证书以及代码签名证书等几种类型证书。
以下步骤概述了基本的证书发布程序。注意:这些步骤也可以应用于企业证书服务器,尽管可以跳过某些验证步骤。
1.需要证书的个人生成一对密钥,一个公共的和一个私有的。
2.通过向CA提交个人信息和密钥来申请证书。
3.CA验证信息的准确性。
4.CA按照信息创建“数字文档”,包括公共密钥、有效日期、用户信息等。
5.CA用它自己的私人密钥签署数字文档。为文档内容“上锁”以便可以检测到是否被更改并保证文档是由CA发布的。
CA用其私有密钥对发布的证书进行数字签名。然后可以用CA的公共密钥验证证书。证书包含CA用它的私有密钥创建的消息摘要。如果客户可以用CA的公共密钥创建相同的摘要,则认为证书是有效且未被更改的。因此,可认为证书中的公共密钥对证书持有者是有效的。
必须相信用于验证证书的公共密钥本身是可信的。这种信任来自于这样的事实,即CA的公共密钥是在一个已由更高级别的授权机构签署的证书中。并且这种信任等级向上层授权机构,如政府机构或国际组织扩展。信任等级是公共密钥基础结构的一部分,这在以后讨论。
验证证书
SSL (安全套接层)是用于确保Web客户机和Web服务器间通信安全的公共协议。它采用公开密钥技术,广泛支持各种类型的网络,同时提供三种基本的安全服务,它们都使用公开密钥技术。SSL提供了一个证书使用的最好范例。通常,Web客户机需要验证服务器以确保站点未被哄骗。为了客户机验证,服务器也要求客户机具备证书。这里是验证服务器证书的步骤:
1.通过得到它的证书副本获取发布的CA的公共密钥。使用证书的软件通常带有CA公共密钥的集合。例如,用户可以在Internet Explorer 5上浏览证书,方法是选择“工具”菜单上的“Internet选项”,然后单击“内容”和“证书”
2.用CA公共密钥验证证书签名并检查证书有效期或CA吊销列表以查看证书是否过期或已被吊销。
3.验证服务器的域。证书列有服务器的域名。客户机将其与实际上连接到的服务器域名进行比较。如果它们匹配,则服务器一定是真实而不是冒名顶替的服务器。
4.完成SSL连接。如果以上所有的检查无误,则客户机和服务器继续SSL同步交换中的步骤并建立连接。
更完善的方案是IPSec (IP安全),它使用证书建立安全VPN(虚拟专用网络)。在安全的VPN方案中使用最高级别的安全,隐藏包括标头在内的整个IP数据分组,而不仅仅是数据分组有效负载。
证书授权机构和公共密钥基础结构
CA将它自己置于信任的位置。它必须实施证书策略并为验证证书持有者和吊销证书定义程序,如果必要的话。它也必须创建和管理密钥并确保证书持有者信息和密钥信息的秘密性。CA具备的信任级别取决于其证书策略的完整性和精确性。
Verisign是著名的证书授权机构。VeriSign的1级证书(可以免费获得)只包括用户名和电子邮件地址。更高级别的证书包括更多个人信息。事实上,公司可与Verisign合作创建具有特定信息字段的自定义容器。
用于管理密钥的框架(发布、分配、存储、吊销等)由框架系统处理,该系统包括服务器、服务器软件、策略和程序。这种组合称为PKI(公共密钥基础结构)。 PKI是通过使用公开密钥技术和数字证书来确保系统信息安全并负责验证数字证书持有者身份的一种体系。例如,某企业可以建立公钥基础设施(PKI)体系来控制对其计算机网络的访问。PKI系统的一个重要特征是允许在互不相识或无需相互信任的用户和组织间的密钥分配和建立信任路径,因特网上的电子商务就是这种情况。在将来,企业还可以通过公钥基础设施(PKI)系统来完成对进入企业大门和建筑物的提货系统的访问控制。
IETF有两个工作组从事与PKI有关的主题。PKIX(公共密钥基础结构)工作组开发因特网标准,这是支持基于X.509的PKI以所必须的。SPKI(简单公共密钥基础结构)工作组负责开发易于理解、实施和使用的密钥证书格式和联合协议。设计SPKI是为支持因特网应用程序的安全,包括IPSEC协议,加密电子邮件和Web文档、付款协议和其他应用程序以支持一定范围内的信任模型。