在 HTTPS 时代对请求进行签名是否还有必要?

237 天前
 cheetah

今天看到百川大模型的接口文档 https://platform.baichuan-ai.com/docs/api 中要求对请求内容和时间戳进行签名,想到前几天在 V2EX 看到的帖子吐槽腾讯大模型 API 的签名( https://v2ex.com/t/975832 )。

而我们去看 OpenAI 等公司提供的 API ,是不需要这种签名的。

所以想讨论一下,在 HTTPS 时代这种签名是否还有必要?还是一种思维惯性?

我的理解:在 HTTPS 之前,这样的签名可以有效防止请求内容被篡改,是很有必要的,但现在 HTTPS 普及了,这里的好处并不存在了。另一点是重放攻击,我了解不多,请懂的朋友讲讲。

7267 次点击
所在节点    程序员
135 条回复
rocmax
237 天前
@Bingchunmoli 现在讨论的不就是用 https 的前提下 api 签名还有没有必要吗?
GeruzoniAnsasu
237 天前
@julyclyde 证书就是签名,双向证书==双向签名,机制稍有差异而已


----

我问个问题。

你是腾讯的服务器,现在有人请求修改 onwer A 的资源,你需不需要确认请求者就是 A ,如何保证?
zmaplex
237 天前
GitHub Access Token
AWS Access & Access Secret
等等,看场景。
adoal
237 天前
日经日读,月经月诵
maocat
237 天前
国内基本都是 app_id+secret

很多三方 api 测试环境都是不带 https
musi
237 天前
@GeruzoniAnsasu 你现在是 V2EX 论坛,现在有人请求 A 用户的数据,你需不需要确认请求者就是 A ,如何保证?
mmdsun
237 天前
这两个东西完全不一样好吧。
https 不防客户端自己抓包解数据,签名一定程度防这点。
https 再厉害也是防止其他人截获数据,对客户端安装本地证书解密防御为 0 。

Chatgpt 官网你 F12 看看能不能找到接口调用,就知道有没有签名了
rocmax
237 天前
@mmdsun 身份凭证在客户手里,想通过在客户端搞一些加密来防客户作恶是不可能实现的。所谓的“一定程度”防只是防君子不防小人,app 可以反编译,web 里脚本明摆着。

Chatgpt 怎么没有接口调用,返回内容是通过 Server-Sent Events 传的,身份认证用的是 JWT
unco020511
237 天前
我的理解是不需要的,都 https 了,为啥还需要额外加签验签?
me1onsoda
237 天前
@cheetah #11 不太懂。客户端服务端是相对而言的概念。我的服务端调用微信 api ,这里就成客户端了吧。
hanyuwei70
237 天前
LZ 可以去看一下 ACME 里面关于请求签名的部分,可能会有一些全新的看法
cheetah
237 天前
@me1onsoda 那说得更准确些,是指 server 服务器,隔离可控的。客户端指安卓 iOS 网页等。
cheetah
237 天前
@hanyuwei70 可以简单讲讲嘛
cheetah
237 天前
@mmdsun 这里在说提供给开发者使用的 public API ,不是网站自己用的
cheetah
237 天前
@mmdsun 不过 ChatGPT 官网的接口调用也没签名
Nazz
237 天前
如果我用 charles 抓包改请求/响应参数, 阁下如何应对
cheetah
237 天前
@Nazz 抓自己的包吗。。。(不确定你是否在开玩笑了
chf007
237 天前
肯定还是需要的。

用了 HTTPS 难道就不需要登录验证身份了么
cheetah
237 天前
@chf007 额?对请求签名和“登录验证身份”有关系么?
GeruzoniAnsasu
237 天前
@musi 我通过一个*SRF 漏洞修改你的账号发言权重

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

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

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

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

© 2021 V2EX