gpt4 book ai didi

api - 在使用大多数 API 时,为什么它们需要两种类型的身份验证,即 key 和 secret ?

转载 作者:行者123 更新时间:2023-12-03 10:09:51 25 4
gpt4 key购买 nike

我一直在使用 API,我一直想知道为什么必须使用 key 和 secret ?

为什么需要两种类型的身份验证?

最佳答案

当服务器接收到 API 调用时,它需要知道两件事:谁在进行调用,以及调用是否合法。

如果您只有一个项目(“ key ”),并且每次通话都包含它,那么它会回答这两个问题。基于“ key ”,服务器知道您是谁,并且因为只有您知道 key ,它证明调用实际上来自您。但是在每次通话中都包含 key 是不好的安全做法:如果有人甚至可以在传输过程中读取您的一条消息,那么您的 key 就会被泄露,并且有人可以假装是您。所以除非你使用 HTTPS,否则这种方法是行不通的。

相反,您可以在每个调用中​​包含一个数字签名,并使用一些“ secret ”号码签名。 (不发送“ secret ”号码本身)。如果攻击者设法阅读您的消息,他们将无法从签名中找出这个“ secret ”号码。 (这就是数字签名的工作方式:它们是单向的)。

但这并没有解决识别问题:在后一种情况下,服务器如何知道谁在进行调用?它可以尝试根据每个用户的“ secret ”来验证签名,但这当然会非常耗时。

所以,这就是我们要做的:发送一个“ key ”(标识用户)和一个使用“ secret ”数字创建的签名(证明消息是合法的)。服务器根据 key 查找用户,然后使用该用户的“ secret ”号码验证签名。

这有点像你写一张支票:上面有一个帐号(用来识别你)和你的签名(用来证明你就是你)。只有帐号并不能证明您确实写了支票。只有没有帐号的签名会迫使银行将您的支票与其所有账户的所有签名进行比较,这显然是低效的。

关于api - 在使用大多数 API 时,为什么它们需要两种类型的身份验证,即 key 和 secret ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1482472/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com