ssl - 什么是 TLS,我们为什么需要它?
问题描述
什么是 TLS,我们为什么需要它。有人可以向我解释一下它在 Kubernetes 中扮演什么角色吗?如果我不使用它会发生什么?有人可以用一个例子向我解释吗?
感谢您的时间。
解决方案
什么是 TLS,我们为什么需要它?
TLS 协议主要旨在提供两个或多个通信计算机应用程序之间的隐私和数据完整性 [...] TLS 支持许多不同的方法来交换密钥、加密数据和验证消息完整性。
它在 Kubernetes 中扮演什么角色?
k8s 控制平面使用它来加密传输中的数据。如果在数据在客户端和服务器之间移动时通信被截获,传输中的加密可以保护您的数据。在 k8s 的情况下,例如 kubelet 或控制器管理器通常是客户端,而 api-server 被视为服务器。
如果我不使用它会发生什么?
我不确定你是否可以这样做(不要使用它)。我认为它的使用是由 k8s 组件强制执行的。您所能做的就是忽略证书验证。
但是现在让我们想象一下,您设法在没有 tls 的情况下启动了一个集群,并且所有通信现在都是基于明文的(这意味着没有加密)。现在,如果我设法拦截通信,我(恶意行为者)可以看到您发送到集群的内容。而且由于没有强制执行数据完整性的机制,我可以将这些数据更改为我想要的任何内容并将其传递。您将无法检查您是否正在与集群或与我交换数据,以及我是否正在更改数据、添加恶意代码或其他。
此外,tls 证书被 k8s 组件用于身份验证目的。这意味着,例如,为了让 kubelet 加入集群,它需要通过显示它有一个由已知机构签名的有效证书(这通常意味着自签名)来证明它被允许这样做。您将无法验证 kubelet 是否属于您,这不是我加入您的集群的恶意 kubelet。
推荐阅读
- javascript - 如何在一个 jQuery 中分别获取两条路线详细信息?
- c++ - 如果变量值存储在 LIFO 结构中,堆栈如何保存它们?
- javascript - 仅在网格中添加行时启用单元格编辑
- javascript - 有什么方法可以更改应用程序脚本的用户代理?
- android - 从设备中删除已注册的(一个)指纹后,加密的应用程序特定数据会发生什么情况?
- java - 运算符区别:+=、==、+、++、=
- git - 如何设置 ssh 密钥以从不同用户下的一台机器访问 github
- java - 将 SLF4J 秒表记录到不同的文件
- c++ - 错误:没有匹配函数调用 'std::basic_ifstream
::open(std::__cxx11::string&, const openmode&)' - node.js - 我无法使用节点 js 将视频上传到 youtube