【问题标题】:send data from a server to browser to another server将数据从服务器发送到浏览器到另一台服务器
【发布时间】:2021-10-22 12:04:54
【问题描述】:

我有 2 台服务器,让我们将它们命名为 serverAserverFirebase

serverA 无法访问 Internet,只能在本地网络中访问,并且它托管一个 .net 应用程序

serverFirebase 是 google firebase 服务器

我需要从serverAserverFirebase 发送请求,但我不能,因为serverA 无法访问互联网

我想到的解决方案是,由于浏览器(显示来自serverA 的网络应用程序)可以访问互联网,我可以使用他的浏览器代理我的请求

应该是这样的

serverA -> 浏览器 -> serverFirebase

现在我想这样做的方式是这样的:

1 - 创建一个 rsa 密钥对,私钥在 serverA,公钥在 serverFirebase

2 - 在serverA 中创建请求负载的 sha256 哈希并填充它并使用私钥对其进行签名(请注意,请求负载具有只能使用一次的订单号)

3 - 将有效负载和签名的哈希发送到浏览器

4 - 将负载和签名哈希从 borwser 发送到 serverFirebase

5 - 在serverFirebase 中使用公钥解密签名的哈希并将其与有效负载的哈希进行比较,并检查之前没有使用过订单号

我的问题是这种方法是否足够安全?以及是否已经有任何协议可以处理这种情况。

谢谢

【问题讨论】:

    标签: networking encryption server communication signing


    【解决方案1】:

    我认为这取决于您的威胁模型、您期望攻击者是谁以及您对环境的假设。

    在不让这太复杂的情况下,想到的一种攻击途径是浏览器和serverFirebase 之间的中间人。攻击者可能只是读取您在serverA 上生成的消息并将其存储。由于他可以阅读您的消息(您只是对摘要进行签名,而负载本身未加密),因此他知道他们在说什么,并按照他想要的顺序,随时随地发送他想要的消息。

    例如,如果您的第一条消息是buy 200 shares of Penny Stock,而您的下一条消息是sell 100 shares of Penny Stock。攻击者可能只能转发第一条消息,而不能转发第二条消息。

    【讨论】:

    • 感谢您的回答,消息的顺序并不重要,消息的有效负载是 Firebase 云通知请求,即使请求没有被发送,结果也不会那么激烈跨度>
    猜你喜欢
    • 1970-01-01
    • 2013-12-03
    • 1970-01-01
    • 2012-03-10
    • 1970-01-01
    • 2015-06-25
    • 2013-10-01
    • 1970-01-01
    • 2018-02-05
    相关资源
    最近更新 更多