gpt4 book ai didi

android - 安全问题, header 中的 HMAC 与 https,或两者兼而有之?

转载 作者:太空狗 更新时间:2023-10-29 16:17:44 25 4
gpt4 key购买 nike

我正在设置一个服务器,Android 应用程序和 iPhone 应用程序将连接到该服务器。我想知道哪种类型的安全性对于发送/请求数据更安全?

目前,我在 header 中为要发送到服务器的内容生成一个 HMAC-SHA256,以验证其完整性。但我想知道使用 https 连接是否更安全?如果我使用 https,我可以跳过 HMAC 吗?

我想知道安全方面的区别,哪个更安全?

此外,如果我使用其中任何一个,是否更好地使用两者来获得额外的安全层?

最佳答案

快速回答您的问题:如果使用得当,SSL 应该比 HMAC 提供更多的安全保证。因此,通常可以以不需要 HMAC 的方式使用 SSL。

HMAC 提供完整性和真实性。假设客户端和服务器使用预共享的对称 key 来计算 HMAC,一方可以确定另一端的设备具有 key 。这提供了服务器和客户端的真实性。

这张图(只有 HMAC)缺少的是 secret 性。服务器和客户端之间交换的数据的性质是什么?在通信过程中是否有任何您不希望中间人看到的敏感用户数据正在传输?如果是这样,那么您可能想要使用 SSL。

SSL 为您提供 secret 性(除其他外)。这意味着您可以确定您拥有安全的端到端连接,并且没有中间人可以看到服务器和客户端之间正在交换的数据。但是,常见的 SSL 用法不包括客户端机器身份验证。例如,当您访问 https 网页时,您的网络浏览器会检查 Paypal 的真实性。但是 Paypal 服务器不会要求您的浏览器从您这边发送任何证书。

由于您将 SSL 与 HMAC 进行比较,我假设您关心双方的真实性。因此,将 SSL 用于服务器和客户端身份验证。这基本上意味着他们都将要求对方的证书并检查证书的不同方面(即通用名称、证书颁发者等)。您可以创建自己的证书颁发者来签署这些证书。

如果您正在为 AppStore 或 Google Play 制作一个用户可以简单地安装并开始使用的应用程序,您可能需要考虑如何生成、签署客户端证书或由谁签署这些证书。您可以通过采用类似于 GitHub's 的模型来消除对客户端证书(和签名)的需求。 ,其中用户手动通知服务器可信公钥以验证设备。但是您可能会看到此过程可能对用户不友好。

关于android - 安全问题, header 中的 HMAC 与 https,或两者兼而有之?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22683952/

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