【发布时间】:2014-12-01 13:21:59
【问题描述】:
是否可以使用 Mozilla Persona 对数据(字符串、令牌、...)进行签名?
我想通过 navigator.id.request() 传递一串数据,然后在不受信任的介质上传输断言并在验证时检索数据。
【问题讨论】:
标签: javascript mozilla persona
是否可以使用 Mozilla Persona 对数据(字符串、令牌、...)进行签名?
我想通过 navigator.id.request() 传递一串数据,然后在不受信任的介质上传输断言并在验证时检索数据。
【问题讨论】:
标签: javascript mozilla persona
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 的数据。
【讨论】: