问题标签 [fido-u2f]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 包装第三方库时包装异常
我在使用 FIDO 设备为注册和登录网站的后端代码制作一个简单的 API 时遇到了一个小问题。
我基本上包装了 yubico u2f 库并使其更易于使用。我遇到的问题是异常,我想从我的 API 向后端服务器com.yubico.u2f.exceptions.NoEligableDevicesException
抛出异常,但我不希望我的用户(后端开发人员)必须查看或导入 yubico 库。
因此,我的解决方案是像这样包装该异常:
然后throw
给用户我包装了 yubico 异常的异常。问题是这增加了我的代码的复杂性,并且每次com.yubico.u2f.exceptions.NoEligableDevicesException
发生异常时我都必须捕获它并抛出com.github.dkanellis.fikey.exceptions.NoEligableDevicesException
.
有一个更好的方法吗?
php - Laravel 5 多重身份验证
我正在考虑为我的一个项目实施两因素身份验证。我见过:https ://github.com/bitbeans/Yubikey
https://github.com/antonioribeiro/google2fa
https://github.com/lahaxearnaud/laravel-u2f
我想把选择权留给我的用户,需要哪些身份验证方法以及需要多少种身份验证方法。因此,我知道我正在考虑编写一些特殊的代码来实现这一目标,但我不确定从哪里开始。
我的目标是让用户不使用任何额外的身份验证方法或允许他们使用所有可用的额外身份验证方法。理想情况下,登录表单只需要用户名/密码;输入正确的凭据后,用户将被引导到用户选择使用的每种身份验证方法的新页面。
laravel-u2f 使用中间件;我并不反对这样做,但似乎需要为每个请求处理太多额外的逻辑,而不仅仅是在用户登录时。
我曾考虑更换默认的 Auth 驱动程序,但我不确定这是最好的做法。
我最后的想法;我倾向于监听“auth.attempt”事件并使用它来检查需要进行哪些额外的身份验证。但是我不确定如何处理从中获取其他身份验证信息的最佳方法。
所以我发布的原因是寻找实现我正在寻找的最佳方式的输入。
fido-u2f - U2F 与多个 FacetID 集成,无需 Chrome 扩展,但 u2f-api.js
我尝试在我的 Web 应用程序中实现 U2F。由于该应用程序可用于多个 URL,因此我必须添加一个具有有效 FacetID 的 JSON 文件,如规范中所述。Yubico 在他们的网站上对该规范有一个简短的总结。
不幸的是,当我调用u2f.register(...)
Method 时,我得到错误代码 2,这意味着 AppID 有问题。
我的 AppID 是 JSON 文件的 URL。如规范中所述,我添加application/fido.trusted-apps+json
为内容类型。无论如何,这个 URL 永远不会被调用。
我正在使用最新的 Chrome (v46.0.2490.80m)。如此处所述,不再需要 Chrome 扩展程序。
此外,我在 Chromium 项目上发现了一个已关闭的错误报告,它告诉我 U2F 是根据规范实现的。
我使用的是u2f-api.js而不是 Chrome 扩展程序。
这是 u2f-api.js 的问题吗?有更新的吗?
到目前为止,这是我的代码:
authentication - FIDO U2F:签名方法的独立性?
FIDO U2F 标准可以用任意的签名方式来实现吗?如果需要使用特定方法,我找不到任何信息。
进一步的问题:是否可以在注册步骤向依赖方发送多个公钥(例如,如果使用一次性签名方案)。
java - 使用 FIDO UAF 进行移动应用的指纹扫描
我是FIDO联盟的成员。我正在开发一个移动应用程序,出于安全目的,我想包括指纹扫描。我已经参考了 FIDO UAF 提供的所有可用/提供的用于用户管理的文档。这正是我希望在我的应用程序中包含的内容。基本上我正在寻找 API / SDK / 可用文档进行开发。
我也有几个问题要提出
1)在FIDO联盟的帮助下可以拥有指纹扫描功能。? 借助 API 提供(如果有),
2)Fido 联盟是否在 android 版本 23 以下实现
。3)是否有任何文档可以参考开发指纹扫描功能。如果 android studio 中的 FIDO UAF 有任何 API 或 SDK 可用,那么你能提供给我吗?
android - 是否可以将 Android 手机用作 2FA 设备?
是否可以将 Android 用作 2FA 设备,例如 2-factor YubiKey 棒?似乎应该是可能的,因为我知道 Android 能够作为 USB 附件连接。
javascript - 检查浏览器的 U2F 功能
有没有办法检查浏览器是否支持U2F?
我知道目前,Chrome 是唯一官方支持 U2F 的浏览器,但有 Firefox 的插件,也可能有定制的浏览器可能已经支持 U2F。
我不想像谷歌那样放弃这样的浏览器,因为插件用户将无法使用它。
我看到 GitHub 似乎有办法查看它(因为它区分了有和没有插件的 Firefox),但我不知道该怎么做。
google-app-engine - 简单的 HTTPS 到 HTTP 代理
我正在尝试在 Google Appengine 上测试U2F 。
不幸的是dev_appserver.py
,用于本地测试的开发应用程序服务器仅在 HTTP 中运行,并且 U2F 标准要求 Web 服务器通过 HTTPS 连接。
代理服务器有一些选项,包括stunnel、stud、Pound和ngrok。
我所做的可能最终会成为一个开源包,所以我想保持设置相当简单,并将依赖项列表严格限制在广泛可用的包中。
一个理想的解决方案是一个命令行程序,类似于prog_name -listen localhost:8041 -proxy localhost:8040
; 换句话说,一个非常简单的命令行设置。
和程序似乎有点矫枉过正stud
。pound
该stunnel
选项似乎是最好和最常见的解决方案,但如果可以从命令行而不是配置文件配置它会更好。
Ngrok 非常酷,似乎是正确的路线。虽然它为您提供了一个随机的服务器名称,这可能是一个问题,因为 U2FappId
必须与服务器匹配(如果持久性很重要),但除此之外,它基本上是正确的想法。
openssl
我对从命令行可以实现这一点有一个模糊的记忆,但唯一似乎合适的命令s_server
似乎只提供 ssl 反射/调试信息,而不是代理请求本身的选项。我的记忆一定有问题。
编写一个简单的 Python 服务器/客户端代理并不难,这让我相信那里可能有一个简单的选择……但是,搜索结果的信噪比非常糟糕。
当内容通过 HTTP 提供时(与 AppEngine 的情况一样),是否有其他明智的选择可以使用 HTTPS 服务器进行开发dev_appserver.py
?
android - 是否可以使用本机密码/模式登录远程系统?
我正在设计一个 android 应用程序,我可以在其中以多种方式登录:密码、pin 码、图案、指纹..
虽然密码登录实现很容易,但服务器将检查密码,验证用户身份并管理登录会话。
说到pin码登录,似乎很复杂。据我所知,pin码是某种“本地身份验证”,“检查过程”发生在设备内部,或者android系统中。如果应用程序没有向服务器发送任何凭据,即使“本机身份验证”成功,应用程序如何登录服务器?
显然,我不想要将密码/模式映射到服务器中的某个“密码”的解决方案,因为这与密码登录没有什么不同。
另一种解决方案是在设备上存储一些凭据(令牌、密码、证书),并在“本机身份验证”后转发到服务器。但我认为这是不安全的。
那么,应用程序如何将这些“本地身份验证”(pin 码、图案、指纹)与远程服务器连接起来,以得到服务器的信任?
谢谢。
补充:关于指纹登录,我参考了FIDO UAF。这个解决方案解决了我的问题:经过“原生认证”后,fido客户端会向服务器发送一些“断言数据”,服务器可以验证fido客户端针对这些数据,并接受断言。
java - Wildfly 10 BouncyCastleCrypto ECDSA 密钥规范无法识别
我正在向我的 J2EE 应用程序添加对 FIDO U2F 的支持(这基本上是使用硬件令牌保护登录)。我正在使用来自 yubico 的库 u2flib-server-core,它使用 BouncyCastleCrypto 处理协议中的加密操作。但是,在从持久存储中解码公钥时,我不断收到消息异常
“无法识别关键规格”
我已将问题从库中缩小到此功能
方法 generatePublic 抛出异常,该异常被捕获并作为 RuntimeException 重新抛出。
我已验证 KeyFactory.getInstance 从 BC 提供商返回 KeyFactory。在 Wildfly 之外运行此代码可以完美运行。(我不得不将 bcprov-ext-jdk15on-154.jar 放入 java 的 /lib/ext 中)。
我已经尝试为 bouncycastle 更新 Wildfly 的模块,目前我已经添加了在http://www.bouncycastle.org/latest_releases.html上发布的所有 6 个 jars
堆栈跟踪中有趣的部分是
希望有人可以帮助我:-)在此先感谢
编辑:我已经尝试过使用其他模式的代码,并且看起来没有单个事件被识别。使用 EC 例外是不同的,因为它使用了其他提供者,但是配置提供者列表 BC 位于顶部会产生与我提到的相同的例外。
编辑我认为这可能是某种类加载问题,所以我打开了详细日志记录,这里是有趣的日志
KeyFactorySpi 和 ECKeySpec 来自两个不同的 jar(类加载器?),因此 KeyFactory 中使用的 instanceof 失败