【发布时间】:2021-10-22 12:04:54
【问题描述】:
我有 2 台服务器,让我们将它们命名为 serverA 和 serverFirebase
serverA 无法访问 Internet,只能在本地网络中访问,并且它托管一个 .net 应用程序
serverFirebase 是 google firebase 服务器
我需要从serverA 向serverFirebase 发送请求,但我不能,因为serverA 无法访问互联网
我想到的解决方案是,由于浏览器(显示来自serverA 的网络应用程序)可以访问互联网,我可以使用他的浏览器代理我的请求
应该是这样的
serverA -> 浏览器 -> serverFirebase
现在我想这样做的方式是这样的:
1 - 创建一个 rsa 密钥对,私钥在 serverA,公钥在 serverFirebase
2 - 在serverA 中创建请求负载的 sha256 哈希并填充它并使用私钥对其进行签名(请注意,请求负载具有只能使用一次的订单号)
3 - 将有效负载和签名的哈希发送到浏览器
4 - 将负载和签名哈希从 borwser 发送到 serverFirebase
5 - 在serverFirebase 中使用公钥解密签名的哈希并将其与有效负载的哈希进行比较,并检查之前没有使用过订单号
我的问题是这种方法是否足够安全?以及是否已经有任何协议可以处理这种情况。
谢谢
【问题讨论】:
标签: networking encryption server communication signing