数字证书原理分析总结

什么是数字证书

数字证书在网络上类似于人在社会上持有的身份证等证件,用来在网络上证明数字证书持有者的身份。数字证书持有者可能是现实社会中的自然人、法人,也可能是网络设备。数字证书可以简单理解为“网络身份证”,用来在网络上证明自己的身份。
数字证书与身份证都是由专门的机构来签发。

身份证通常由公安局来签发,上面盖有签发单位的公章。而受电子签名法保护的数字证书则是由国家许可的第三方数字认证中心(简称CA中心)来签发,数字证书上面有CA中心的电子签名,以证明数字证书的有效性。根据国家相关部门的许可授权建立的数字认证中心,在Internet上具有公信力,用它签发的数字证书所签署的电子合同、电子订单等电子文书具有法律效力。

数字证书上面主要包括以下信息:证书版本号、证书持有者信息、证书签发者(CA)信息、证书起止有效期、证书序列号、证书签发者的签名等。这些信息与身份证类似。证书签发者对数字证书的签名可以起到对数字证书本身的防伪作用,这与身份证上的公章类似。但CA中心对证书的数字签名是不可能被伪造的。

数字证书的特性

数字证书具有以下特性:

1.真实性:由于数字证书与现实社会中的实体(人、法人、设备等)绑定的,且数字证书签发时,需要由CA中心对数字证书申请进行严格鉴别、验证,所以数字证书可以确保网络行为的主体是真实的,可以与现实社会中的实体对应的。

2. 完整性:数字证书在使用过程中依赖于哈希算法数学原理。哈希算法可以保证受保护的内容在传输过程中不被篡改;如果被保护的内容被篡改,则一定能够发现。

3.保密性:数字证书具有加密功能。被加密的数据在加密后,只有加密方所设定的接收方证书的持有者才能阅读被加密内容;其它任何人无法阅读加密内容。

4.抗抵赖性:经过数字证书电子签名的数据,一旦签名并发布,数字证书持有者无法抵赖自己做过的数字签名。

基于以上特性,数字证书被广泛用来进行以下工作:

1、 通信加密。

由于数字证书具有机密性,它可以被用于进行密钥交换,以加密大数据量内容。

2、 身份验证。

基于数字证书具有真实性特点,它可以被用来进行身份验证。由于数字证书加密强度非常高,且数字证书经常被存储于专用的UsbKey设备,所以其安全性远大于基于口令的身份验证。

3、 电子签名。

基于数字证书的完整性、抗抵赖性特点,数字证书被广泛用于电子签名。这是数字证书最重要的应用方面。受电子签名法保护的数字证书可以被用来在网上签署电子合同、电子订单、电子公文等,签名结果具有与手写签名的法律效力。

数字证书的分类

基于数字证书的应用角度分类,数字证书可以分为以下几种:

1.服务器证书

服务器证书被安装于服务器设备上,用来证明服务器的身份和进行通信加密。服务器证书可以用来防止假冒站点。

在服务器上安装服务器证书后,客户端浏览器可以与服务器证书建立SSL连接,在SSL连接上传输的任何数据都会被加密。同时,浏览器会自动验证服务器证书是否有效,验证所访问的站点是否是假冒站点。

服务器证书保护的站点多被用来进行密码登录、订单处理、网上银行交易等。


2.电子邮件证书

电子邮件证书可以用来证明电子邮件发件人的真实性。它并不证明数字证书上面CN一项所标识的证书所有者姓名的真实性,它只证明邮件地址的真实性。

收到具有有效电子签名的电子邮件,我们除了能相信邮件确实由指定邮箱发出外,还可以确信该邮件从被发出后没有被篡改过。

另外,使用接收的邮件证书,我们还可以向接收方发送加密邮件。该加密邮件可以在非安全网络传输,只有接收方的持有者才可能打开该邮件。

3.客户端个人证书

客户端证书主要被用来进行身份验证和电子签名。

安全的客户端证书我被存储于专用的usbkey中。存储于key中的证书不能被导出或复制,且key使用时需要输入key的保护密码。使用该证书需要物理上获得其存储介质usbkey,且需要知道key的保护密码,这也被称为双因子认证。这种认证手段是目前在internet最安全的身份认证手段之一。

客户端个人证书的申请,一般需要被严格鉴证,以证明数字证书与使用者的绑定关系。该证书可以被用来进行电子签名。合法的电子证书的电子签名结果具有法律效力。因此,客户端个人证书被广泛应用于各个行业,如网络商务、电子政务、网上报税、网上银行等。

多数客户端个人证书一般具有电子邮件证书的功能。

4.企业证书

企业证书与客户端个人证书类似,可以用来进行身份验证和电子签名。区别只在于企业证书被法人或机构所拥有。

5.代码签名证书

代码签名证书用来证明软件的签发者,发布信任代码。比如网络上广泛使用的ActiveX如果未签名,浏览器会拒绝安装;而签过名的ActiveX则会被提示该软件的发行公司,由用户确认是否安装。这对于防止恶意软件假冒可信公司安装软件非常重要。

代码签名证书除了可以用于签署微软可执行代码外,也可以用来签名java代码、Symbian代码等。

你可能感兴趣的:(原理,ca)