迫于个保法,需要对 api 数据加密。想开发一套加密网关,有什么好的轮子推荐吗?

2021-11-16 08:00:38 +08:00
 zhuifeng1017
目前定的加密规则是: 数据 body 整体用 AES 加密, 数据摘要用 RSA 签名。
实在不想自己造轮子,跪求各位大佬推荐下好用的框架或现成组件
3850 次点击
所在节点    问与答
25 条回复
iBugOne
2021-11-16 08:05:46 +08:00
TLS
eason1874
2021-11-16 08:08:43 +08:00
这样没办法给建议

应该说清楚客户端和服务端的开发语言和软件环境
swulling
2021-11-16 08:38:32 +08:00
https 这个是满足需求的
whwlsfb
2021-11-16 08:46:26 +08:00
防爬虫的话用什么加密算法也只是加长破解时间,建议从访问频率和客户端特征入手,防中间人的话 HTTPS 足够了
yEhwG10ZJa83067x
2021-11-16 08:54:13 +08:00
不是很理解已经 TLS 了还要加密处理是出于什么考虑?
timethinker
2021-11-16 09:06:38 +08:00
我也没太明白,只要你的终端能解密,那加密除了防止中间人还有什么其他的意义吗?还是说加密后的数据在终端是无法解密的?
cominghome
2021-11-16 09:12:21 +08:00
@justrand
@qwe520liao

终端通过 js 解密,开启后访问 api 拿回来的 response body 是编码 /加密后的,我司网关有类似的功能。可以过滤掉很多脚本 boy
datoujiejie221
2021-11-16 09:16:20 +08:00
实现起来也很简单,golang 的话 gin 写个 middleware 也很快,java 拦截器里实现也快
研究过客户端的逆向,现在除了 flutter 不好逆向外,其他很快就可以逆向出密钥了,就像 4 楼所说,加密只是增加破解时间。
timethinker
2021-11-16 09:20:04 +08:00
我记得三级等保有一条是要对入库的敏感数据进行加密,目的是为了防止被拖库以后泄漏关键数据,毕竟应用和数据库一般不在一台服务器上,同时被攻破的可能性要小得多。

不过前端加密如果不是为了防止中间人的话,那我也只能是往增加难度或者过滤掉一部分自动化探测这方面去想了,属于应用层级别的要求,不过话说回来,与其增加的复杂度相比,带来的收益微乎其微吧。
swulling
2021-11-16 09:21:04 +08:00
https 符合个保法要求,只要你后台数据存储加密,最好权限和访问控制。

没必要在 api 层面进行数据加密。
zhuifeng1017
2021-11-16 09:46:39 +08:00
没有爬虫的考虑。针对 B 端业务的 API, 客户会上传 AES 密码和 RSA 公钥。主要目的就是 API 取到的数据是加密的,需要客户拿自己的 AES 密码解密
wolfie
2021-11-16 10:07:58 +08:00
将整个 body AES 加密,使用表单提交。form_key:AES(json)

Java 后端
Filter 解密,
创建一个 HttpServletRequestWrapper 实现。重写 getContentType 、getHeader 、getHeaders 、getInputStream 。把 Content-Type 修改为 application/json
weiwenhao
2021-11-16 10:28:17 +08:00
密码都已经通过 https 传输了,为啥还要加密?
ch2
2021-11-16 10:36:09 +08:00
直接 RSA 省事
cxe2v
2021-11-16 10:36:13 +08:00
看起来是一个提供第三方服务的 API ,每个接入你 API 的客户都有自己的一套密钥,通过这个密钥给每个客户单独加密,这样可以防止一个客户伪造请求获取另外客户的信息,类似于各大平台的 Open API
icyalala
2021-11-16 10:42:02 +08:00
数据内容是隐私,有 SSL 就没必要再加密吧?
是不是被抓到敏感字段不允许传输的? 那样被发现的话,就会说是是通过技术对抗。
jones2000
2021-11-16 12:20:40 +08:00
个保法跟加密有什么关系, 不明白。
skinny
2021-11-16 12:52:51 +08:00
你肯定是理解错了要求……
zhuifeng1017
2021-11-16 13:42:11 +08:00
简单点说吧,客户传输数据中包含手机号, 姓名等个人敏感信息。除了 https 之外,还需要和客户协商敏感信息的加密算法。就想做个通用一点的加解密网关 🐶
zhuifeng1017
2021-11-16 13:43:15 +08:00
@cxe2v 说的很对,很这个需求类似

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/815662

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX