【问题标题】:Mozilla Persona sign data stringMozilla Persona 签名数据字符串
【发布时间】:2014-12-01 13:21:59
【问题描述】:

是否可以使用 Mozilla Persona 对数据(字符串、令牌、...)进行签名?

我想通过 navigator.id.request() 传递一串数据,然后在不受信任的介质上传输断言并在验证时检索数据。

【问题讨论】:

标签: javascript mozilla persona


【解决方案1】:

Persona/BrowserID 不是通用签名方案。为此,您可能需要查看 JSON Web Signature (JWS),它有多种语言的库支持。

navigator.id.request API 不提供将任意数据传递到配置工作流的方法,因此标准 Persona JavaScript 无法完成此操作。您将不得不使用自定义的 JavaScript,该 JavaScript 为供应回调提供自定义数据而不是公钥对象。

如果您走到这一步,您是否可以让身份提供者签署任意数据将取决于 IdP 软件如何处理公钥参数。 例如,Haskell persona 库不透明地处理公钥参数;它将验证任意 JSON“值”(see source)。

另一方面,如果 IdP 软件希望以 JavaScript 中介代码生成的格式解析有效的密钥对象,那么您将无法签署任意数据。

总结:如果您托管自定义 JavaScript 以将任意数据而不是公钥传递给 IdP,并且如果 IdP 的软件将公钥视为不透明值,那么您可以签署任意Persona 的数据。

【讨论】:

  • 感谢您的确认。我正在调查 webrtc 身份问题。如果连接中使用的密钥对的指纹可以通过断言 Persona 与 webrtc 结合使用进行验证。
猜你喜欢
  • 1970-01-01
  • 2018-05-22
  • 1970-01-01
  • 2012-09-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-22
相关资源
最近更新 更多