首页
社区
课程
招聘
OAuth API密钥如何降低API安全威胁(转载)
发表于: 2014-12-23 09:01 792

OAuth API密钥如何降低API安全威胁(转载)

2014-12-23 09:01
792
API聚合平台Apigee的首席安全架构师Subra Kumaraswamy与我们讨论了API安全的最佳实践方式。

有了破解版API,我们就有了更多方法来防止API安全漏洞。遗憾的是,通过使用简单的几种攻击方式,黑客们就可以轻松地破坏API。Subra Kumaraswamy是API管理系统的供应商Apigee公司的首席安全架构师,同时也是Cloud Security and Privacy(一篇发自于O'Reilly媒体上的一篇文章)的合作者。他说,为了应对黑客袭击,开发人员不得不采用多种方法来保证API的安全性。
作为Cloud Security Alliance的创始人之一,Kumaraswamy认为,开发人员必须在API管理平台中加入一些合适的安全工具,例如速度限制和安全令牌管理。并不是为每一类应用程序定制一种防护方案,Kumaraswamy建议,开发人员使用API网关来进行接下来的工作,同时也可以支持全球政策的实施。

这本次采访中,Kumaraswamy向我们提供了几点关于创建API强安全性的几条建议,其中包括OAuth的使用、提供API密钥、身份验证机制、AWS API安全性等等。

在建立API过程中,OAuth框架处于什么状态?这种方法是否仍可行呢?

Subra Kumaraswamy:在API安全建设的过程中,OAuth [Open Authorization]框架是大家非常熟悉的一种授权框架。在向Web 应用程序、桌面应用程序、移动应用程序和物联网提供特定授权功能的同时,OAuth2.0也非常重视客户端开发的简易性。然而,我们需要注意的是,OAuth是一种委托的授权协议,而不是真正的授权协议。因此,超越OAuth标准的OpenID Connect被列为开发人员可选方案之中。除了想要对应用程序授以访问受保护的用户代表资源外,这些开发人员还想要以编程的方式来验证用户身份。

在API知道哪类客户发送请求的情况下,如何选择并使用最合适的认证方法来登陆本地应用程序?

Kumaraswamy:当本地应用程序中加入终端客户认证功能后,开发人员应用采用三脚流OAuth2.0。在此模型中,以之前成功的用户认证为例,本地应用程序的授权服务器上含有一个短期的访问令牌和长期刷新令牌。访问令牌向API服务提供受保护资源的访问权,而使用刷新令牌会更新短期存在的访问令牌。这种方法可以降低登录冲突,使用户与移动应用程序保持连续的互动。如果出现令牌泄露的事情,开发人员可以通过使用安全阀而轻松地撤销访问令牌和刷新令牌。

开发人员在提供API密钥时会犯哪些共同的错误?如何避免这些错误?

Kumaraswamy:在访问受保护资源之前,API密钥需通过API网关的验证。一类常见的错误是,在提供密钥时,会赋予平台操作一些应用程序不需要的特权,而这种特权与API产生冲突。例如,如果你向软件开发人员暴露了API支付验证,那么API密钥应仅限于支付验证时使用,而不应该被赋予修改支付明细的特权。

另外一类常见错误是,在密钥没有配额的情况下就可以无限访问API。这会引起拒绝服务攻击,同时通过自动化机器人可以收集到重要数据。使用散列法和随机因子来保护API密钥证书是一个标准惯例,例如SHA-256或者其他更高的版本。

当创建API安全时,开发人员还应注意哪些问题?

Kumaraswamy:开发人员应该以一种API威胁模型开始,在应用模型的基础上试图理解威胁的运作原理,例如内部API和外部API。他们必须知道有些因素会对API用户构成威胁,例如可信的开发人员、自行注册的开发人员以及其合作者。掌握这些信息后,API设计者和开发人员必须建立一些合适的安全措施以应对各种威胁。

例如,我们可以看到,API威胁模型中,不可信的开发人员通过网络能够看到一些敏感的数据。在此,无论运输层安全性中的敏感数据处于运输状态还是静止状态,开发人员都要使用加密技术对实施保护。

开发人员应该使标准应用程序安全性达到最佳状态,例如,通过使用动态和静态的编码分析工具来测试API中是否存在标准 OWASP Top 10缺陷。最后,开发人员应该在安全的位置记录API活动,对任何非正常行为进行定期审核,例如API暴利破解攻击。

使用AWS API后,安全方面的优点和缺点分别有哪些?

Kumaraswamy: AWS API和认证机制是亚马逊所独有的,对管理AWS基础设施即服务资源起到一定的限制作用。使用署名的请求模型(一种基于署名的认证模型HMAC即基于哈希的消息验证代码)对AWS(具象状态传输)API也可以起到保护。HMAC将哈希功能与共享在客户与AWS之间的对称密钥结合在一起使用。AWS客户要在请求信息(例如AWS服务、范围、活动和时间标记)以及共享于开发人员之间的AWS私有密钥基础上签署每一份API请求。AWS API安全机制对用户身份进行核查、对REST调用具有完整的保护性,同时免于再次遭受攻击。从某种方式来说,AWS认证机制与双脚OAuth(客户认证授权)有异曲同工之处。

[课程]Linux pwn 探索篇!

收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//