首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Webauthn安全实践公钥生成

Webauthn安全实践公钥生成
EN

Stack Overflow用户
提问于 2022-09-29 05:42:38
回答 2查看 97关注 0票数 1

最近,我开始为一个web应用程序开发webauthn实现。

一个POC和基本实现,用于创建和获得良好的工作,没有任何问题。

我想了解要传递给authenticator.Should的authenticator.Should--在服务器中生成的publicKey或要生成的client.If,或者将以二进制或utf格式进行身份验证的响应,我如何发送它作为来自axios的请求和响应?

EN

回答 2

Stack Overflow用户

发布于 2022-09-30 08:11:31

我想了解要传递给publicKey的authenticator.Should,在服务器或客户机中生成publicKey。

没有将公钥传递给身份验证者。您传递表示应用程序( RP)的安全策略的选项。在选项中,您有一个挑战,这是一个随机字符串。身份验证器将接收选项,根据安全策略及其功能生成一对密钥(私钥和公钥),并返回包含公钥的响应(仅在创建仪式期间)。

客户端和RP都不涉及密钥生成过程。尽管如此,您还是有一些建议要遵循,如https://www.w3.org/TR/webauthn-2/#sctn-security-considerations所示。特别是,挑战应该至少有16字节长。请参阅https://www.w3.org/TR/webauthn-2/#sctn-cryptographic-challenges

如何将它作为来自axios的请求和响应发送?

我建议使用https://simplewebauthn.dev/docs/,它为与RP或客户端通信提供了易于使用的功能。

票数 2
EN

Stack Overflow用户

发布于 2022-09-29 14:51:50

包含publicKey的对象应该由服务器生成,通常称为依赖方。

您可以选择实现使用publicKey生成对象的功能,也可以选择使用预构建的库(这是我推荐的)。

根据您选择的服务器端语言,webauthn.io有一个库列表,您可以利用这些库。

当涉及到通过Axios发送身份验证器响应时。我倾向于选择这样一种方法:

  1. 身份验证器生成响应。
  2. 对身份验证器响应调用JSON.stringify(响应)
  3. 通过我的API传递响应字符串
  4. 当JSON字符串到达我的服务器应用程序时解码它
  5. 执行验证
票数 -3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73890759

复制
相关文章

相似问题

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