https证书机制

在学习kubernetes的证书机制中,许多概念没有明白。例如CA,证书,签名,指纹等等。查找资料后发现这个机制与https的证书机制是一致的。所以以https为例,讲解一下证书认证的过程。这个过程依赖两个关键算法——非对称加密与摘要算法。

非对称加密

加密算法分为对称加密与非对称加密。对称加密中秘钥只有一个,信息传输的双方都有秘钥。发送端将明文通过秘钥加密为密文,接收方收到密文后再用秘钥解密为明文。而非对称加密的秘钥有两个,公钥和私钥。用公钥加密的密文只有用私钥才能解密,反之,用私钥加密的内容也只有用公钥才能解密。而私钥是不对外公开的,公钥则是任何人都可以获取的。
非对称加密虽然复杂,却可以解决秘钥传输的问题。客户端和服务器临时发起的会话是无法提前设定好秘钥,那么可以让客户端生成秘钥,并采用服务端的公钥加密发动给服务器。服务器用私钥解密后就可以使用对称加密技术与客户端会话。

摘要算法

摘要算法,例如经典的MD5算法,可以理解为一个哈希函数。这个函数的输入是文件内容,而输出是一个固定长度的编码。特点在于一旦改动文件,重新计算的编码将发生变化。通常将这个编码成为文件的指纹,而生成指纹的摘要算法称为指纹算法。在此基础上如果使用A(个人或机构)的私钥对指纹加密,就生成了A对这份文件的签名。因为只有用A的公钥才能解密,所以可以认定这个加密是A完成的。同时指纹比对也可以确保文件未经过修改。就像我们在文书上签名以证明对文书的认可。数字世界的签名也有同样的认证能力。

https证书认证过程

  1. 客户端向服务端发起https链接,服务端返回服务端证书。证书的主要内容有公钥(Public Key)、ISSUER(证书的发布机构)、Subject(证书持有者)、证书有效期、签名算法、指纹及指纹算法。客户端收到证书后需要做证书的验证工作。首先获取ISSUER的公钥,将加密了的指纹解密,同时计算证书内容的指纹,比对两者的内容,如果内容一致,说明服务端可信。为什么?首先这个世界权威的发证机构只有几家,是经过资质认证的。这些发证机构的公钥是加载在操作系统中的。如果你在Windows的命令行输入certmgr.msc就可以看到证书管理软件,能查到本机所存储的可信的发证机构的公钥。整个解密过程就是完成了一次签名的认证,证明这个证书是权威的发证机构颁发的(指纹用机构的私钥加密了),并且证书内容没有经过修改(指纹相符)。那么证书中持有者一定是权威机构认证的公司或者个人。
  2. 客户端生成对称加密算法使用的秘钥,用服务端的公钥加密后传送给服务端
  3. 服务端解密,之后使用对称秘钥通信

kubernetes

在k8s集群中也通过网络互连,为了通讯安全也实现了相同的安全机制。不同的是每个证书不是由ISSUER发布,而是在安装部署时先建立一个CA(Certificate Authentication)来扮演这个发证机构。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值