[转帖]公钥基础设施(PKI,Public Key Infrastructure)闲谈

基础设施,pki,public,key,infrastructure,闲谈 · 浏览次数 : 0

小编点评

**摘要** 本文讨论了PKI技术和数字证书的安全性。PKI技术涉及密码基础设施,用于加密和签名数据。数字证书是一种用于验证数据真实身份信息的证书。 **PKI技术的安全性** PKI技术的安全性受到以下因素的影响: * **密码基础设施的安全性** * **数字证书的安全性** * **PKI协议的安全性** **数字证书的安全性** 数字证书的安全性受到以下因素的影响: * **证书的颁发机构的信任** * **证书的有效性** * **证书的扩展字段值的安全性** **PKI协议的安全性** PKI协议的安全性受到以下因素的影响: * **PKI协议的协议安全性** * **PKI协议的密钥安全性** * **PKI协议的认证机制的安全性** **PKI技术的应用** PKI技术在以下方面应用: * **身份认证** * **证书颁发** * **数据加密** **PKI技术的挑战** PKI技术的挑战包括: * **密码基础设施的安全性** * **数字证书的有效性** * **PKI协议的安全性** * **PKI技术的应用成本** **PKI技术的未来** PKI技术的未来将包括以下方面: * **更安全的密码基础设施** * **更可靠的数字证书** * **更安全的PKI协议** * **更易于使用的PKI技术**

正文

https://zhuanlan.zhihu.com/p/384436119

 

背景

在现实空间中,人类的活动范围和接触人的范围有限,人和人最初的信任是建立在小团体或部落内部。随着全球化进展,人类的活动已经遍布全球,通信极度发达,能够低延迟的在地球的两端进行通话,甚至是太空与地面的通话(参考:卫星互联网这样助力太空通话)。但这对人和人之间的身份识别带来了前所未有的挑战。

以前人和人之间的身份识别非常的简单,就是面对面的交流:通过外貌、体型、声音等。但是随着贸易的往来,人和人之间见面识别身份的代价逐渐开始变大,例如,美国和英国的人见面就要大费周章。同时,人和人之间有交往并不代表这两个人认识,可能他们真的就是陌生人而已,双方可能都极少掌握对方的信息。 所以在这种非接触式(不能见面)的情况下,如何有效的识别身份,建立信任关系是一个重要的问题。

人们最初设计互联网时,很少考虑到安全。这样的结果是,核心通信协议本质上是不安全的,只能依靠所有参与方的诚信行为。互联网时代更是对解决这个问题提出了更加迫切的需求。网络通信的双方如何认证对方的身份,对于网络安全至关重要。

身份认证技术是保护信息安全的第一道屏障,其核心技术是信息安全保障体系,也是最基本的环节。它的基本思路:经过验证用户所具有的属性,来判断用户身份是否真实。

什么意思呢?举个例子,在智取威虎山中

 

 

 

土匪通过黑话“认证”了杨子荣的“土匪”身份:

土匪:蘑菇,你哪路?什么价?(什么人?到哪里去?)
杨子荣:哈!想啥来啥,想吃奶来了妈妈,想娘家的人,孩子他舅舅来了。(找同行)
杨子荣:拜见三爷!
土匪:天王盖地虎!(你好大的胆!敢来气你的祖宗?)
杨子荣:宝塔镇河妖!(要是那样,叫我从山上摔死,掉河里淹死。)
土匪:野鸡闷头钻,哪能上天王山!(你不是正牌的。)
杨子荣:地上有的是米,喂呀,有根底!(老子是正牌的,老牌的。)
土匪:拜见过阿妈啦?(你从小拜谁为师?)
杨子荣:他房上没瓦,非否非,否非否!(不到正堂不能说。)
土匪:嘛哈嘛哈?(以前独干吗?)
杨子荣:正晌午说话,谁还没有家?(许大马棒山上。)
土匪:好叭哒!(内行,是把老手)
杨子荣:天下大耷拉!(不吹牛,闯过大队头。)
座山雕:脸红什么?
杨子荣:精神焕发!
座山雕:怎么又黄了?
杨子荣:防冷,涂的蜡!
座山雕:许旅长两件心爱的宝贝你知道是什么?
杨子荣:两件珍宝,好马快刀。
座山雕:马是什么马?
杨子荣:卷毛青棕马。
座山雕:刀是什么刀,
杨子荣:日本指挥刀。
座山雕:看来你是许旅长的人啦!

这就是一种身份认证的技术,通过双方事先掌握的秘密知识,实现了身份认证。类似于我们日常生活中的“QQ密码”(认证你是账户主人的身份)。

基于口令的身份认证技术的问题

看上去似乎很美好,有什么问题呢?上述方法的认证是基于口令的认证,这种认证天生“缺陷”,尤其是在当前点对点通信的环境下。

  1. 口令代表了你的身份,但是口令并不安全

在《智取威虎山》中,杨子荣就是利用这个问题,成功的打入土匪内部。在现实生活中一样,如果我拥有了你的密码,那么我就拥有了你QQ上的这个身份。并且,这件事很容易做,毕竟123456这样的口令始终是最流行的口令。虽然现在有了双因子认证(口令,短信验证码),但只是加大了难度,由口令代表你的身份变为口令,手机代表你的身份。

  1. 口令不能分发,势必不能大规模使用

口令是一个人的秘密,不能告诉任何人,这势必会影响大规模使用,这种Client-Server的模式还好,但是当前大量P2P模式的认证怎么办?每个人保存所有人密码的hash来认证?这种方法代价太大

  1. 杨子荣式的“挑战-应答”方式在身份认证中代价太大

这种问题可能会没有一个尽头,并且不能保证即使通过挑战,就一定百分百是真实身份。

实质上,口令的方式代表的是密码体制中的对称密码体制。

 

 

 

上述的问题也是对称密码体制存在的问题:密钥分发和管理问题。可能你发现了,对称密码就使用一把钥匙,那么问题就来了,在当今网络时代,如果大家都共享一把钥匙,那么会出现什么情况呢? 当然就是加密如同没有加密一样。所以,对称密码的痛点就在于秘钥分发的困难性。二战时期,非对称密码体制还未出来,德军和盟军都使用密码本这个东西来分发秘钥,可想而知,如果密码本被缴获,那么代价就是消息不安全,更换新的密码本(人力、物力、财力)。

这种对称加密技术的问题给身份认证也带来了挑战。那么解决方案是什么呢?

现有方案是什么

现有的解决方案是使用公钥基础设施。

非对称加密技术

公钥基础设施的基础是非对称加密技术

 

 

 

非对称加密技术,简单来说就是使用者有一对密钥:公钥和私钥。顾名思义,公钥就是公开的密钥,可以发给任何人,私钥就是秘密密钥,只能自己保留。

根据对公钥私钥的使用不同,非对称加密体制可以干两件事:加密和签名。

加密

当使用公钥对消息进行操作,用私钥进行逆操作,这种方式称为加密。

签名

用私钥进行加密,用公钥进行逆操作,这种方式叫做签名。当然一般加密的部分是消息的哈希摘要。这样用户只需要验证能否用发送者的公钥解密,然后再对比哈希摘要就可以实现对私钥的认证,继而完成身份认证。在身份认证中,更多的使用的是签名。

公钥基础设施

有了公开密钥算法之后,我们就可以通过他人的公开密钥与其安全通信,但是还有一些悬而未决的问题:如何与那些从未谋面的人进行沟通?如何存储和吊销密钥?最重要的是,如何让现实世界中数以百万计的服务器、几十亿人和设备之间安全通信?这个问题非常的复杂,而公钥基础设施(public key infrastructure, PKI)就是为解决此问题而建立的。

 

 

 

数字证书

同样,公钥如何分发也是一个问题。直接把公钥的发给别人可以吗?理论上是可以的,但实际上有诸多问题,例如我怎么知道你发给我的一串数字(公钥)是谁的?怎么发,如何保证没有被篡改?

在现实生活中,我们的做法是,给你颁发一张证书,证明你是来自蓝翔的某某某,你具有什么资质,那些产品是你做的。在数字空间中呢?

同样,数字空间中有数字证书。数字证书包含证书持有人的真实身份信息、公开密钥信息等信息一段数据。目前数字证书的格式普遍遵循 X.509V3 国际标准,证书包括证书的版本号、序列号、算法、命名规则通常采用 X.500 格式、有效日期、名称、公钥信息、数字证书颁发者标识符。 X.509V3 数字证书包括扩展标识符、关键程度指示器和扩展字段值。数字证书扩展包括密钥信息、政策信息等。

认证中心

但是是不是谁都可以颁发证书呢?理论上也是可以的,但是实际上,你发的也许根本没人信。这就和现实生活中做假证的一样,不具有可信性。

颁发证书需要强大的机构做背书。这种机构就是认证中心 CA。

认证中心 CA 为特定的应用网络和用户提供身份认证服务,负责验证公钥的合法性,证明用户是证书的合法持有者,同时,签发、分配、储存、更新和删除证书。这里我们不妨称这个CA为大哥,因为它具有最大的权威。

证书链

但是一个大哥来干这个事好费劲啊!全球这么多需求,这么多用户。怎么办呢?找些小弟吧,让他们来我这登记一下,然后我授权给他们,给与他们颁发证书的资质。这样就形成了层次结构。

 

 

 

但是有个问题出现了,小弟可靠吗?我原来是信任大哥的,但是现在你派个小弟来,我就有点犹豫了。

但是此时,如果小弟拿出一张纸条,纸条上说:我是XXX,我是大哥的小弟。并且最后附上大哥难以伪造的签名,可信吗? 这就好多了对吧,感觉一下就信任了这个小弟了。

万一小弟又派出了小小弟呢?那就小弟再写一张纸条,类似的内容,签上小弟的名字,给小小弟,小小弟就拿着开心的去办事了。这样就形成了

 

这样的信任链条,而这里面信任的基础就是签了名的纸条(数字证书)。如何验证呢?就是拿着纸条一个一个去问上一级,这是你的签名吗?直到问到大哥。

 

总结

本来想写具体的PKI的技术,但是考虑到具体技术之前需要对整体有个认识Big Picture。所以最后题目改为“闲谈”。固然有很多不完善的地方,恳请大家批评指正。

 

 

参考材料

HTTPS权威指南:在服务器和Web应用上部署SSL/TLS和PKI

与[转帖]公钥基础设施(PKI,Public Key Infrastructure)闲谈相似的内容:

[转帖]公钥基础设施(PKI,Public Key Infrastructure)闲谈

https://zhuanlan.zhihu.com/p/384436119 背景 在现实空间中,人类的活动范围和接触人的范围有限,人和人最初的信任是建立在小团体或部落内部。随着全球化进展,人类的活动已经遍布全球,通信极度发达,能够低延迟的在地球的两端进行通话,甚至是太空与地面的通话(参考:卫星互联

[转帖]ubuntu apt-get update时报错:由于没有公钥,无法验证下列签名: NO_PUBKEY 40976EAF437D05B5 E: 仓库...

在使用apt-get update 更新ubuntu时,出现下面的错误: W: GPG 错误:http://mirrors.aliyun.com/ubuntu xenial InRelease: 由于没有公钥,无法验证下列签名: NO_PUBKEY 40976EAF437D05B5 NO_PUBKE

[转帖]传输层安全协议真(TLS)的安全吗?

https://zhuanlan.zhihu.com/p/305161227 随着数字通信,计算机网络,公钥密码体制等技术的迅速发展,安全网络通信已经成为了人们的日常需求。TLS 作为目前被广泛应用的安全通信协议之一,被广泛使用于日常生活中,如HTTPS,DNS over TLS等等。 但是作为加密

[转帖]SSH交互式脚本StrictHostKeyChecking选项 benchmode=yes

https://www.cnblogs.com/klb561/p/11013774.html SSH 公钥检查是一个重要的安全机制,可以防范中间人劫持等黑客攻击。但是在特定情况下,严格的 SSH 公钥检查会破坏一些依赖 SSH 协议的自动化任务,就需要一种手段能够绕过 SSH 的公钥检查。 什么是S

[转帖]CA证书介绍与格式转换

https://www.cnblogs.com/librarookie/p/16330406.html 概念# PKCS 公钥加密标准(Public Key Cryptography Standards, PKCS),此一标准的设计与发布皆由RSA资讯安全公司(英语:RSA Security)所制定

[转帖]使用 OpenSSL 加密和解密文件

https://linux.cn/article-13368-1.html OpenSSL 是一个实用工具,它可以确保其他人员无法打开你的敏感和机密消息。 加密是对消息进行编码的一种方法,这样可以保护消息的内容免遭他人窥视。一般有两种类型: 密钥加密或对称加密 公钥加密或非对称加密 密钥加密secr

[转帖]神秘的backlog参数与TCP连接队列

https://www.cnblogs.com/codelogs/p/16060820.html 简介# 这要从一次压测项目说起,那是我们公司的系统与另几家同行公司的系统做性能比拼,性能数据会直接影响项目中标,因此压力非常大。 当时甲方给大家提供了17台服务器供系统部署,并使用LoadRunner对

[转帖]Java IO篇:序列化与反序列化

1、什么是序列化: 两个服务之间要传输一个数据对象,就需要将对象转换成二进制流,通过网络传输到对方服务,再转换成对象,供服务方法调用。这个编码和解码的过程称之为序列化和反序列化。所以序列化就是把 Java 对象变成二进制形式,本质上就是一个byte[]数组。将对象序列化之后,就可以写入磁盘进行保存或

[转帖]Java IO篇:序列化与反序列化

1、什么是序列化: 两个服务之间要传输一个数据对象,就需要将对象转换成二进制流,通过网络传输到对方服务,再转换成对象,供服务方法调用。这个编码和解码的过程称之为序列化和反序列化。所以序列化就是把 Java 对象变成二进制形式,本质上就是一个byte[]数组。将对象序列化之后,就可以写入磁盘进行保存或

[转帖]一代更比一代强!一文带你回顾DDR内存的前世今生

根据冯诺·依曼结构,计算机中要有存储器。所以直到今天,内存和硬盘仍然在电脑中占有非常重要的地位。与大容量的硬盘不同,内存在存取速度上有着非常惊人的表现,但是断电后又不能保存存入的信息。因此在电脑硬件长期的发展过程中,内存一直扮演着中转站的角色。和其他硬件一样,内存遵循着摩根定律,从最远古的SIMM到