问题标签 [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 回答
368 浏览

android - 如何确定 API 是否仅被指定的应用程序访问?

比如说,我有一个 API /api/send-otp,它将电话号码作为输入并将 otp 发送到用户的电话号码。现在,这个 API 不能被认证,因为 auth token 是在成功/api/confirm-otp调用后生成的。

如何确保/api/send-otp呼叫仅来自授权的android应用程序,而不是来自任何脚本/客户端。

PS:我不能在 apk 中嵌入任何散列逻辑,因为它可以被逆向工程。谷歌提供的东西(安全网)吗?任何相关的文档/实施链接都会有所帮助。

0 投票
1 回答
546 浏览

android - 来自 Google SafetyNet 的 JWS 包含的 nonce 值与我在 attest() 中提交的值不同

我正在尝试在 Android 应用程序中实现 SafetyNet,但遇到了这个问题:

我收到的 JWS 将 nonce 显示为特定值,但它与我在此处传递的不同:

nonce.getBytes()用作参数,因为从服务器生成的随机数是一个字符串。

我一遍又一遍地阅读文档,但无法弄清楚为什么我作为 JWS 的一部分收到的 nonce 值与我在attest()方法中输入的值不匹配。如果这是预期的,为什么会这样?我怎样才能让服务器期望这个值来验证它?

有任何想法吗?

谢谢!

0 投票
1 回答
967 浏览

android - 需要澄清 SafetyNet API 每分钟配额限制

我们应用程序中的安全网调用在生产中经常失败。我们认为,最近消费者流量的激增以及 Safetynet API 的限制可能会导致该问题。

“如果每分钟触发超过 5 次调用,就会超出 API 的固定速率限制,这会导致该分钟内剩余的请求返回错误。” 礼貌 - https://developer.android.com/training/safetynet/attestation

但是,我们不确定此限制是适用于每个用户的每个应用程序还是适用于 API 密钥。请说清楚。

谢谢

0 投票
2 回答
1011 浏览

android - SafetyNet 无法获得结果

我正在尝试学习如何在 stackover 中参考其他成员的参考来实施安全网。SafetyNet:包名总是返回 null

第一段代码是SafetyNetVerifier的完整代码

当我尝试调试时,它总是会停在

SafetyNet.SafetyNetApi.attest(mGoogleApiClient, nonce)

我可以知道为什么会这样吗?我查看了 google 提供的 Safetynet 示例,他们通常会将 API 密钥与 nonce 配对。如何将 mGoogleApiClient 更改为 API KEY?

0 投票
1 回答
1308 浏览

android - Google reCaptcha 不会在真实设备上显示验证码挑战对话框

我正在尝试按照谷歌开发者网站的本指南实施谷歌 reCaptcha 。我的代码:

在模拟器上它的工作正常。当我点击按钮时,reCaptcha 会显示带有多个图像的对话框,用户应该在其中选择所有带有汽车、gidrants 等的图像。

但是,在真实设备上。单击按钮后,我总是收到 onSuccess 回调,并且对话框从未显示。

也许有人知道我面临什么问题?

0 投票
0 回答
207 浏览

android - SafetyNet 证明 API 的间歇性网络问题

专家们,

我们在 Android 上遇到了与 SafetyNet 客户端的间歇性连接失败。我们使用的是 com.google.android.gms:play-services-safetynet 版本 11.8.0,但也看到了版本 16 的问题。

当设备连接到没有 Internet 连接的 WiFi 网络,然后切换到具有 Internet 连接的 WiFi 网络时,会出现此问题。在这种情况下,证明方法有时会继续失败,状态码为 7(网络错误)。多次重试并不能解决问题。

我们确认我们没有达到“每分钟、每用户”API 配额,这会返回不同的状态代码。

有任何想法吗?谢谢!

0 投票
2 回答
1527 浏览

android - Android:SafetyNet 证明设备验证响应网络错误

我正在使用 Google 客户端调用 SafetyNet Api,但它没有响应正确的响应。

我在结果方法中收到以下错误消息。

状态{statusCode=NETWORK_ERROR, resolution=null}

任何形式的帮助将不胜感激。

0 投票
1 回答
1639 浏览

android - 使用设备验证 api 验证 Android 设备

我正在查看此内容以验证 android 设备的真实性,如此处所示。现在有两种方法可以做到这一点。一种是离线验证,另一种是在线验证。在线验证调用谷歌认证检查 api 时,我还必须将我的 API_KEY 连同我的认证响应一起发送到该 API。

有人可以建议选择在我的服务器中使用哪种方式来验证我的设备 - 无论是离线还是在线?

0 投票
1 回答
280 浏览

android - Android Safetynet Attestation 内置重试逻辑

我的问题是 Google Safetynet 内置了哪些重试逻辑,应用程序中应该构建哪些重试逻辑?构建应用程序级逻辑的最佳实践是什么?

我在 Android 应用程序和 Web 后端服务中使用 Safetynet Attestation。Safetynet 用于验证数据是否来自安装在有效 Android 设备中的 Android 应用程序,并且消息未被篡改。使用的基本代码来自Safetynet 文档示例

在网络连接暂时不可用或 Google Safetynet API 在一段时间内无法访问的情况下,我在设计用于在设备应用程序中获取安全网证明的重试逻辑时遇到问题。

Safetynet 类基于GoogleApi 类。GoogleApi 的文档说已经有一些自动超时/重新连接逻辑。

  • 必要时自动超时并重新连接

Safetynet 自动内置了哪些逻辑,应用程序开发人员需要构建哪些逻辑?例如请求的超时时间是多少(“自动超时”),可以调整吗?它重试了多少次以及使用什么重试策略(“必要时重新连接”)?

0 投票
1 回答
291 浏览

android - 如何对 SafetyNetClient.attest() 及其关联的 OnSuccessListener 和 OnFailureListener 进行单元测试

我在我的应用程序中使用 SafetyNet,遵循本指南:https ://developer.android.com/training/safetynet/attestation ,并且我有类似于此模式的代码(在提供的链接中):

一切正常,我按预期获得成功或失败。

我的问题:有没有一种方法可以对这段代码进行单元测试,而无需在真正的 SafetyNetClient 上调用attest()方法,而是在模拟上?我可以模拟SafetyNetClientSafetyNetApi.AttestationResponse使用 Mockito,但我不知道如何模拟成功或失败事件。