额,以下是我自己写的,写完之后有点迷茫的是,为什么要认证,如果有大牛路过求告知....我周四去问问蔡国扬....我个人理解,CA就是通信网络里的管理员,A想和B通信,但是B不确定A靠谱不靠谱,所以A请求与B通信的时候,向CA发出CSR请求得到认证,管理员将证书发给B,B检查通过之后,发现A靠谱,然后再通信
另外推荐一篇深度好文啊,简明易懂http://www.docin.com/p-78295986.html
认证原理
(X.509有简单认证和强认证,以下为X.509的强认证的认证流程)
假设有成员:
发送方A
中间方CA(Certificate Authority)
接收方B
(假设A, B都由同一个CA签署证书,意味着共享的公钥,能够解密CA的私钥)
Step1:
A 发出和B的通信请求;同时向CA发出CSR certificate signing request
Step2:
A用户的基本信息,我们记为MA;
MA= A的身份标识(IDA)+ A的公钥(PKA)+ CA相关数据;
CA的私钥SKCA;
CA 将MA用单向加密函数生成摘要值,我们暂且以hash函数H为例,得到H(MA);
然后CA将以上结果用SKCA加密之后生成 [ H(MA)] CA;
生成证书,
证书 = hash函数H + [ H(MA)] CA + MA
Step 3:
CA将证书发送给B;
CA的公钥为PBCA;
B得到证书之后,先检查证书的有效期,通过查询CA的证书废弃表 (CRL);
如果有效,通过PBCA把[ H(MA)] CA解密之后得到H(MA);
然后B将证书中的MA用证书中的H加密之后得到H(MA)‘;
如果H(MA)‘== H(MA),即A通过认证。