Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Api 双向共享秘密_Api_Encryption_Shared Secret - Fatal编程技术网

Api 双向共享秘密

Api 双向共享秘密,api,encryption,shared-secret,Api,Encryption,Shared Secret,我正在从事一个项目,在这个项目中,双方可以各自向对方发出API请求,并使用共享机密进行身份验证。另一方希望双方共享的秘密是相同的,但我不明白这是怎么回事。因此,我正在寻找如何安全地执行此操作的解释,或者找出这是否是可能的,并且共享机密应该根据请求的方向而有所不同 如果API请求只是朝一个方向进行,我将使用密钥定义的函数对密码进行加密,并存储哈希和加密,然后我可以通过在每个请求上生成并匹配哈希来验证用户。但是,如果我需要使用相同的共享机密向另一个API发出请求,那么似乎我需要以可以解密的方式存储密

我正在从事一个项目,在这个项目中,双方可以各自向对方发出API请求,并使用共享机密进行身份验证。另一方希望双方共享的秘密是相同的,但我不明白这是怎么回事。因此,我正在寻找如何安全地执行此操作的解释,或者找出这是否是可能的,并且共享机密应该根据请求的方向而有所不同

如果API请求只是朝一个方向进行,我将使用密钥定义的函数对密码进行加密,并存储哈希和加密,然后我可以通过在每个请求上生成并匹配哈希来验证用户。但是,如果我需要使用相同的共享机密向另一个API发出请求,那么似乎我需要以可以解密的方式存储密码,这似乎是错误的/不可能的


有没有办法做到这一点,或者共享秘密是否应该根据请求的方向而有所不同?

您的分析是正确的。如果双方都可以成为呼叫者,那么双方都需要知道秘密(而不仅仅是能够验证它)

拥有两个单独的键(每个调用方一个,在这个用例中您可以称它们为“密码”)似乎是一个合理的默认设置

考虑“各方”并给予各自的资格证书总是好的,特别是如果以后会有更多的各方参与进来。使以后撤销个人访问权限、实施细粒度访问控制变得更加容易,并将泄漏凭据的影响降至最低(攻击者只能模拟该方,而不能模拟系统中的任何其他方)


仅仅拥有一个可能看起来更容易管理,但是你要为不泄露其他人的钥匙(除了你自己的钥匙)负责。我会尽量避免额外的负担。

你的分析是正确的。如果双方都可以成为呼叫者,那么双方都需要知道秘密(而不仅仅是能够验证它)

拥有两个单独的键(每个调用方一个,在这个用例中您可以称它们为“密码”)似乎是一个合理的默认设置

考虑“各方”并给予各自的资格证书总是好的,特别是如果以后会有更多的各方参与进来。使以后撤销个人访问权限、实施细粒度访问控制变得更加容易,并将泄漏凭据的影响降至最低(攻击者只能模拟该方,而不能模拟系统中的任何其他方)

仅仅拥有一个可能看起来更容易管理,但是你要为不泄露其他人的钥匙(除了你自己的钥匙)负责。我会尽量避免额外的负担