问题标签 [safetynet]

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.

0 投票
1 回答
119 浏览

android - android安全网nonce是否等同于web authnn的挑战?

android SafetyNet 与 Web Authnn 有多相似?是否将质询传递给 WebAutnn 的身份验证器以生成与传递给 Android SafetyNet 的随机数等效的证明对象?我可以使用带有 WebAuthnn 的随机数作为挑战吗?

0 投票
1 回答
333 浏览

android - SafetyNet 离线验证

我正在尝试按照此处的示例执行离线验证(https://github.com/googlesamples/android-play-safetynet/blob/master/server/java/src/main/java/OfflineVerify.java)。但是,当我尝试导入以下类时,Android Studio 显示未解析的引用

未解决的引用是 api 和 DefaultHostnameVerifier。

我错过了一些设置吗?

0 投票
2 回答
706 浏览

java - Google SafetyNet API JwsResult 是一个散列字符串而不是 JSON

我已经成功实现了 Google SafetyNet API,甚至得到了成功的响应。问题是JWSResultfromAttestationResponse是一个散列字符串,而我的期望是得到一个 JSON 作为响应。

请问我需要先从哪里找问题?

attest()是调用的代码:

0 投票
0 回答
44 浏览

javascript - 来自 webview 的 javascript 的 Safetynet 证明请求?

今天我想知道是否可以从应用程序的 web 视图执行 Safetynet 证明请求。我实际上会假设“是”,因为 webview 存在于应用程序的上下文中,因此请求有可能获取应用程序的上下文。(我没有使用过 Safetynet,但我知道它会发送包名称和应用签名以及确保应用完整性的请求。另一方面,我会假设答案是“否”,因为当我搜索“safetynet webview”时或 'safetynet javascript' 我在谷歌上得到零相关点击。

0 投票
1 回答
400 浏览

android - Android SafetyNet 认证 - 离线设备

我最近为我正在工作的应用程序遇到了一个安全问题:在有根设备上运行的可能性。我发现这种情况很难预防。我的第一次尝试是实现RootBeer。可悲的是,有像Magisk Manager这样的工具可以欺骗您的应用程序,使其无法将设备识别为 root。

经过一番研究,我发现SafetyNet终于被“修复”了,所以该应用程序不能再通过 Magisk 使用了。为此,我需要向我的服务器发送一个使用随机数生成的 JWS 令牌(从服务器接收,如 Google 建议的那样)。

现在一切都很好 - 我的主要问题是我的应用程序可以离线使用。一个解决方案是在本地验证 JWS 令牌,但这会打开漏洞。

我需要您的帮助来了解我应该怎么做才能防止应用程序在有根设备上使用 SafetyNet(或其他方式)在在线和离线模式下打开。

谢谢!

0 投票
1 回答
278 浏览

google-api - Android SafetyNetClient.attest() 超时

您可能知道SafetyNetClient.attest()异步运行。
但在我们的应用程序中,我们希望SafetyNetApi.AttestationResponse同步接收。因为需要 SafetyNet 结果作为另一个用例的输入。为了实现这一点,我们实现了一个看起来像这样
的“包装器” 。SafetyNetClient.attest()

我们目前面临的问题是,我们有许多最终用户,他们最终都进入了catch (TimeoutException e)这个代码示例的块中。
这意味着 SafetyNet 在配置的 10 秒超时中没有提供结果或错误。

在哪些情况下 SafetyNet 可能不会在 10 秒内返回结果?
除了可能是连接不良的明显原因。肯定有其他原因,因为我们有很多最终用户遇到这个问题。

我们不想简单地将超时时间增加到 30 或 40 秒,因为这会影响用户在需要 SafetyNet 证明的特定应用流程中的用户体验。

您的应用程序逻辑是否仅实现无限期SafetyNetClient.attest()地等待Task返回结果或异常?而且您依赖于必须以or结尾
的事实?TaskOnSuccessListeneronFailureListener

您是否有关于SafetyNetClient.attest()通常运行多长时间才能在其中一位听众中完成的经验?

我们已经可以排除ResusltWaiter组件中的任何错误,因为它在我们应用程序的其他几个部分中使用,并且可以完美运行。

提前感谢您的帮助和反馈!

0 投票
3 回答
6262 浏览

android - 在 Android 上启用安全网设备检查 API 的具体步骤是什么

我在我的 android 应用程序中集成了 firebase 电话身份验证。它工作了将近 2 个月,突然从 2-3 天开始,我观察到不同的行为。

验证码屏幕开始出现。早些时候我没有启用安全网设备检查 API。查看 firebase 文档,我很想启用安全网设备检查。

由于步骤不清楚,我不确定我是否做对了。我也不清楚firebase和谷歌云是如何联系起来的。firebase 如何知道要链接到哪个谷歌云项目..

之前的流程是...电话验证->接收短信->自动验证短信并且用户已登录。现在流程是...电话验证->出现验证码屏幕(已加载某种网页)...- > 一段时间后,验证码屏幕自行关闭 -> 收到短信 -> 使用 OTP 验证登录。

让我知道如何避免验证码屏幕。我敢肯定,如果验证码屏幕介于两者之间,我会失去很多用户。

0 投票
1 回答
623 浏览

android - Firebase 手机身份验证 - 应用验证(SafetyNet)

我想使用 SafetyNet 验证电话号码 Firebase 而不是 reCAPTCHA 验证。我在这里关注 Firebase 文档:https ://firebase.google.com/docs/auth/android/phone-auth

  • 在 Google API 控制台中,我启用了 Android 设备验证 API。
  • 在 Firebase 控制台中,我添加了 SHA-256 指纹。
  • 重新安装 google-service.json 并将其添加到项目中。

它总是将我重定向到网页以验证我不是机器人。我尝试删除

但是应用程序崩溃了。

这是我用于 SafetyNet 的代码,它总是成功但随后显示网页。我想知道如何防止应用程序始终重定向到 reCAPTCHA 验证,尽管 attest 功能工作正常。

0 投票
0 回答
58 浏览

android - SafetyNet:DDoS 滥用是否计入每日 10.000 次请求限制

根据Google SafetyNet 文档

调用 SafetyNet Attestation API 的默认配额分配(每个项目)是您的用户群中每天 10,000 个请求。

当不良玩家对我们的应用程序发起 DDoS 攻击时,它是否也计入我们的每日限制,其中用户设备不会导致成功的 SafetyNet 响应(即来自根设备或模拟器)?

如果这是一个成功的请求,例如攻击者播放点击记录的真实手机,该记录会重复重置应用程序数据并将应用程序导航到它与安全网联系的位置怎么办?

我们正在努力防止滥用我们的电话号码验证服务,似乎攻击者已经自动重置应用程序并点击电话验证。我想知道添加 SafetyNet 是否只是提供了另一个容易受到 DDoS 攻击的层。如果可能的话,我们宁愿避免使用恼人的验证码。如果它是一个真实的设备,它有一个唯一的硬件 ID,我们可以用它来防止垃圾邮件。

0 投票
0 回答
129 浏览

android - 如何使用 android Firebase 在手机身份验证选项中添加安全网令牌?

我在 Firebase 中使用电话身份验证。但是当我实现它时,它显示以下错误: E/zzf: Problem retrieving SafetyNet Token: 7: 然后这个E/FirebaseAuth: [GetAuthDomainTask] Error getting project config. Failed with INVALID_CERT_HASH 400

这是我的完整代码

登录方式

我还在 firebase 中添加了 sha-1 和 sha-256。还添加 Android 设备检查 api 密钥。我是怎么做到的,请任何人帮助我。