数字证书基础:PKI以及数字签名
发布日期:2021-06-30 20:15:41 浏览次数:2 分类:技术文章

本文共 1380 字,大约阅读时间需要 4 分钟。

在这里插入图片描述

PKI是公钥基础设施Public Key Infrastructure的缩写,来了解一下PKI体系中中常见的概念和使用数字签名为何能够防止篡改的原理。

基础概念

  • CA(Certification Authority):权威机构和公信机构,用于颁发证书
  • CA证书:CA颁发的证书,一般收费(注意在不同的说明习惯中区分由CA颁发的证书和CA自身的证书)
  • 自签名证书:使用OpenSSL或者CFSSL等方式创建的用户自行签发的证书,签发者和拥有者相同
  • 密钥:用来加密和解密的字符串和文件,比如RSA密钥的普通长度为2048位
  • 非对称加密算法:加密和解密使用不同密钥,密钥根据使用特点成对出现,分公钥和私钥
  • 证书格式:一般为证书编码格式(PEM: Privacy Enhanced Mail),PEM为base64编码的二进制内容,DER为二进制内容
  • CSR证书签名请求:向CA机构申请数字签名证书时使用的请求文件,CSR文件需要保留,当证书过期是使用相同的CSR申请新的证书,key可以保持不变
  • 数字签名:通过非对称加密算法和MD5、SHA256等消息摘要算法对数据进行签名,用于表明身份以及防止篡改。

数字签名防止篡改的原理

数字签名一般使用了非对称加密算法和消息摘要算法结合来完成数据安全性的验证。由于数据在网络的传输途中有可能遭遇篡改,如何证明消息是发送方发给接收方,这是数字签名的主要作用之一。

发送方操作

发送方主要准备如下内容:

  • 待发送的数据
  • 使用某种消息摘要算法对待发送的数据进行运算获取的特定长度的消息摘要,可以理解为数字指纹,是对待发送数据的身份验证
  • 准备一对非对称密钥:私钥必须发送方自行严格保管,这是安全的重中之重。公钥则可以公开的形式进行分享,需要注意的是这也是安全的原则之一,需要保证用户能够获取真正的公钥。
  • 签名:使用私钥对数字指纹进行加密,加密后的指纹就是发送方的签名,使用公钥可以获取此数字指纹内容

然后,发送方就可以将数据和签名在网络上发送了

接收方操作

接收方从网络上获取传输的数据和签名,然后以安全的方式获取发送方的公钥。然后顺次做如下事情就可以确认数据是否被篡改了:

  • 使用公钥对签名进行解密,获取数据的数字指纹
  • 使用相同的摘要算法对数据进行运算,获取消息摘要
  • 如果自行计算获取的消息摘要和通过使用公钥对签名解密获取的数字指纹一致,则能证明此内容未经其他人所篡改。

常见风险

即使使用上述操作,仍然有被其他人所篡改的风险,只要如下内容一旦攻破,所谓的安全也只是形同虚设。

  • 接收方使用的公钥必须要和发送方进行严格确认,以保证此证书并非被别有居心的中间人所替换
  • 发送者的私钥必须严格保护,绝对避免泄露,这是身份的标识。

比如一旦发送者的私钥被泄漏,中间人只需要以网络攻击的方式替换发给接收方的内容即可,基本可随意操作,因为拥有发送方私钥的他基本上就等同与发送方。

另外也可以从接收方下手,如果接收方使用的是中间人所替代的自己的公钥,辅以替换发给接收方的内容,使用自己的私钥和篡改的数据进行签名,自然一点问题都没有。

在实际的场景中,还是后一种的风险一般更大,所以从接收方而言,确认使用的证书的有效性和安全性非常重要,所以这也是CA机构存在的重要原因,而使用自签名证书的情况下,保证接收方使用的公钥的正确性则是实际使用中所需要注意的。

转载地址:https://liumiaocn.blog.csdn.net/article/details/103556306 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:CFSSL: 证书管理工具:5:理解CSR文件内容
下一篇:CFSSL: 证书管理工具:4:生成Kubernetes集群证书

发表评论

最新留言

不错!
[***.144.177.141]2024年05月02日 05时12分02秒