首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >加密流数据

加密流数据
EN

Cryptography用户
提问于 2019-04-17 03:10:51
回答 1查看 273关注 0票数 0

在高层次上,问题是:如何对流数据进行加密签名?

以下是背景:

  • 很多人不断地向我传送数据。
  • 数据是公开的,不一定需要加密。
  • 我想确认的是,确实是他们发送的数据
  • 我想赔偿他们(也许是向公共广播公司支付区块链的费用)

一般的策略是什么(或者有一个标准?)才能做到这一点?以下是一些粗略的想法:

Alice用她的私钥对连续的数据块进行签名,我确认它来自她的公钥,并且可以编码一些规则来支付她(由她的公钥标识)。

有没有报纸或进一步的阅读,还是我走错了轨道?

EN

回答 1

Cryptography用户

发布于 2019-04-17 15:24:09

这非常类似于使用实体身份验证来建立传输安全性。换句话说,这非常类似于TLS,但在这种情况下,客户机似乎需要身份验证而不是服务器。

不过,将TLS与客户端身份验证结合使用可能会解决您的需求。当然,它也会加密流,但这不一定会造成问题。否则,您可以只使用HMAC和跳过加密来替换加密和身份验证。

否则,研究TLS握手并确定实体身份验证如何工作以及如何建立共享会话密钥将是一个非常好的主意。一旦建立了会话密钥,就可以使用它们来验证流中的记录/消息。这些只是组成流的数据块。

请注意,设计/实施运输安全是充满危险的,在没有对这一主题有很好的了解的情况下,不应该尝试。

请注意,SSH通常更适合客户端身份验证,而不是TLS,后者需要服务器身份验证。因此,在满足需求方面,SSH可能是一种更好的传输安全协议。不过,我不太了解SSH的当前安全细节。

另一种选择是在发送之前对数据进行签名(应用程序级安全性而不是传输安全性)。这将允许您验证流是否由某个实体传递,即使在传输之后也是如此。如果这是一个有价值的属性,则取决于您的使用场景;它也可能是非常危险的--其他人也可以验证它是由签署它的实体交付的。

这似乎是当前的道路;然而,在这个场景中,您最好签署整个流/文件,而不是块。否则,您只需要设计一个非常糟糕的传输模式安全性,而不需要前向保密、大量开销和专有消息层。

票数 2
EN
页面原文内容由Cryptography提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://crypto.stackexchange.com/questions/68834

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档