• Ukieweb

    佳的博客

    曾梦想仗剑天涯,后来工作忙没去。

PKI 公钥基础设施 及 CA 认证原理 之 -- 基本概念

基础概念

  • PKI(Public Key Infrastructure)公钥基础设施 ,是通过使用公钥技术数字证书来提供系统信息安全服务,并负责验证数字证书持有者身份的一种体系。PKI 技术是信息安全技术的核心。

  • CA(Certification Authority) 认证中心:作为权威的、可信赖的、公正的第三方机构,CA中心主要职责是颁发  管理 数字证书。其中心任务是颁发数字证书,并履行用户身份认证的责任。

  • CA(Certification Authority) 证书:,指的是权威机构给我们颁发的证书

  • 密钥:就是用来加、解密用的文件或者字符串。密钥在非对称加密的领域里,指的是私钥公钥,他们总是成对出现,其主要作用是加密解密。常用的加密强度是:2048 bit

  • RSA:非对称加密算法。非对称加密有两个不一样的密码,一个叫私钥,另一个叫公钥,用其中一个加密的数据只能用另一个密码解开,用自己的都解不了,也就是说用公钥加密的数据只能由私钥解开

  • 数字证书:是由证书认证机构(CA)对证书申请者真实身份验证之后,用 CA 的根证书对申请人的一些基本信息以及申请人的公钥进行签名(相当于加盖发证书机 构的公章)后形成的一个数字文件。实际上,数字证书就是经过CA认证过的公钥,除了公钥,还有其他的信息,比如:Email国家城市域名等。

证书结构

最简单的证书包含:一个公钥名称以及证书授权中心的数字签名。一般情况下证书中还包括密钥的有效期颁发者(证书授权中心)的名称该证书的序列号等信息,证书的结构遵循 X.509 v3 版本的规范。

image.png

证书的各字段解释:

  • 版本:即使用 X.509 的版本,目前普遍使用的是 v3 版本(0x2)。

  • 序列号:颁发者分配给证书的一个正整数,同一颁发者颁发的证书序列号各不相同,可用与颁发者名称一起作为证书唯一标识。

  • 签名算法:颁发者颁发证书使用的签名算法。

  • 颁发者:颁发该证书的设备名称,必须与颁发者证书中的主体名一致。通常为CA服务器的名称。

  • 有效期:包含有效的起、止日期,不在有效期范围的证书为无效证书。

  • 主体名:证书拥有者的名称,如果与颁发者相同则说明该证书是一个自签名证书。

  • 公钥信息:用户对外公开的公钥以及公钥算法信息。

  • 扩展信息:通常包含了证书的用法、CRL的发布地址等可选字段。

  • 签名:颁发者用私钥对证书信息的签名。

证书的编码格式

  • PEM (Privacy Enhanced Mail),通常用于数字证书认证机构(Certificate Authorities,CA),扩展名为:.pem, .crt, .cer, 和 .key。内容为 Base64 编码的ASCII码文件,有类似"-----BEGIN CERTIFICATE-----" 和 "-----END CERTIFICATE-----"的头尾标记

  • DER (Distinguished Encoding Rules),与 PEM 不同之处在于其使用二进制而不是Base64编码的ASCII。扩展名为:.der,但也经常使用 .cer 用作扩展名

证书签名请求CSR

CSR(Certificate Signing Request),它是向 CA 机构申请数字证书时使用的请求文件

在生成请求文件前,我们需要准备一对对称密钥。私钥信息自己保存请求中会附上公钥信息以及国家城市域名Email 等信息,CSR 中还会附上签名信息。当我们准备好 CSR 文件后就可以提交给 CA 机构,等待他们给我们签名签好名后我们会收到 crt 文件,即 CA证书

注意:CSR 并不是证书。而是向权威证书颁发机构 CA 获得签名证书的申请

保留好 CSR,当权威证书颁发机构颁发的证书过期的时候,你还可以用同样的 CSR 来申请新的证书,key 保持不变.

数字签名

数字签名就是"非对称加密+摘要算法",其目的不是为了加密,而是用来防止他人篡改数据

数字签名过程

其核心思想是:比如

  1. A 要给 B 发送数据,A 先用摘要算法得到数据的指纹,然后用 A 的私钥加密指纹加密后的指纹就是 A 的签名

  2. B 收到数据和 A 的签名后,也用同样的摘要算法计算指纹,然后用 A 公开的公钥解密签名,比较两个指纹,如果相同,说明数据没有被篡改,确实是 A 发过来的数据。

  3. 假设 C 想改 A 发给 B 的数据来欺骗 B,因为篡改数据后指纹会变,要想跟 A 的签名里面的指纹一致,就得改签名,但由于没有 A 的私钥,所以改不了,如果 C 用自己的私钥生成一个新的签名,B 收到数据后用 A 的公钥根本就解不开

常用的摘要算法有 MD5SHA1SHA256。使用私钥对需要传输的文本摘要进行加密得到的密文即被称为该次传输过程的签名

HTTP、HTTPS、SSL、TLS

  • HTTP 是一个网络协议,是专门用来传输 Web 内容,大部分网站都是通过 HTTP 协议来传输 Web 页面、以及 Web 页面上包含的各种东东(图片、CSS 样式、JS 脚本)。

  • SSL 是“Secure Sockets Layer”的缩写,中文叫做“安全套接层”。它是在上世纪90年代中期,由网景公司设计的。为啥要发明 SSL 这个协议捏?因为原先互联网上使用的 HTTP 协议是明文的,存在很多缺点——比如传输内容会被偷窥(嗅探)和篡改。发明 SSL 协议,就是为了解决这些问题。

  • TLS SSL的 标准化,SSL 标准化之后的名称改为 TLS(是“Transport Layer Security”的缩写),中文叫做“传输层安全协议”。很多相关的文章都把这两者并列称呼(SSL/TLS),因为这两者可以视作同一个东西的不同阶段

  • HTTPS 协议,说白了就是“HTTP 协议”和“SSL/TLS 协议”的组合。你可以把 HTTPS 大致理解为——“HTTP over SSL”或“HTTP over TLS”。


SSL 位于TCP/IP中的网络传输层,作为网络通讯提供安全以及数据完整性的一种安全协议,TLS 作为 SSL 协议的继承者,成为下一代网络安全性和数据完整性安全协议

SSL 共有3个版本:1.0、2.0、3.0;TLS也有1.0、2.0、3.0,通常我们说的 SSL/TLS 协议指的是SSL3.0 / TLS1.0的网络传输层安全协议

SSL/TLS协议分为两层

  • 记录协议: 建议在可靠的传输协议之上,为高层协议提供数据封装、压缩、加密等基本功能的支持

  • 握手协议:建立在SSL记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等


0
0
下一篇:PKI 公钥基础设施 及 CA 认证原理 之 -- CA证书申请及证书认证过程

0 条评论

老佳啊

85后,大专学历,中原人士,家里没矿。

由于年轻时长的比较帅气,导致在别人眼里,我一直不谈恋爱的原因是清高,实则是自己的小自卑。最大的人生目标就是找一个相知相爱相容的人,共度余生。

和人相处时如果能感受到真诚,会非常注重彼此的关系,对别人没有什么心机,即使有利益冲突,一般也会以和为贵,因为在这个世界上,物质的东西,从来不会吸引到我。

特别迷恋那些大山大水,如果现在还能隐居,可能早就去了。对那些宏伟的有底蕴的人文景观比较不感冒。

从事于IT行业,却一直对厨房念念不忘,由于身材魁梧,总觉得自己上辈子是个将军,可惜这辈子没当兵,也不会打架。