如何在云环境中建立一个安全的API设计?

 在云计算环境中建立一个安全的API设计是一项具有挑战性的工作。在本文中,安全研究专家Dejan Lukan介绍了企业在开发安全API时需要记得的若干事项。

[[118042]]

一个应用程序编程接口(API)是对已经正常运行应用程序的一个简单扩展,以便于帮助用户以编程的方式与之进行交互。

使用API的原因是各种各样的,其中包括从数据库中提取数据、将数据发送并保存至数据库,以及推送任务至队列中,但是它们的主要目的是为了帮助用户通过使用程序或脚本程序以自动化的方式与应用程序进行交互。当在一个没有API支持的虚拟环境中工作时,每一步的操作都必须由用户手动调用。如果系统中有着数以千计的虚拟机,那么在每一台虚拟机上都必须由用户手动单独执行每一个操作的后果是可想而知的。这个过程将是缓慢而繁琐的,这也是API被应用于此的价值所在,即它们可以为用户提供与应用程序的自动化交互而不需要执行任何的手动操作。

在本文中,我们将研究API是如何在云计算环境中工作的,其中包括不同的类型、它们的具体角色以及在云计算中开发安全API的最佳实践的总结。

API的类型

当规划设计一个API时,保持一定的大局观是非常重要的。无论何时通过通讯通道发送消息时,都需要按照某种协议(即一组发送方和接收方均已知晓的规则)对消息进行正确的处理。为了实现通过互联网传送API消息安全性的最大化,我们应使用一个安全的协议。在通过网络把消息发送至服务器端之前,安全协议会在客户端对待发送数据进行加密处理,而当消息发送完毕后,安全协议则将在服务器端对已接收的消息数据进行解密并执行下一步的处理。以下是一些可用于通过互联网安全发送消息的协议,如:HTTPS、POPS、IMAPS、SMTPS、LDAPS、XMPPS等等。

因为发送消息所使用的数据格式对安全性并没有什么影响,所以消息中的数据可以以多种格式来表示。通常情况下,消息的数据格式为XML、JSON或HTML(而在使用ZAProxy的情况下是上述三种格式),所以最终用户在与应用程序进行交互时可以做一选择。在API应用中,有一点是最为重要的,即它们对于多种编程语言都是可扩展和可用的。所以如果使用了合适的协议,用户就可以很容易地使用任意的编程语言来编写程序与API进行交互。一个合适的协议是可以实现与应用程序的轻松交互的,多年以来它都是得到良好支持并通过实际使用验证的。一个众所周知的例子就是HTTP协议。一些常用于互联网消息交换的API类型包括REST、SOAP、XML-RPC以及 JSON-RPC等。

开发一个新的API

当为云计算应用开发一个全新的应用程序编程接口时,解决以下的问题将是当务之急:

身份:服务器是并不会自动识别首次使用云计算服务的用户的,因此它会要求进行身份证明。通常情况下,它会要求用户提供一个用户ID或公钥来唯一地标识一个用户。不幸的是,用户所提供的信息是公开的,因此,攻击者常被归类为一个特定的用户,但是它们将不能够决定性地证明这一点。

验证:为了证明一个用户的身份,服务器会自动生成一个验证问题。这个验证问题的答案是用户唯一知道的,它可以是一个密码、密钥、令牌或者其他别的什么。

授权:一旦用户证明了他或她的身份,特定应用程序就会请求访问权限。然后在用户获得准入权之前,这个应用程序会核对这个用户是否被允许访问所请求的资源或执行所请求的操作。

识别技术

应用程序是可以使用很多技术来识别和验证用户的身份的:

用户名和密码:一对用户名和密码可通过基本的或摘要式的验证方式来提供用户认证。在这两个所使用的方法中,在HTTP请求中传送的密码是非加密格式的,所以如有必要,可使用一个诸如HTTPS这类的安全通讯通道。

会话:当用户名和密码被发送至应用程序时,应用程序就会以一个cookie作为响应,之后这个cookie就会在所有的后续识别请求中被发送。

证书:可使用一个公共的或私有的密钥基础设施来验证用户身份。这要求服务器和客户端都拥有由有效机构签发的证书,以用于建立证书的合法性。

开放授权:当一个应用程序使用另一个代表用户的应用程序时,一般会使用OAuth。例如,一个应用程序有一个“分享至推特”的按钮,那么它通常就会使用OAuth。该方法可授权应用程序访问推特的API,而无需透露应用程序的密码。

自定义身份验证方案:可使用一个自定义验证方案通过一个专用的协议来识别和验证用户。一个专用的协议通常并不是一个有利的选择,因为它只是在一个应用程序中使用。已知的协议通常都是更好的,因为用户熟悉它们,可以最大限度减少用户学习的时间。一个自定义验证方案应当由一支顶级的安全团队来具体实施,因为这是一个复杂而易出错的过程。

API密钥:在首次发送请求至服务器且在此之前会话还未建立时,可在用户的身份和验证中使用API密钥。简单来说,API密钥就是一个只被在服务器端运行的应用程序所知的唯一的长令牌,客户端会在API请求中发送这个API密钥。API密钥的方法要比用户名密码的方法更好,因为前者的信息熵更高,它能够更好地保护系统免受黑客攻击以及有限度地泄漏敏感信息。

结论

这些技术基础支撑着安全API的开发,尤其是当开发一个定制API时或者甚至当使用一个云计算供应商的API时。

当选择一家云计算服务供应商(CSP)时,应确定它是否能够提供API。此后,API将在实现程序或脚本程序自动化的过程中证明其价值。CSP应当拥有合适的文档和安全测试结果,以证明其API设计和安全的合法性。

使用定制API,聘请一位安全顾问或渗透测试师来定期测试API;在API正式进入生产阶段以及每次重大代码发布之前对API进行测试是非常关键的。这样做将有助于消除API被用于恶意攻击从而对应用程序用户的安全性造成不利影响的弱点。

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/130050.html<

(0)
管理的头像管理
上一篇2025-02-25 21:51
下一篇 2025-02-25 21:52

相关推荐

  • 服务器被植入木马怎么彻底清除,彻底清除木马的方法有哪些?

    服务器被植入木马后,彻底清除的唯一路径是:立即断网隔离,备份关键数据,使用专业工具全盘扫描并手动排查残留,随后重装操作系统或从干净备份恢复,全面修补漏洞与加固配置,最后持续监控至少两周,确认感染并执行隔离木马最怕被断网,第一步就是切断它与外界的联系,如果发现服务器响应慢、流量异常、CPU跑满,或者收到安全告警……

    2026-07-27
    0
  • 网站并发量高服务器扛不住怎么办,如何解决

    首段核心答案当网站并发量激增导致服务器响应缓慢甚至宕机时,根本解决路径是实施弹性扩容、流量分发、性能优化和纵深防御四位一体的策略,具体操作需结合监控诊断、架构调整和专业化服务商支持,诊断并发瓶颈:定位问题根源如何判断服务器是否到达极限在动手优化之前,先搞清楚“扛不住”的具体表现,常见指标包括CPU使用率持续超过……

    2026-07-27
    0
  • 如何拦截ByteSpider爬虫不影响收录,有哪些技巧?

    正确配置robots.txt和服务器User-Agent识别,即可精准拦截ByteSpider爬虫,同时确保百度爬虫正常抓取,不影响收录,理解ByteSpider爬虫:它是什么,为何要拦截ByteSpider是字节跳动旗下的网页爬虫,主要用于采集网页内容,服务于头条搜索、抖音搜索等产品,大多数情况下,我们欢迎爬……

    2026-07-27
    0
  • 服务器流量异常时怎么排查是不是被攻击,是什么原因?

    当服务器流量异常时,首先通过带宽监控、连接数分析和异常流量特征判断是否被攻击,然后采取相应处置措施,识别流量异常的常见信号你可能会遇到这种情况:某天服务器突然响应变慢,或者网站打不开,甚至远程连接都被中断,流量异常通常会在几个方面暴露出来,早期发现能减少损失,带宽占用飙升使用 sar -n DEV 1 5 或……

    2026-07-27
    0
  • 国内访问美国服务器太慢怎么办,为什么访问速度慢

    优化国内访问美国服务器速度,核心在于组合使用CDN边缘节点缓存、优质国际线路(如CN2 GIA)和TCP协议层优化,同时选择具备持牌自营机房和跨境网络资质的专业服务商,为什么国内访问美国服务器延迟居高不下物理距离是首要因素,中美海底光缆总长约1.3万公里,信号往返至少需要120毫秒,但实际延迟往往超过200毫秒……

    2026-07-27
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注