問題タブ [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.
android - Safetynet API ヘルパー エラー
私が見つけた最も簡単な方法の 1 つは、実装を非常にシンプルにするセーフティ ネット ヘルパー クラスです。すべてのクラスを safetynetlib からコピーして、コードに追加しました。植え込みの方法に従いましたが、エラーコードが表示されます
final SafetyNetHelper safetyNetHelper = new SafetyNetHelper(BuildConfig.API1);
04-20 22:32:50.950 28741-28741/com.aashish.smart D/SafetyNetHelper: apkDigest:IQUb5ULuwdbqOwpQn3jZev2EGXcjtk/yGYUvk1c64F8= 04-20 22:32:51.028 28741-28741/Google VashtyNetHelper.com.接続されたサービス 04-20 22:32:51.028 28741-28741/com.aashish.smart V/SafetyNetHelper: SafetyNet.API テストの実行 04-20 22:32:54.499 28741-28741/com.aashish.smart D/SafetyNetResponse: decodedJWTPayload json:{"nonce":"tnd1YpjORIX4teJEd7LuigDWNhWkF6s4T7Ay811BxsM=","timestampMs":1461171774655,"apkPackageName":"com.aashish.smart","apkDigestSha256":"IQUb5ULuwdbqOwpQn3jZev2EGXcjtk/yGYUvk1c64F8=","ctsProfileMatch":true,"extension" :"CQ6MIM+qMkMv","apkCertificateDigestSha256":["PHKalK4AF5EmDbPL5eBQS9EZJVPkgp06cr64rVQ7B7w="]} 04-20 22:32:54.500 28741-28741/com.aashish.smart E/SafetyNetHelper: 無効な apkCertificateDigest、ローカル/予想 =[MIIDizCCAnOgAwIBAgIEPIOxdDANBgkqhkiG9w0BAQsFADB2MQswCQYDVQQGEwJJTjETMBEGA1UECBMKVGFtaWwgTmFkdTEQMA4GA1UEBxMHQ2hlbm5haTEOMAwGA1UEChMFU21hcnQxEzARBgNVBAsTClRlY2hpbmljYWwxGzAZBgNVBAMTEkFhc2hpc2ggVml2ZWthbmFuZDAeFw0xNjA0MTkxMzM2MzdaFw00MTA0MTMxMzM2MzdaMHYxCzAJBgNVBAYTAklOMRMwEQYDVQQIEwpUYW1pbCBOYWR1MRAwDgYDVQQHEwdDaGVubmFpMQ4wDAYDVQQKEwVTbWFydDETMBEGA1UECxMKVGVjaGluaWNhbDEbMBkGA1UEAxMSQWFzaGlzaCBWaXZla2FuYW5kMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnbvJLdKZi8Nf96wNSVdJR/bh7Y0s6jv7AFQGcrR73rMTB/7EJyH9hbl4L5+U1mrfVodM+J3s/A7LD1gXnMwhsV46tV9ZijkVwT9guxXnUaWPSv2khh5tvpJ9Sj9kyUcOyelDz5iIhK5vP2ipx6ktETIeXv97iKKmHp3vJ7/gFAVsVtkIRQ+6hLo25AN+OPZE9qH8TsnCqIK+OSd+bF56/dMlhhE63Sy4ixEKZIC5b3RkUjJbuC67GS7hgq0EwoVwJ1lX99WgoLAYJq7hQm1FB3Ns+x1rkZ5+XYxt9ZCdUJbJQAFa15t9SumHDp3/yB2uaMtvju6xFTpkoaQo6cbaZwIDAQABoyEwHzAdBgNVHQ4EFgQUZnYr1WkTZPKm5/g783K/vDwrr8EwDQYJKoZIhvcNAQELBQADggEBAAx5ToAMW6nlkXwQ5S3oIeQ66TCzBJtLjHQ>IG6eWNkmNZYXuEj14nqWrSM+AniDcW3U/NwROXOERZfvtBiiwuy0Oc8GG31VmYAd6jgdkfsXfd+96wZxqH8PRtq3m1tjXYGb9Kg1CM1oDdN5H6xtqjU24nSpQEWWs6THuWHA1LEsAnnO0JM3lm0ltBOuIGJtWBd5S6tHMgi4U+m1z/oJAW0HAyWwbuwy7/YP1uEKlEEM669bUYG6iQ4dE3cIB5guZF2qMjwPKscW9bRjoviTgJUGmmVRdpd1Dk/OOZFUEK4A+ii5c7SLW2e//QoN3WV30zNHJArCvFfTGRbeZpwOl4Z4=] 04-20 22:32:54.500 28741-28741/com.aashish.smart E/SafetyNetHelper: invalid apkCertificateDigest, response = [PHKalK4AF5EmDbPL5eBQS9EZJVPkgp06cr64rVQ7B7w=] 04-20 22:32:54.657 28741-4205/com.aashish.smart E/AndroidDeviceVerifier: JWS メッセージの検証の問題:IG6eWNkmNZYXuEj14nqWrSM+AniDcW3U/NwROXOERZfvtBiiwuy0Oc8GG31VmYAd6jgdkfsXfd+96wZxqH8PRtq3m1tjXYGb9Kg1CM1oDdN5H6xtqjU24nSpQEWWs6THuWHA1LEsAnnO0JM3lm0ltBOuIGJtWBd5S6tHMgi4U+m1z/oJAW0HAyWwbuwy7/YP1uEKlEEM669bUYG6iQ4dE3cIB5guZF2qMjwPKscW9bRjoviTgJUGmmVRdpd1Dk/OOZFUEK4A+ii5c7SLW2e//QoN3WV30zNHJArCvFfTGRbeZpwOl4Z4=] 04-20 22:32:54.500 28741-28741/com.aashish.smart E/SafetyNetHelper: invalid apkCertificateDigest, response = [PHKalK4AF5EmDbPL5eBQS9EZJVPkgp06cr64rVQ7B7w =] 04-20 22:32:54.657 28741-4205/com.aashish.smart E/AndroidDeviceVerifier: JWS メッセージの検証の問題:IG6eWNkmNZYXuEj14nqWrSM+AniDcW3U/NwROXOERZfvtBiiwuy0Oc8GG31VmYAd6jgdkfsXfd+96wZxqH8PRtq3m1tjXYGb9Kg1CM1oDdN5H6xtqjU24nSpQEWWs6THuWHA1LEsAnnO0JM3lm0ltBOuIGJtWBd5S6tHMgi4U+m1z/oJAW0HAyWwbuwy7/YP1uEKlEEM669bUYG6iQ4dE3cIB5guZF2qMjwPKscW9bRjoviTgJUGmmVRdpd1Dk/OOZFUEK4A+ii5c7SLW2e//QoN3WV30zNHJArCvFfTGRbeZpwOl4Z4=] 04-20 22:32:54.500 28741-28741/com.aashish.smart E/SafetyNetHelper: invalid apkCertificateDigest, response = [PHKalK4AF5EmDbPL5eBQS9EZJVPkgp06cr64rVQ7B7w =] 04-20 22:32:54.657 28741-4205/com.aashish.smart E/AndroidDeviceVerifier: JWS メッセージの検証の問題:応答 = [PHKalK4AF5EmDbPL5eBQS9EZJVPkgp06cr64rVQ7B7w=] 04-20 22:32:54.657 28741-4205/com.aashish.smart E/AndroidDeviceVerifier: JWS メッセージの検証の問題:応答 = [PHKalK4AF5EmDbPL5eBQS9EZJVPkgp06cr64rVQ7B7w=] 04-20 22:32:54.657 28741-4205/com.aashish.smart E/AndroidDeviceVerifier: JWS メッセージの検証の問題:https://www.googleapis.com/androidcheck/v1/attestations/verify?key=A...................................... .......0 java.io.FileNotFoundException: https://www.googleapis.com/androidcheck/v1/attestations/verify?key=A ....... ......................0 com.android.okhttp.internal.huc.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:238) で com.android.okhttp.internal.huc.DelegatingHttpsURLConnection.getInputStream(DelegatingHttpsURLConnection.java:210) で com.android.okhttp.internal .huc.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java) com.aashish.smart.AndroidDeviceVerifier$AndroidDeviceVerifierTask.doInBackground(AndroidDeviceVerifier.java:113) com.aashish.smart.AndroidDeviceVerifier$AndroidDeviceVerifierTask.doInBackground(AndroidDeviceVerifier.java:82) で android.os.AsyncTask$2.call(AsyncTask.java:295) で java.util.concurrent.FutureTask.run(FutureTask.java:237) で android.os. AsyncTask$SerialExecutor$1.run(AsyncTask.java:234) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588) java.lang.Thread.run(Thread.java:818) で
完全なログ: pastebin(dot)com/YXkS7NgW
誰かが私が見つけられないエラーを見つけるのを手伝ってくれますか? または、セーフティネットAPIに取り組むための他のチュートリアルはありますか
android - SafetyNet API、クライアントではなくサーバーからノンスを取得
私はこのライブラリを使用しています:
https://github.com/scottyab/safetynethelper
Android 開発者サイトとリポジトリのドキュメントを読みました。すべて正常に動作しますが、何かがはっきりしません。アプリ自体でナンスを作成するよりも、サーバーからナンスを取得する方が安全であることが示されています。また、SafetyNet API からの応答をサーバーに渡す方がよい理由
android - Android と SafetyNet を使用して、API への呼び出しが自分のアプリからのみ行われるようにする
私の Android アプリは、バックエンドに対していくつかの REST 呼び出しを行います。私のアプリだけがエンドポイントを呼び出すことが承認されていることを願っています。
これをアーカイブするために Google の SafetyNet を使用するつもりです。
私の質問は: . attest() にレート制限はありますか? 私のアプリは、2秒または3秒ごとにいくつかのPOSTリクエストを作成します
上記のロジックはこの規模で機能しますか? エンドポイントに投稿されたデータが、自分のアプリのみから送信されたものであることを保証できる他の方法はありますか?
android - SafetyNet: パッケージ名は常に null を返す
Google SafetyNetサンプルとSafetyNet Helperに基づいてSafetyNet APIを実装しています
これが私の作業コードです。最初の部分は、私がSafetyNetSampleFragmentで使用した処理コードです。
以下は、私がSafetyNetResponseSafetyNetResponse
からコピーしたモデルです。
アクティビティ内で次のコード行を呼び出すことにより、上記の実行可能なコードを簡単に呼び出すことができます。
結果は次のとおりです。
タイムスタンプが正しく解析されたため。セーフティネットの応答が正常に得られたと思います。apkPackageName
しかし、私が示したように常に null と他のフィールドが空である理由はわかりません。私を助けてください。
android - Google SafetyNet の認証に 5 秒以上かかるのはなぜですか?
これは他の誰かが経験したことなのかどうか疑問に思っています。互換性チェックを要求している場合、私のアプリでは 1 秒未満 (~750ms) しかかからないようです。残念ながら、私は他のアプリケーションによって統合されたライブラリも維持していますが、彼らは SafetyNet の呼び出しに 5 ~ 10 秒かかる可能性があると不満を漏らしています。なぜこれが違うのかわかりません。同じライブラリ内の同じ呼び出しに非常に時間がかかる原因となっているのは、アプリ固有の何かでしょうか? これをデバッグするときに検討すべきヒントや事柄はありますか?