概述
API 安全防护就是保护 API(包括您拥有的和您使用的 API)的完整性。但它到底是什么意思?
您或许听过物联网(IoT),它就是通过 API 将计算能力嵌入我们的日常生活中。通过物联网,您的手机可以与家中的冰箱连接,所以当您在回家途中采购食物时,就能清楚知道该买些什么,最终在一小时内就轻松准备好临时聚餐的菜肴。此外,如果您是 DevOps 团队的一员,会利用微服务和容器快速迭代地构建并部署传统和云原生应用。API 就是最常见的微服务和容器通信方式,无论连接系统、连接应用,都要用到 API。随着集成和互联变得愈加重要,API 的重要性也在提升。
为什么 API 安全防护很重要?
企业使用 API 来连接服务和传输数据。许多重大数据泄露问题,其幕后原因都在于 API 遭到破坏、泄露或攻击。受到攻击的 API 会让敏感的医疗、金融和个人数据公之于众,被不法分子利用。不过,并不是所有数据都是一样的,保护数据更不能以不变应万变。如何实施 API 防护,具体取决于传输的数据种类。
如果您的 API 连接了第三方应用,那么您必须知道这个应用会如何将信息返回互联网。继续上面的例子,也许您不在意别人是否知道您的冰箱里有些什么,但如果他们使用同一个 API 来跟踪您的位置,那情况就不妙了。
什么是 Web API 安全防护?REST API 安全防护与SOAP API 安全防护对比。
Web API 安全防护主要关注通过 API 与互联网的数据传输。OAuth(开放授权)是访问权限委派的开放标准。它让用户不必共享密码就能将 Web 资源的访问权限授予第三方。借助 OAuth 这一技术标准,只需通过一个“分享”按钮,就能将“柯基犬戏水视频集锦”分享到您的社交网络上。
大多数 API 实施属于 REST(表述性状态传递)或 SOAP(简单对象访问协议)。
REST API 使用 HTTP 并且支持传输层安全性(TLS)加密。TLS 是确保互联网连接私密性的一个标准,可以检查两个系统(服务器与服务器或服务器与客户端)之间发送的数据是否受到加密且未被篡改。这意味着,如果黑客试图从购物网站套取您的信用卡信息,他们会无法读取或修改您的数据。如果 URL 的开头是“HTTPS”(超文本传输安全协议),那么该网站就使用了 TLS 保护。
REST API 也使用 JavaScript 对象表示法(JSON),这是一种能够更轻松通过 Web 浏览器传输数据的文件格式。通过使用 HTTP 和 JSON,REST API 不需要存储或重新打包数据,因此速度要比 SOAP API 快得多。
SOAP API 使用称为 Web 服务安全性(WS 安全性)的内置协议。这类协议会定义一套采用保密和身份验证的规则集。SOAP API 支持两大国际标准机构(结构化信息标准促进组织(OASIS)和万维网联盟(W3C)制定的标准,它们结合使用 XML 加密、XML 签名和 SAML 令牌来验证身份和授权。通常而言,SOAP API 因具有更加全面的安全措施而受到推崇,但它们也需要更多的管理。因此,处理敏感数据的机构更推荐采用 SOAP API。
有哪些最常见的 API 安全防护最佳实践?
您应该不会把自己的钱存放在床垫之下。大多数人都会把钱存到可信的环境(银行)中,而采用分开的方式授权和验证支付。API 安全防护与之相似。您需要一个具有验证和授权策略的可信环境。
下方列出了一些最常见的加强 API 安全性的方法:
- 使用令牌。建立可信的身份,再通过使用分配给这些身份的令牌来控制对服务和资源的访问。
- 使用加密和签名。通过 TLS 等方式(见上文)加密您的数据。要求使用签名,确保只有拥有权限的用户才能解密和修改您的数据。
- 识别漏洞。确保操作系统、网络、驱动程序和 API 组件保持最新状态。了解如何全面实现协同工作,识别会被用于侵入您的 API 的薄弱之处。使用嗅探器来检测安全问题并跟踪数据泄露。
- 使用配额和限流。对 API 的调用频率设置限额,并跟踪其使用记录。如果 API 调用数量增多,表明它可能正被滥用。也可能是编程出了错,例如在无限循环中调用 API。指定限流规则,防止 API 出现调用激增和拒绝服务攻击。
- 使用 API 网关。API 网关担当主要的 API 流量策略执行点。良好的网关既能帮助您验证流量的使用者身份,也能控制和分析您的 API 使用情况。
API 管理和安全防护
最后,API 安全性通常取决于良好的 API 管理。许多 API 管理平台支持三种防护方案,它们分别是:
- API 密钥,单一令牌字符串(即提供唯一身份验证信息的小型硬件设备)。
- 基础身份验证(APP ID / APP 密钥),双令牌字符串解决方案(即应户名和密码)。
- OpenID Connect(OIDC),基于主流 OAuth 框架的简单身份层(即通过获取基本配置集信息和使用身份验证服务器来验证用户)。
在选择 API 管理器时,您要清楚它可以处理哪些防护方案,还要制定好计划,明确如何纳入上述 API 安全防护实践。
为何选择红帽 API 管理和安全防护产品
数据泄露令人恐慌,但您可以采取措施来增强安全。API 功能出众,绝对值得您投入精力,只需要找准目标即可。红帽每年都会发布红帽产品风险报告,概述影响企业软件的全球安全漏洞,以及适用于我们产品的红帽解决方案。其中的关键,在于采取持续的防护举措、学会提问、了解需要注意的事项,以及使用您可以信任的 API 管理器。红帽竭诚为您提供帮助。
我们建议您使用备受赞誉的红帽 3scale API 管理。它包括:
- 可管理 API、应用和开发者角色的 API 管理器
- 执行 API 管理器策略的流量管理器(API 网关)
- 支持众多身份验证协议的身份提供商(IDP)中心
在 API 网关方面,红帽 3scale API 管理可以解译到期的时间戳令牌;检查客户端身份是否有效;并且使用公钥来确认签名。