PKI基本架构
公共基础设施,public key infrastructure。通过使用公钥技术和数字证书来提供系统信息安全服务,并负责验证数字证书持有者身份的一种体系。
PKI的核心围绕数字证书的申请、颁发、使用等整个生命周期展开,使用到:对称密钥加密、公钥加密、数字信封、数字签名等技术。
解决问题
1、公钥合法性
A与B进行通信,C作为攻击者存在于网络中,它有A和B的公钥,C拦击了B发送给A的B的公钥,并将自己的公钥发送给A,A获得的是C的公钥,C再拦截了B发送给A的信息,用自己的私钥对伪造的信息进行签名,然后使用A的公钥对伪造信息进行加密,将这两部分发给A,A收到后会使用自己的私钥进行解密得到明文,通过使用C的公钥来验证信息完整性,这期间A始终以为是B发给自己的信息,但从一开始就没有搞清楚B是谁,根本原因就是无法保证公钥的合法性。
2、私密性
3、通过数字证书来验证---不可否认性和源认证性。
4、数字证书中的数字签名---完整性
密钥管理面临的挑战
在使用任何基于rsa服务之前,一个实体需要真实可靠的获取其他实体的公钥。
1、通过非信任的通道,公钥交换必须是安全的
2、在密钥交换的过程中,公钥必须不能被截获和更改
3、交换呈现full mesh的复杂度(网络中实体非常多,它们互相直接需要建立信任关系,这个复杂度是n(n-1)/2。
4、由最终用户来确认密钥有效性,非常不靠谱,即非对称加密中,无法验证公钥合法性。
为了解决这个问题,只能手工密钥交换与确认,即带外验证:
1、回读收到的密钥(指纹),比如对其进行hash,通过一个安全的通道/途径(电话)进行确认。
2、如果它是匹配的,说明密钥在传输过程中没有被更改
3、它不具备可拓展性(不能给1000个人去确认啊)
验证公钥的方法
1、带外验证:打电话、发短信、发邮件,缺点是不具备可拓展性
2、受信任的介绍:实体们通过与一个公认的受信任的实体离线确认公钥后得到该受信任实体对该公钥合法性的背书