本篇客座博客是系列文章的一部分,由作者与F5合作撰写。
CSR、PEM、DER、X509……难怪证书常常被视为某种魔法。
第一次需要让证书正常工作时,我完全不知道该怎么做!我漫无目的地复制了一堆命令,只能寄希望于它们能奏效。但在安全领域,让人盲目复制命令是一种风险很高的做法,处理证书时尤其如此。
证书是TLS连接(最常见的是使用TLS的HTTPS连接)的基石。如果证书配置不当,连接就可能被攻击者拦截,实际上会使TLS连接提供的保护失效。
本博客是系列文章的一部分,将介绍证书的作用,尤其是证书管理的作用。在第一部分中,我们将探讨证书的用途,以及证书为何在保护连接(即TLS连接)方面发挥重要作用。
保障机密性并建立完整性
客户端连接到服务器时,需要考虑两项安全原则。
第一项是保密性。这一点至关重要,可确保客户端收发的数据不会被该通信之外的任何人看到。登录页面就是一个很好的例子。我们需要确保您输入的用户名和密码在与要登录的服务器之间传输时不会被任何人看到。还需要注意的是,保密性也有助于保护隐私,防止他人窥探您正在执行的操作或查看的信息。
第二项原则是完整性。谈到TLS时,很多人会忽略这一点,或对此并不了解。完整性是指任何人都无法篡改客户端收发的数据。即使资源是公开的,我们仍要确保这些数据的完整性。
以一个可公开访问的新闻网站为例。由于该页面公开可用,我们不太担心保密性问题(隐私问题除外,但本例暂且不作讨论)。不过,我们需要确保服务器发送到客户端(用户浏览器)的数据未被篡改。如果不考虑服务器的完整性,攻击者可能会修改新闻报道的内容(例如制造虚假新闻),或在页面中注入恶意内容,例如浏览器漏洞利用框架(Browser Exploitation Framework)挂钩。
证书的重要性
那么,证书在这一过程中发挥什么作用?客户端连接服务器时,首先需要确认连接的是目标服务器,而不是攻击者仿冒的服务器。还需要确保连接采用端到端加密。也就是说,连接未在中途终止,以便检查和修改流量后再将其转发到原始服务器。这称为中间人攻击。
需要说明的是,这种做法有合理的使用场景,尤其是在企业环境中。企业通常会检查互联网流量,以帮助提升组织的安全性。这时就需要用到证书。当客户端通过TLS连接到服务器时,服务器必须向客户端提供其服务器证书。随后,客户端会验证该证书,确保它属于客户端最初尝试连接的正确服务器。完成此项确认后(这是TLS握手的一部分),客户端与服务器即可开始通信。
在本系列的下一篇文章中,我将在自己的博客上继续探讨这一主题。届时,我们将介绍证书验证流程,并深入探讨证书管理中与人员相关的因素及其重要性。
在此之前,强烈建议观看这场内容丰富的F5 myForum会议(为不断变化的SSL格局做好准备),主讲人为David Warburton和Nigel Ashworth。该会议全面介绍了持续演变的SSL和TLS格局,值得一看。
Sean Wright是一位经验丰富的应用安全工程师,职业生涯始于软件开发。他主要专注于Web应用安全,对TLS和供应链相关主题尤为关注。Sean还拥有丰富的应用安全技术领导经验,并积极与团队合作,提升其所开发和维护的系统及应用的安全性。可在此阅读他的博客。
相关博客文章
Thingbot正转变为攻击平台
Lori MacVittie重点介绍了F5 Labs对2018年1月至6月全球物联网设备攻击的研究,并指出了其中令人警醒的影响。物联网设备不仅持续遭到利用,还被转变为攻击平台,这意味着攻击者可以更充分地利用这个必然增长的市场。
借助F5全新Quick Start,在AWS上快速开展业务
在AWS re:Invent开幕前,我们很高兴与大家分享F5与AWS之间全新的Quick Start集成。F5的Tom Atkins将介绍该服务如何启动、配置和运行在AWS上部署工作负载所需的计算、网络、存储及其他AWS服务。