再浅谈接口的安全性和回调机制

最近的工作原因,涉及到接口充权益的接口安全性问题,这里趁热再说说个人看法

  • 基于之前写的这篇使用回调机制提高接口安全性继续聊。上次扩展中提到是不是可以使用非对称加密,替换回调验证?目前我所负责的业务确实使用这种方式。

  • 业务中要对接多个渠道,渠道需要调业务的接口来加权益,为了安全性,目前的做法是由渠道自己生成RSA私钥,提供RSA公钥到业务这边。渠道使用私钥生成签名,业务这边则使用公钥解密验证,从而保证请求是合法的。

  • 其实这里还是有潜在漏洞,之前的文章也提到过,如何保证私钥不泄漏?虽然说保证私钥不泄漏是渠道自己的问题,但是多年的经验告诉我,大多数公司并没有很好的保存这些私钥的方法。按照我的猜想,这些私钥在公司内部会被经常拷贝发送,至少开发人员基本都有办法知道的。万一知道私钥的人后续离职了作恶呢?

  • 而我们经常对接一下小渠道,参差不齐。尽可能保证渠道的安全也是我们作为平台要积极考虑的问题。

  • 所以个人的看法,即使使用RSA保证签名的合法,还是要提供回调的能力,提供给渠道,通过二次校验保证知道私钥的人也无法直接从自己的私人客户端发起请求并成功加权益。毕竟回调的请求是到达渠道方的正式服务器,要在正式服务器上线恶意代码,靠谱的公司都有一定的限制和管控。

扩展

  • 接口一般都会分外网访问和内网访问,我们平常要注意避免只能内网访问的接口暴露给外网访问,因为大多数情况下,我们的内网接口会安全性低一点。