在受限环境中使用移动应用程序安全访问API
在我们当前的项目中,IT规则禁止从互联网公开访问任何非PROD的内容。必须严格限制对开发和审查环境的访问。尽管如此,该项目还包括与云托管API层一起开发的移动应用程序 一般来说,使用移动应用程序保护开发/审查阶段API的常见方法是什么?我们提出了以下想法:在受限环境中使用移动应用程序安全访问API,api,security,mobile,cloud,vpn,Api,Security,Mobile,Cloud,Vpn,在我们当前的项目中,IT规则禁止从互联网公开访问任何非PROD的内容。必须严格限制对开发和审查环境的访问。尽管如此,该项目还包括与云托管API层一起开发的移动应用程序 一般来说,使用移动应用程序保护开发/审查阶段API的常见方法是什么?我们提出了以下想法: API入口的IP白名单(最不安全,但最容易使用) 到主机环境的VPN网关,以及相应的开发/测试设备配置 相互TLS认证(最难实现和操作) 每种方法都有许多问题需要解决,但我想在深入研究任何一种方法之前先了解全局。IP白名单 API入口上的
- API入口的IP白名单(最不安全,但最容易使用)
- 到主机环境的VPN网关,以及相应的开发/测试设备配置
- 相互TLS认证(最难实现和操作)
//简化的android示例
CertificatePaner CertificatePaner=新的CertificatePaner.Builder()
.add(“publicobject.com”,“sha256/afwiKY3RxoMmLkuRW1l7QsPZTJPwDS2pdDROQjXw8ig=”)
.add(“bikewise.org”,“sha256/x9szw6twiqfmvrz/kz10ossjmn728bnkpufqgnvm=”)
.build();
OkHttpClient=OkHttpClient.Builder()
.CertificatePaner(CertificatePaner)
.build();
在同一篇文章中,我们还可以看到钉住是一场噩梦。。。就像你说的,很难操作
钉扎的主要困难不是技术上的,而是操作上的。通过将关于服务器(证书)的固定信息嵌入到应用程序中,您可以在两者之间创建一个依赖关系,正如术语pinning所暗示的那样。这意味着,每当您(或您的ops团队)计划更改服务器上的证书时,您必须:
- 提前生成证书
- 使用新证书和旧证书构建、测试并发布应用程序的新版本
- 等待大多数(80%、90%、99%)用户升级到新版本
- 更改服务器上的证书
- 在删除旧证书的情况下,生成、测试并发布应用程序的新版本