我理解的X.509
2016-04-04 00:47
281 查看
额,以下是我自己写的,写完之后有点迷茫的是,为什么要认证,如果有大牛路过求告知....我周四去问问蔡国扬....我个人理解,CA就是通信网络里的管理员,A想和B通信,但是B不确定A靠谱不靠谱,所以A请求与B通信的时候,向CA发出CSR请求得到认证,管理员将证书发给B,B检查通过之后,发现A靠谱,然后再通信
另外推荐一篇深度好文啊,简明易懂http://www.docin.com/p-78295986.html
假设有成员:
发送方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通过认证。
另外推荐一篇深度好文啊,简明易懂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通过认证。
相关文章推荐
- LPS
- iOS数据回调三大利器——代理、通知与Block
- Python学习笔记(一)
- 【Linux】netdata监控组件
- 关于javascript面向对象之闭包
- cocoaPod导入第三方提示异常"add use_frameworks"
- WebService学习总结(四)——调用第三方提供的webService服务,使用cxf
- Android蓝牙串口通信模板及demo,trick
- 10013---Trail ~ Catalogs
- Unity 屏幕震动效果实现
- Intellij Idea调试功能总结
- 《JavaScript高级程序设计》——JS中Object与Array类型常用方法。
- [HDU 2977]Color Squares[BFS]
- Android中Intent传递类对象的方法一(Serializable)
- 深入理解Java:注解(Annotation)--注解处理器(反射机制)
- 手机qq获取本地安装包的原理简单实现
- Android学习之界面篇(二)Android AnimationSet简单使用
- Linux下Tomcat的安装配置
- Animator根骨骼运动原始实现代码
- Tsinsen A1114 寻找三位数