searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

istio官方任务文档——Ingress Sidecar TLS 终止(1)

2023-08-28 02:41:50
30
0

目录

  1. 什么是tls以及mtls
  2. 什么是tls中止
  3. 为什么需要tls中止

1、什么是tls以及mtls

TLS (Transport Layer Security)

  • 定义:TLS 是一个协议,旨在为互联网通信提供安全和数据完整性保障。它的前身是 SSL (Secure Sockets Layer)。TLS 提供了数据加密、服务器和客户端身份验证以及数据完整性检查。

  • 用途:你可能在浏览器的地址栏看到https前缀,这意味着你正在使用 TLS 加密的连接访问该网站。它可以确保你发送到服务器的数据和从服务器接收的数据都是加密的,并且中间的窃听者无法读取或修改这些数据。

  • 工作方式:TLS 使用一系列握手协议来建立一个安全连接。在握手过程中,客户端和服务器之间会交换密钥材料,从而可以对数据进行加密和解密。

下图展示TLS的通信流程的概要:

  1. 服务器向受信任的 CA(证书管理机构)申请并获得证书(X.509 证书);
  2. 客户端向服务端发起请求,其中包含客户端支持的 TLS 版本和密码组合等信息;
  3. 服务器回应客户端请求并附上数字证书;
  4. 客户端验证证书的状态、有效期和数字签名等信息,确认服务器的身份;
  5. 客户端和服务器使用共享秘钥实现加密通信;

mTLS (Mutual TLS 或 Mutual Transport Layer Security)

  • 定义:mTLS 是 TLS 的一个扩展,要求双方(客户端和服务器)都提供证书以验证彼此的身份。在标准的 TLS 握手中,只有服务器需要提供证书,而在 mTLS 中,客户端也需要提供证书。

  • 用途:mTLS 主要用于确保双方的身份,这在某些业务和安全上下文中是非常有用的,例如银行、军事通信或某些高安全性要求的业务应用。

  • 工作方式:在 mTLS 握手中,服务器首先向客户端提供其证书(与普通的 TLS 握手相同)。接着,服务器要求客户端也提供一个证书。只有当两边都验证了对方的证书并确认它们是由受信任的证书颁发机构签发的时,安全连接才会建立。

2、什么是tls终止

TLS 终止(也被称为 SSL 终止)是一个网络架构策略,其中 TLS/SSL 的连接或会话是在网络的某一层次上“终止”的,而不是在目标应用服务器上。这意味着解密操作(以及在响应中重新加密操作)发生在这一层次,而不是在实际的应用服务器上。这经常用于负载均衡器或专用的硬件设备中。

在istio中常常使用的是ingress网关终止,在ingress网关进行TLS连接以后完成认证,网关与服务网格内部的传输的数据都使用http进行传输。进而提高服务性能。

下面是istio中对于ingress网关的TLS终止的配置文件。采用simple模式,Istio在Gateway上为入口的访问建立HTTPS的安全通道:HTTPS在Gateway处终结,内部的访问仍然使用HTTP。

apiVersion: networking.istio.io/v1beta1
kind: Gateway
metadata:
  name: sample-gateway
spec:
  selector:
    istio:ingress-gateway
  servers:
  - port:
      number: 443
      name: https
      protocol: HTTPS
    hosts:
    - wistio.cc
    tls:
      mode: SIMPLE
#服务端的证书
      serviceCertificate:****
#私钥
      privateKey:*****

3、为什么需要tls终止

TLS 终止(或SSL 终止)的主要目的是提高效率、简化管理和提高性能。以下是为什么需要使用 TLS 终止的一些主要原因:

  1. 集中证书管理:在单一的设备或位置管理证书,如负载均衡器,允许更简单、集中化的证书更新和维护。这比在多个后端服务器上单独管理证书要简单得多。

  2. 提高性能和可扩展性:解密 TLS 通信是计算密集型的。专门的硬件设备或解决方案,如应用交付控制器和某些类型的负载均衡器,经常包含专门的硬件加速来处理 TLS 会话,这样可以更高效地处理大量的 TLS 连接。此外,通过在边界上终止 TLS,后端服务器可以专注于提供应用程序的功能,而不是额外的加密和解密过载。

  3. 智能负载均衡:当 TLS 在负载均衡器上终止时,负载均衡器可以检查解密后的内容(例如 HTTP 请求头),并据此做出更智能的路由决策。

  4. 简化配置和维护:集中管理 TLS 设置,如协议版本和加密套件,可以确保一致的安全策略和简化的维护过程。

  5. 提供应用级防火墙和其他安全功能:终止 TLS 允许中间设备查看流经的明文流量。这可以使这些设备提供更深入的包检查、应用级的防火墙功能、内容过滤等。

  6. 避免后端的多样性问题:在一个复杂的环境中,后端服务器可能有各种不同的操作系统、应用程序和配置。集中在一个地方终止 TLS 可以确保所有流量都经过相同的解密过程,而不受后端差异的影响。

  7. 减少后端服务器的计算需求:通过移除后端服务器的 TLS 负担,你可以在相同的硬件上运行更多的应用实例或处理更多的请求,因为不再需要为每个请求分配额外的资源来处理加密。

 

0条评论
0 / 1000