为什么要用 webauthn 代替挑战?
Why replace the challenge by webauthn?
对于服务器生成的和客户端生成的挑战,以下字符串是不同的:
+
-> -
/
-> _
=
->
(空space)
为什么我们需要做替换来解决这个问题?
用于参考的源代码。
看起来像是普通 Base64 编码和 Base64 URL 之间的区别,以及填充与无填充选项(尾随 =
s)。后者在 URL 秒内可以安全使用,与前者相反。另见 https://en.wikipedia.org/wiki/Base64#URL_applications
Webauthn 需要 using Base64 URL encoding 而某些函数(例如 javascript 的 atob
或 btoa
)是普通的 Base64 编码方案,因此需要从一个转换给另一个。
对于服务器生成的和客户端生成的挑战,以下字符串是不同的:
+
->-
/
->_
=
->(空space)
为什么我们需要做替换来解决这个问题?
用于参考的源代码。
看起来像是普通 Base64 编码和 Base64 URL 之间的区别,以及填充与无填充选项(尾随 =
s)。后者在 URL 秒内可以安全使用,与前者相反。另见 https://en.wikipedia.org/wiki/Base64#URL_applications
Webauthn 需要 using Base64 URL encoding 而某些函数(例如 javascript 的 atob
或 btoa
)是普通的 Base64 编码方案,因此需要从一个转换给另一个。