最近,我开始为一个web应用程序开发webauthn实现。
一个POC和基本实现,用于创建和获得良好的工作,没有任何问题。
我想了解要传递给authenticator.Should的authenticator.Should--在服务器中生成的publicKey或要生成的client.If,或者将以二进制或utf格式进行身份验证的响应,我如何发送它作为来自axios的请求和响应?
发布于 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或客户端通信提供了易于使用的功能。
发布于 2022-09-29 14:51:50
包含publicKey的对象应该由服务器生成,通常称为依赖方。
您可以选择实现使用publicKey生成对象的功能,也可以选择使用预构建的库(这是我推荐的)。
根据您选择的服务器端语言,webauthn.io有一个库列表,您可以利用这些库。
当涉及到通过Axios发送身份验证器响应时。我倾向于选择这样一种方法:
https://stackoverflow.com/questions/73890759
复制相似问题