数字证书——权威机构对私钥持有者身份的认可

访客4年前黑客文章1120

数字证书——权威机构对私钥持有者身份的认可

在现代密码学中,非对称密码算法应用十分常见,银行卡、U盾以及 *** 通信中应用的https,都应用了非对称密码算法技术。

相对于对称密码算法,非对称密码算法的提出,在一定程度上可以简化密钥管理的难题,但由于非对称密码算法中的公钥在分发过程中可能被截取后篡改,接收方也无从核查接收到的公钥所对应私钥的持有者身份,因而引入了数字证书。

一、什么是数字证书

大学毕业时学校会颁发学位证书和学历证书;驾照考试通过后交管局会颁发机动车驾驶证书……相同的,个人身份认证通过之后,数字证书认证机构(Certificate Authority,简称CA)会颁发数字证书(也叫公钥证书)。

和学历证书、驾照相似,数字证书中包含个人信息,联系方式,以及个人公钥等信息,其中个人身份认证通过属于获取数字证书的前提条件,个人身份认证由CA(或专门用于对用户提供面对面的证书业务服务机构Registry Authority,简称RA)来完成,CA机构根据电子认证业务准则(CPS,Certification Practice Statement)的要求完成用户的个人身份认证。

二、数字证书的获取与使用

个人用户可自行生成一对公私钥对,将公钥发送给认证机构CA,CA确认用户身份之后,使用自身的私钥对个人用户的身份信息和公钥信息进行加密处理(签名)后形成数字证书,此时个人用户即获得了一张个人数字证书。

数字证书可建立公钥与用户之间的对应关系,通常应用在验证个人用户的数字签名中,也应用在对隐私信息的加密中。在应用层面,之所以引用数字证书而不直接应用个人用户的公钥,目的是通过可信任的认证机构CA对用户身份的认可,使个人用户的数字签名合法化,同时让第三方使用数字证书加密更加安全,避免中间人篡改公钥。

三、数字证书认证机构CA

数字证书认证机构(Certificate Authority,简称CA),也常见CA中心或证书认证中心等称呼,拥有自己的公钥和私钥,负责给用户签发数字证书。常见的数字证书认证机构有:国外的Verisign,国内的CFCA、BJCA、GDCA、天威诚信等。

CA签发数字证书具体过程如下:

(1)将用户身份信息和用户公钥信息,按照特定格式组成数据D。

(2)使用哈希算法对数据D进行计算得到摘要值H。

(3)使用CA自身私钥对摘要值H进行签名得到数字签名S。

(4)将用户身份信息、用户公钥信息和数字签名S,按照特定格式(如X.509)组成数字证书。

CA 不仅负责给用户签发数字证书,还需要履行对数字证书的全生命周期管理职责,CA主要职责包括:

(1)数字证书的签发和更新。对新用户签发数字证书;在老用户有需要时,对其更新数字证书。

(2)数字证书的状态变更,包括:吊销、挂失、解挂等。证书吊销后将成为无效证书,永远不能使用;证书挂失后将成为无效证书,但可以通过解挂恢复成有效状态。

(3)数字证书的查询及下载。CA对外提供公开的查询及下载服务,允许用户根据条件随时查询证书并下载。常用服务方式为LDAP, LDAP是Light weight Directory AccessProtocol(轻型目录访问协议)的缩写。CA系统通过LDAP机制对外发布所有证书及CRL。用户端可以通过LDAP协议访问LDAP服务器,按需下载满足条件的证书和CRL。

(4)数字证书状态查询。提供公开服务方式,允许用户随时查询证书状态,以便判断该证书是否处于有效状态。常用服务方式有CRL和OCSP。

四、数字证书状态查询

如果用户的个人数字证书已经处于非正常状态(过期、吊销、冻结等),CA将通过CRL、OCSP等方式告知正在进行签名验证的第三方。

CRL是Certificate Revocation List的缩写,表示证书吊销列表。CA或CRL签发者定期签发并发布CRL,并在CRL中指明下次签发的最晚时间。因CRL为定期发布,存在用户证书已临时挂失,但CRL状态未及时发布的情况,此时第三方进行签名验证仍是可以通过的。

OCSP是Online Certificate Status Protocol的缩写,表示在线证书状态协议。CA系统通过OCSP机制为用户提供在线证书状态查询服务。用户端将待查询证书序列号按照OCSP协议组织成OCSP请求包,然后将OCSP请求包发送给OCSP服务器,OCSP服务器查询数据库获得该序列号对应证书的状态,并组织成OCSP响应包后返回给用户端。用户端解析OCSP响应包后获得该证书的当前状态。相对比与CRL方式,OCSP查询的数字证书状态更为准确。

SOCSP是Simple Online Certificate Status Protocol的缩写,表示简化版在线证书状态协议。由于OCSP请求包和响应包需要数字签名,从而导致其执行效率不高。为提高OCSP的响应速度,采用MAC算法代替数字签名,形成简化版的OCSP。

五、双证书

相关文章

朋友圈被直播刷屏,播商时代到来了?

朋友圈被直播刷屏,播商时代到来了?

“繁华产生虚假的拥护,黄昏见证真正的信徒”。 疫情中的世界,限制了人类的活动方式,但是改变不了社会运转的需求,各行各业都在寻找新的“云模式”,不知道近期大家的朋友圈是不是也一样,被满屏的直播刷屏,不...

知乎分析报告:用知识连接社区

知乎分析报告:用知识连接社区

通过对同领域优秀产品的学习,能够帮助我们更高效、更明确地推进产品模式与设计。于是笔者在业务方向社区化后,选择了知乎作为分析对象,并试图从中找到学习之处。 最近对接的业务方向开始发生转变,业务方提出了...

盘点「首页金刚区」的推荐应用设计形式

盘点「首页金刚区」的推荐应用设计形式

首页金刚区,是用户进入app后第一眼看到的模块,因此承担着产品功能导航和业务导流的任务。那么针对金刚区中的推荐应用设计中,一般可以采用什么形式呢?它们又有什么好处与缺点呢? 金刚区作为首页的承载核心...

产品设计方法论:你的产品认知,决定了你的产品未来(二)

产品设计方法论:你的产品认知,决定了你的产品未来(二)

在阐述这篇文章前,这里请允许我给各位关注我的小伙伴们先道个歉。最近因为个人以及工作上的原因,欠下的文章迟迟没有更新,希望大家能够谅解。新来的小伙伴可以去回顾下上篇文章的内容,帮助你更好的理解这篇文章。...

运营哲学派:运营的道、术和具

运营哲学派:运营的道、术和具

很多人都是习惯性地看到了冰山一角,就以为看到了全世界。 1. 门外人的误解 工作多年,看到不少从业者或者是涉及相关工作的人,总会有些让人啼笑皆非的误解,甚至做一些劝都劝不住的匪夷所思的事情: 比如:...

如何实现敏捷软件开发?

如何实现敏捷软件开发?

敏捷开发究竟是什么?通俗地讲,他就是将项目分为多个独立运行,但又存在联系地小项目,通过分别完成实现快速开发。整体来看,它的优势就是高效! 在软件工程领域,有过很多软件开发模型,如瀑布模型、快速原型模...