敏感 API 需要加密请求体避免泄漏请求内容给 CDN,是否使用了 AES-256-GCM 这类带完整性验证的加密算法,就没有必要再签名一次了?或者有没有更简单的方案, HMAC 拼接签名客户嫌麻烦不太愿意对接

155 天前
 drymonfidelia
所有人都知道 CDN 为了缓存请求需要卸载 SSL ,可以接触到明文 Payload 。但是我们的产品需要接触敏感数据,例如实名认证、信用卡之类的信息,需要让 CDN 无法解密请求,同时尽可能简单
例如所有 API 都只带一个 X-AppId 请求头用于 API 服务器获取该 App 对应的 AES 密钥,然后用这个 AES 密钥加密请求体。用户创建 APP 的时候把这个密钥返回给客户端。足够安全了吗?
我想到的缺点是如果服务器被脱裤,所有密钥全泄漏了,要联系所有客户换密钥。
3203 次点击
所在节点    信息安全
39 条回复
esee
155 天前
敏感内容还非要经过 cdn 转发的依据是什么?灵活调整架构,又不是 cdn 和服务器不能同时使用
KagurazakaNyaa
155 天前
@ysc3839 直接通过安全信道交换密钥不就好了?用户提前生成一个公钥通过安全信道保存到服务器就能解决的事情。接下来的安全性就完全取决于用户的私钥会不会泄露。
lianyue
155 天前
这个简单啊 单独弄个域名 不套 cdn 或者 该域名 只转发数据就行了
你需要每个用户独立加密 / 或其他的 那你 cdn 完全缓存不到这个动态数据 没必要 唯一作用就是转发而已

https://chatgpt.com/share/680135e4-f11c-800c-855c-b3afd25ca630
sinxccc
155 天前
最简单的方法是找同样合规的 CDN
yinmin
155 天前
OP 可以问问看有没有类似 sni proxy 的 cdn 。以前去银行开会的时候,听到过有一种 cdn 跑 https 是不需要部署证书的,cdn 不解密数据。
busier
155 天前
@yinmin sni proxy 就是一 Reverse proxy 而已。连 cdn 的 c 和 d 都做不到,还非要蹭下 cdn 的名号。
shiji
155 天前
@sinxccc 对的。 自行创造加密方法是泄密的起点。
shoaly
155 天前
楼上那么多在说啥? 比如请求体包在一个 json 里面, 直接 用 rsa 公钥加密 然后丢给网关, 网关解密就可以了啊? 哪怕裸的 http 报文在公网传输都是安全的
ysc3839
155 天前
@XiLingHost 目前的问题之一就是没有安全信道,数据对 CDN 来说是明文的
ysc3839
155 天前
@shoaly 那 RSA 公钥如何获得呢?
shoaly
155 天前
@ysc3839 #30 公钥从你的 https 网站生成好了, 用户登录后台, 自己去领的啊.
KagurazakaNyaa
155 天前
@ysc3839 你用户创建 app 的时候写进去不就好了
msg7086
155 天前
单独开一个 secure 子域名做端到端加密连接不行吗?让 CDN 只做数据反代不就行了。
TLS 自己已经足够安全了,中间人拿不到数据的。
ysc3839
155 天前
@shoaly @XiLingHost 这么做还是依赖一个安全信道,如果确认是有安全信道,那用楼主提出的方案就够了。现在的问题就是没有安全信道。
liuidetmks
154 天前
HMAC 拼接签名客户嫌麻烦不太愿意对接

------------

既然是客户,你得提供 sdk ,让他调
常用的 c java go node rust swift oc Kotlin python 鸿蒙 ts php
stormtrooperx5
154 天前
shoaly
154 天前
@ysc3839 #34 公钥 不需要加密, 泄漏了也没事, 直接敞开了放官网首页 都可以, 甚至说可以所有用户共用同一个公钥也没问题
ysc3839
154 天前
@shoaly 问题是防不了中间人攻击,中间人可以把公钥替换掉,然后就能用他自己的私钥解密数据。
shoaly
154 天前
@ysc3839 #38 他原文只是想要 避免被中间人看到内容, 如果中间人已经坏到要替换内容的程度, 这还不直接跑了, 等什么呢?

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

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

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

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

© 2021 V2EX