ルート化された携帯電話やロック解除された携帯電話などの安全でないデバイスでは、アプリケーションの実行には通常、悪意のあるウイルスや***ソフトウェアがルート権限を使用してウイルスを埋め込み、ユーザーデバイス情報を改ざんし、システムを破壊するなど、特定のセキュリティリスクが伴います。したがって、アプリケーションのセキュリティ保護で適切な作業を行い、安全でないデバイスの環境でセキュリティリスクを回避する方法は、開発者が考慮しなければならない要素になっています。この点で、Huaweiはセキュリティテストサービスを開始し、システム整合性テスト(SysIntegrity API)を提供します。これにより、デバイスがルート化されているかロック解除されているかなど、アプリケーションが実行されているデバイス環境が安全かどうかを検出できます。
1.サービス紹介
Huaweiシステムの整合性検出には、次の機能が含まれています。
-
信頼できる実行環境TEEに基づいて、システム整合性検出結果が提供されます。デバイスが安全に起動されると、システム整合性がTEEで高い信頼性で評価され、システム整合性が動的に評価されます。
- システム整合性テストの結果は安全で信頼性があります。システム整合性テストの結果はデジタル証明書によって署名されており、テスト結果を改ざんすることはできません。
そのビジネスフローチャートを以下に示します。
(1)アプリケーションはHMS Core SDKを統合して、SafetyDetectサービスを呼び出します。
(2)TSMS(Trusted Security Management Service)サーバー署名検出結果サーバーを要求します。
(3)アプリケーションが独自のサービステスト結果を要求します。
- - 終わり
2、シーンケース紹介
現在、Huaweiシステムの整合性検出を統合するアプリは、金融、エンターテインメント、便利な生活、ニュースの閲覧など、多くの分野にあります。
金融アプリケーションはHuaweiSysIntegrityを統合し、トランザクションのセキュリティを効果的に向上させることができます。たとえば、ユーザーがクレジットカードセキュリティコード(CVC)を入力すると、携帯電話のシステム環境が安全かどうかを確認できます。モバイルデバイスがシステムの整合性チェックと検証に失敗した場合、アプリケーションはトランザクションセキュリティを保護するために使用することを許可されません。
SysIntegrityと統合されたライフおよびニュース読み取りアプリケーションは、******を効果的に防止し、アプリ内支払いおよびその他のアクティビティの安全性を確保できます。
ビデオエンターテインメントアプリケーションは、コンテンツの著作権を保護するのに役立つSysIntegrityを統合します。ユーザーがオフライン再生ビデオを登録、視聴、ダウンロードすると、コンテンツプロバイダーによって承認されたデバイスでユーザーがストリーミングとビデオ再生を完了できるようになります。
3、コードを開発する
1 AppGalleryConnectで関連情報を構成します
アプリケーションを開発する前に、AppGalleryConnectで関連情報を構成する必要があります。
特定の手順:https://developer.huawei.com/consumer/cn/doc/HMSCore-Guides-V5/config-agc-0000001050416303-V5
2 HMS CoreSDKのMavenウェアハウスアドレスを構成します
2.1 AndroidStudioプロジェクトレベルの「build.gradle」ファイルを開きます
2.2 HUAWEIagcpプラグインとMavenコードベースを追加します
- allprojects->リポジトリでHMSCoreSDKのMavenリポジトリアドレスを設定します。
1. allprojects {
2. repositories {
3. google()
4. jcenter()
5. maven {url 'https://developer.huawei.com/repo/'}
6. }
7. }
- buildscript-> repositoriesでHMSCoreSDKのMavenリポジトリアドレスを構成します。
1. buildscript {
2. repositories {
3. google()
4. jcenter()
5. maven {url 'https://developer.huawei.com/repo/'}
6. }
7. }
- buildscript-> dependenciesに構成を追加します。
1. buildscript{
2. dependencies {
3. classpath 'com.huawei.agconnect:agcp:1.3.1.300'
4. }
5. }
3 SafetyDetectClientを作成し、nonce値を生成します
1. // 创建SafetyDetectClient
2. SafetyDetectClient mClient = SafetyDetect.getClient(MainActivity.this);
3. // 生成 nonce值
4. byte[] nonce = new byte[24];
5. try {
6. SecureRandom random;
7. if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) {
8. random = SecureRandom.getInstanceStrong();
9. } else {
10. random = SecureRandom.getInstance("SHA1PRNG");
11. }
12. random.nextBytes(nonce);
13. } catch (NoSuchAlgorithmException e) {
14. Log.e(TAG, e.getMessage());
15. }
4テスト結果モニターを作成します
1. // 实现OnSuccessListener接口,并从 onSuccess获取检测结果
2. protected class SysIntegrityOnSuccessListener implements OnSuccessListener<SysIntegrityResp> {
3.
4. // 获取系统完整性检测结果
5. @Override
6. public void onSuccess(SysIntegrityResp sysIntegrityResp) {
7.
8. }
9.
10 }
11. // 实现OnFailureListener接口,并从 onFailure异常详情
12. protected class SysIntegrityOnFailureListener implements OnFailureListener {
13. // 获取异常错误码已经异常详情
14. @Override
15. public void onFailure(Exception e) {
16.
17. }
18. }
5コールシステムの整合性チェック
1. // 调用系统完整性检测接口,********传入appid
2. Task task = mClient.sysIntegrity(nonce,"********");
3. task.addOnSuccessListener(new SysIntegrityOnSuccessListener()).addOnFailureListener(new SysIntegrityOnFailureListener());
6結果の検証
サーバーでの検証システムの整合性テストの結果については、DeveloperAllianceの公式Webサイトを参照してください。
実装に興味がある場合は、Githubソースリンクを参照できます。https://github.com/HMS-Core/hms-safetydetect-demo-android
開発ガイドラインの詳細については、Huawei DeveloperAllianceの公式ウェブサイトを参照してください。
Huawei Developer Alliance:https://developer.huawei.com/consumer/cn/doc/development/HMSCore-Guides/dysintegritydevelopment-0000001050156331
開発ガイダンス文書を入手する:
https://developer.huawei.com/consumer/cn/doc/development/HMSCore-Guides/introduction-0000001050156325ha_source=hms1
デモとサンプルコードをダウンロードするには、Githubにアクセスしてください。https://github.com/HMS-Core
統合の問題を解決するには、StackOverflowにアクセスしてください。
https://stackoverflow.com/questions/tagged/huawei-mobile-services?tab=Newest
元のリンク:
https://developer.huawei.com/consumer/cn/forum/topic/0201393882637910006?fid=18
作成者:夜は何でも食べる