0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

通过双向TLS保护微服务

星星科技指导员 来源:synopsys 作者:synopsys 2023-05-25 15:14 次阅读

一开始,有单体式网络应用程序。然后,随着应用程序的增长和扩展变得越来越困难,各个部分开始拆分为单独的服务。微服务已成为一种越来越流行的架构选择,用于分离关注点,同时加快开发和部署。然而,安全性仍然是一个关键但很少被谈论的部分。微服务显著增加了攻击面,因为这些服务通过网络来回发送消息,而不仅仅是在一台计算机上进行进程。微服务或任何面向服务/网络的体系结构的安全性包括两个组件:传输层和应用程序层。

传输层

强化传输层至关重要,尤其是在 AWS 或 Rackspace 等共享环境中,您无法准确确定网络流量的去向或谁可能正在监听。传输层安全性 (TLS),有时仍被错误地称为 SSL(TLS 的前身),仍然是加密和验证连接的基石之一。即使您的服务不与 HTTP(S) 或 RESTful API 通信,您仍然可以使用 TLS 包装网络套接字。

使用TLS保护所有网络流量通常是谨慎的,尽管工程师似乎经常对这样做有疑虑。如果您担心 TLS 会降低性能,负载均衡器可以提供专用硬件来有效地终止客户端 TLS 连接,同时保持对后端服务的持久 TLS 连接处于打开状态。这种持久的后端连接减少了与每个请求握手的新 TLS 连接的开销。

TLS 的一个经常被忽视的功能是身份验证。虽然 TLS 可以保证在数据在网络中移动时对其进行加密,但它也提供了一种机制来强制客户端和服务器没有中间人监听。对于面向公众的服务,您必须始终依赖公共(付费)证书颁发机构。如果您有幸同时控制服务器和每个客户端,则可以滚动自己的证书颁发机构来签署证书。

在典型的TLS握手期间,客户端和服务器交换寒暄,并小心翼翼地开始设置安全隧道。在此过程中,客户端应检查服务器提供的证书是否由受信任的颁发机构(或颁发机构链)签名。此外,许多 TLS 库允许客户端验证证书的公用名是否与其尝试连接到的主机名匹配。这两种检查都允许客户端断言服务器实际上是客户端认为它的身份,并且通信没有被拦截。

应用层

除了传输安全之外,服务还需要验证谁在拨打电话,并确保他们有权这样做。方便的是,TLS 也提供了一种机制来执行此操作:客户端不仅可以验证服务器的证书在加密上是否有效,服务器也可以类似地对客户端进行身份验证。在握手期间,服务器从客户端请求证书,它可以提供该证书。通过镜像客户端,服务器根据受信任的证书颁发机构检查证书的有效性。但是,服务器随后可以从证书中提取客户端的详细信息,例如公用名,而不是检查主机名,而是使用应用层逻辑来验证客户端是否经过身份验证并被授权执行它们正在尝试执行的操作。这种双向 TLS 身份验证允许连接的双方断言他们正在与期望的另一方连接。

双向 TLS 不经常使用,可能是由于创建和管理许多证书以及关联的吊销列表的痛点。但是,管理一组允许的证书与管理一组允许的 API 密钥非常相似。一种方法是管理一组特定的吊销证书,充当排除列表。但是,如果客户端证书被视为 API 密钥,则可以通过已知的白名单管理允许的客户端。您可以获得加密保证,即您的客户就是他们所说的人,同时还确保您的通信是加密的。

结论

双向TLS可能并不适合所有情况,但它是一个有用的工具,可以在一个人的工具箱中拥有,并且可能有助于利用您已经在使用的技术。Tinfoil的扫描仪通过双向TLS进行身份验证,以及其他网络层和应用层身份验证方法。正如您不希望应用程序出现单点故障一样,您也不想依赖单一的安全方法。

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 服务器
    +关注

    关注

    12

    文章

    8954

    浏览量

    85069
  • AWS
    AWS
    +关注

    关注

    0

    文章

    426

    浏览量

    24285
  • TLS
    TLS
    +关注

    关注

    0

    文章

    44

    浏览量

    4226
收藏 人收藏

    评论

    相关推荐

    微服务架构和CQRS架构基本概念介绍

    边界思维,微服务的目的是为了从业务角度拆分(职责分离)当前业务领域的不同业务模块到不同的服务,每个微服务之间的数据完全独立,它们之间的交互可以通过SOA RPC调用(耦合比较高),也可
    发表于 05-22 09:03

    微服务网关gateway的相关资料推荐

    目录微服务网关 gateway 概述[路由器网关 Zuul 概述]嵌入式 Zuul 反向代理微服务网关 gateway 概述1、想象一下一个购物应用程序的产品详情页面展示了指定商品的信息:2、若是
    发表于 12-23 08:19

    我所理解的SOA和微服务

    本文主要浅谈SOA和微服务。SOA和微服务两者说到底都是对外提供接口的一种架构设计方式,微服务其实就是随着互联网的发展,复杂的平台、业务的出现,导致SOA架构向更细粒度、更通过化程度发
    的头像 发表于 02-07 14:19 3630次阅读
    我所理解的SOA和<b class='flag-5'>微服务</b>

    什么是微服务_微服务知识点全面总结

    微服务是一个新兴的软件架构,就是把一个大型的单个应用程序和服务拆分为数十个的支持微服务。一个微服务的策略可以让工作变得更为简便,它可扩展单个组件而不是整个的应用程序堆栈,从而满足
    的头像 发表于 02-07 16:06 1.5w次阅读

    java微服务架构有哪些

    本文首先简单介绍了微服务的概念以及使用微服务所能带来的优势,然后结合实例介绍了几个常见的Java微服务框架。微服务在开发领域的应用越来越广泛,因为开发人员致力于创建更大、更复杂的应用程
    的头像 发表于 02-09 10:34 8607次阅读
    java<b class='flag-5'>微服务</b>架构有哪些

    微服务优势_微服务架构的好处与不足

    微服务是用一组小服务的方式来构建一个应用,服务独立运行在不同的进程中,服务之间通过轻量的通讯机制(如RESTful接口)来交互,并且
    发表于 02-23 11:24 4381次阅读

    什么是微服务和容器?微服务和容器的作用是什么

    微服务是将应用程序拆分为多个服务的一种架构类型,这些服务具备构成整个应用程序的细粒度功能。每个微服务将具备针对您的应用程序的不同逻辑功能。与应用程序的所有组件和功能都在单个实例中的单体
    的头像 发表于 01-13 10:54 3.2w次阅读
    什么是<b class='flag-5'>微服务</b>和容器?<b class='flag-5'>微服务</b>和容器的作用是什么

    什么是微服务架构_微服务架构的优缺点及应用

    什么是微服务架构 简单地说,微服务是系统架构上的一种设计风格, 它的主旨是将一个原本独立的系统拆分成多个小型服务,这些小型服务都在各自独立的进程中运行,
    的头像 发表于 06-02 10:03 1.7w次阅读
    什么是<b class='flag-5'>微服务</b>架构_<b class='flag-5'>微服务</b>架构的优缺点及应用

    通过微服务原理、领域驱动设计概念等来成功实现微服务

    组织通过微服务基本准则、领域驱动的设计概念和编码优秀实践成功地使用微服务,可以充分利用Kubernetes/容器原生的优势。
    的头像 发表于 08-14 10:02 1878次阅读

    微服务架构有哪些_微服务架构设计模式

    小伙伴们知道常用的微服务架构框架有哪些吗?上回我们介绍了一些常用的微服务架构设计模式,这次我们就来了解一下一些常用的微服务架构框架吧。
    的头像 发表于 05-17 17:06 2.9w次阅读
    <b class='flag-5'>微服务</b>架构有哪些_<b class='flag-5'>微服务</b>架构设计模式

    微服务为什么要用到API网关?

    微服务架构(通常简称为微服务)是指开发应用所用的一种架构形式。通过微服务,可将大型应用分解成多个独立的组件,其中每个组件都有各自的责任领域。
    的头像 发表于 04-14 09:17 704次阅读

    使用安全配套IC保护TLS实现

    传输层安全性 (TLS) 协议(以前称为安全套接字层 (SSL))是用于保护传输中的数据的最常用协议。虽然它最初是为通过互联网、计算机和网站之间的双向安全通信而创建的,但现在
    的头像 发表于 06-16 16:19 529次阅读
    使用安全配套IC<b class='flag-5'>保护</b><b class='flag-5'>TLS</b>实现

    使用配套安全IC保护TLS

    传输层安全性 (TLS) 协议在保护智能连接设备通过互联网的通信方面发挥着至关重要的作用。它可以帮助防止窃听和篡改传输中的数据。当然,为了使TLS协议有效,密钥和证书必须保持未公开,未
    的头像 发表于 06-29 17:26 447次阅读

    springcloud微服务架构

    Spring Cloud是一个开源的微服务架构框架,它提供了一系列工具和组件,用于构建和管理分布式系统中的微服务。它基于Spring框架,旨在通过简化开发过程和降低系统复杂性来帮助开发人员构建弹性
    的头像 发表于 11-23 09:24 1155次阅读

    设计微服务架构的原则

    微服务是一种软件架构策略,有利于改善整体性能和可扩展性。你可能会想,我的团队需不需要采用微服务,设计微服务架构有哪些原则?本文会给你一些灵感。文章速览:微服务设计的要素
    的头像 发表于 11-26 08:05 536次阅读
    设计<b class='flag-5'>微服务</b>架构的原则