API 接口的安全处理

199 阅读4分钟

背景

开放 API 接口如果没有经过安全处理,则很容易出现三类安全问题,包括信息截获、篡改与泄露。

首先是用户密码容易被截获,比如某家公司在开发开放式 API 时,没有对其进行安全控制,那么该公司的客户信息很容易被黑客截获,黑客在掌握客户的用户名、密码等相关信息与资料后,便能够利用客户的身份来登录,使得客户的隐私信息泄露,黑客便可以轻易地盗刷客户信用卡,使得客户承受损伤;其次是表单数据很容易被篡改,比如某家公司所开发的开放 API 并没有进行过防篡改控制,有客户在购买1000 元产品后,其提交表单被黑客利用技术手段篡改为 10 块钱,从而使得公司产生了经济损失。

开放 API 接口安全问题解决方案

针对开放 API 平台存在的上述安全问题,可以使用非对称加密、MD5 摘要以及令牌机制进行预防和阻击。使用Eolinker Api 测试工具对API接口信息进行加密,使得接口调用更加安全放心。

如图1 ,Eolinker API接口测试工具提供多种加密方式。

图1.png 图1

非对称加密的加密与解密流程

开放 API 平台生成公钥和私钥,并将公钥对外公布,提供给需要对接 API 的人员。对接 API 的人员将用户的数据使用公钥进行加密传输,即使有黑客使用抓包工具截取到了报文,但是由于解密用户数据只能使用 API 平台自己拥有的私钥才能解密,所以即使报文数据泄露,由于没有钥匙解开传输的信息,黑客获得了报文也无可奈何,非对称加密解决了用户传输用户名、密码等敏感信息泄露的问题。

RSA 与 HTTPS 的对比

如果条件允许,建议开放 API 接口都使用 HTTPS 协议传输数据。使用 HTTPS 传输相较于 RSA 加密更安全。HTTPS顾名思义,即安全的 HTTP,HTTPS 的主要作用是确认双方的身份和建立安全通道,保证传输数据的安全。

HTTPS 既用到了非对称加密,也用到了对称加密。相较于 RSA 加密,RSA 加密实现的,HTTPS 都能实现。但是 HTTPS 存在维护成本高、服务器开销大、需要购买证书、性能相对低的问题,所以出于成本的考虑不能使用 HTTPS,使用 RSA 加密算法是最优的选择。使用Eolinker API接口测试工具选择HTTPS方式进行接口测试。如图2。

图2.png 图2

令牌鉴权

令牌可以理解为通行证,开放 API 接口暴露在公网之后就相当于一个敞开大门一样,所有人都可以随意进出,对于豪宅内的财产而言,这是很不安全的。

这时就需要一个保安查看进出人员的通行证,只有获得通行许可的人员可以进出,没有通行证的人员一律会被拦在大门外,不得进入。

同样对于开放 API 接口而言,如果没有令牌机制,所有人都可以通过接口获取数据,造成平台数据流失,给公司和客户造成不可估量的损失。所以使用令牌进行鉴权是非常有必要的。

开放 API 调用方需要在每一次接口调用中都携带令牌,服务器则在过滤器中进行令牌的校验,包含校验令牌是否存在、令牌是否已经过期等。如果令牌在 REDIS 缓存服务器中不存在,或者令牌已过期,则接口服务器直接返回异常信息,由接口调用方进行捕获,强制客户重新登录获取新的令牌,再进行后续操作。

总结

随着硬件设备分布式计算能力的不断提升、大数据处理能力的完善,也许现在还算先进的防护措施,在不久的将来就会变得不堪一击。数据安全的攻防势必是一场持久战,只有不断总结、改进,才能保护核心数据和客户的权益。

文中演示工具为Eolink,支持在线使用。感兴趣者可直接访问:www.eolink.com使用!