加入收藏 | 设为首页 | 会员中心 | 我要投稿 宁德站长网 (https://www.0593zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营中心 > 网站设计 > 教程 > 正文

非对称加密与OpenSSL

发布时间:2016-11-02 04:21:08 所属栏目:教程 来源:站长网
导读:副标题#e# 随着个人隐私越来越受重视, HTTPS也渐渐的流行起来, 甚至有许多网站都做到了全站HTTPS, 然而这种加密和信任机制也不断遭遇挑战,比如戴尔根证书携带私钥,Xboxlive证书私钥泻露, 还有前一段时间的沃通错误颁发Github根域名SSL证书事件. 因此本文从

上面所有用到的证书及其组件,如公钥,私钥,csr等,其格式都是PEM的,这也是最常见的一种格式,
可以用文本便及其打开,通常是以-----BEGIN XXX------开头, 以-----END XXX-----结束,
中间的部分则是实际密钥的base64编码, 其二进制表示也称为DER格式, 两者可以用base64转化,
因此都属于x509实现的证书格式.

还有比较常见的证书格式,为PKCS7PKCS12. 其中PKCS7是由JAVA使用的开放标准,并且也被
Windows所支持, 其内是不包含私钥信息的; 而PKCS12则是一种非公开的标准,用来提供比PEM的
纯文本格式更高的安全性, 这是Windows建议使用的格式, 其中可以包含私钥信息.

不同格式的转换如下所示.

PEM <-> DER:

openssl x509 -in bar.pem -outform der -out bar.der
openssl x509 -inform der -in foo.der -out foo.pem

PEM <-> PKCS7:

openssl crl2pkcs7 -nocrl -certfile foocert.pem -out foocert.p7b 
openssl pkcs7 -in foocert.p7b  -print_certs -out barcert.pem  

PEM <-> PKCS12:

openssl pkcs12 -inkey private.key -in foocert.pem -export -out foocert.pfx
openssl pkcs12 -in foocert.pfx -nodes -out barcert.pem 

后记

当今我们使用最多的https本质上就是在http协议的基础上对传输内容进行了非对称的加密,
当然实现过程多了很多复杂的交互, 感兴趣的可以去查看SSL和TLS协议. 我想说的是,
这一切信任机制的基石是对于CA的信任, 如果说CA的私钥泻露,或者我们错误地信任了一个坏CA,
那么https的隐私性也就不复存在了, 因为其可能对无效的csr进行签名, 从而使得https中间人攻击
成为现实. 据说早在两年前伟大的防火墙就已经可以对https进行监听,敏感词识别和连接重置,
后来因为某种原因才从大范围应用转为只对特殊对象使用,不过那是后话了.

博客地址:

  • http://pppan.tk
  • 有价值炮灰-博客园

欢迎交流,文章转载请注明出处.

(编辑:宁德站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读