API安全(二):API安全设计原则

很多API安全问题产生的根源是缺少好的API安全设计,做好API安全设计有利于提升API自身的安全性。这里讲2条设计原则:5A原则和纵深防御原则。

一、5A原则

5A原则由5个首字母为A的单词构成:Authentication(身份认证)、Authorization(授权)、Access Control(访问控制)、Auditable(可审计性)和Asset Protection(资产保护)。在做安全设计时,需要从这5个方面考虑安全设计的合理性,如果某一方面缺失,则安全设计是不全面的。

  • 身份认证:身份认证解决“你是谁”的问题,通过身份认证明确是谁在与API服务进行通信,API服务是否允许它的请求。
  • 授权:授权通常发生在身份认证之后,解决“你能访问什么”的问题。授权指赋予某个客户端调用某些API的权限。
  • 访问控制:访问控制通常发生在授权之后,是指对授权的客户端访问时正确性的检验。即使某个角色的权限设置正确,但访问控制错误,则会出现越权问题。
  • 可审计性:记录接口调用的关键信息,以便通过审计手段及时发现问题,并在发生问题后通过审计日志溯源,找到问题的发生点。
  • 资产保护:这里包括两方面,一方面是对API自身的保护,如限速、限流、防止恶意调用等;另一方面指对API传输的数据的保护,如数据中的敏感信息(账户、电话、身份证号等)。

二、纵深防御原则

“纵深防御”一词来源于军事术语,指在前后方之间构建多道防线以达到整体防御的目的。在网络安全领域,纵深防御指不能只依赖单一的安全机制,要建立多种安全机制相互支撑以达到安全防御的目的。通过生活中的一个例子来理解纵深防御:为了保障小区居民家中资产的安全,小区门卫是第一道防线。如果门卫被欺骗了,则楼道口的防盗门是第二道防线。若楼道口的防盗门也被破解了,则住房的防盗门是第三道防线。这三道防线之间的防护就构成了纵深防御。

在API安全设计中,可以通过在不同层面使用不同的安全技术达到纵深防御的目的。比如根据API业务属性的不同,划分为公共型API和私有型API。再根据粒度粗细、业务需求、权限划分等采用不同的身份认证和授权技术。

三、总结

5A原则强调的是每一层安全架构设计的合理性,是横向的安全防护;纵深防御是对同一问题从不同层次、不同角度做安全防护,是纵向的安全防护。两种原则相结合将构成一个有机的安全防护整体。 

你可能感兴趣的:(安全,安全,api,网络安全)