SDKシグネチャー

AdjustのSDKシグネチャーは、スプーフィングを防止するソリューションです。このライブラリは、独自のマングリングアルゴリズムを使用してAdjust SDKからAdjustのサーバーへの接続を強化し、暗号化とセキュリティチェックにより完全性を保証します。

SDKシグネチャーシグネチャーライブラリは、追加のコードを必要とせずに簡単に実装でき、Adjust SDKとシームレスに動作するように設計されています。

ソリューションの仕組み

重要:

SDKシグネチャーライブラリは、不正防止エンジンではありません。 アプリ内のバグによる悪用、元のアプリ外のリソースに対する変更、アプリのロジックエラーなど、ユーザーレベルの不正には対応できません。

Adjust SDKがAdjustのサーバーに情報を送信する際、その情報はWebトラフィックの業界標準暗号化プロトコルであるTLSトランスポートレイヤーセキュリティを使用して暗号化されます。TLSは、不正業者が情報を読み取ることを防ぎますが、不正なインストールやイベントデータがアプリのエンドポイントに送信されるのをを防ぐことはできません。

SDKシグネチャーライブラリは、独自のマングリング(名前修飾)アルゴリズムを使用してAdjustのサーバーへのSDK接続を保護し、Adjustのサーバーが第三者から送信された情報を拒否するようにします。サーバーは全てのリクエストをチェックし、有効なシグネチャーがあることを確認します。 署名されていない情報​ または 無効な署名​ は全て拒否され、有効な情報のみを受け取ることができます。

開始方法

重要:

SDKシグネチャーライブラリは、SDK v5にはデフォルトでバンドルされています。インストールが必要なのはSDK v4のみです。

SDKシグネチャーライブラリは、Android、iOS、およびUnityで利用可能です。ライブラリを実装する方法:

  1. (SDK v4のみ):お使いのプラットフォームのSDK SignatureライブラリをGitHubからダウンロードします
  2. お使いのプラットフォームの連携ガイドを参照します。
ヒント:

Flutter、Cordova、またはReact Nativeを使用している場合は、iOSとAndroidの手順に従って、各プラットフォームにSDKシグネチャーライブラリをサポートしてください。他のマルチプラットフォームフレームワークはサポートされていません。

  1. 設定をテストし、連携が機能することを確認します。

証明書のフィンガープリントを管理

注意:

証明書フィンガープリントは、 Android​ をターゲットとするアプリにのみ必要となります。

アプリにSDKシグネチャーライブラリを実装すると、Adjust SDKからAdjustに送信される全てのリクエストが署名されます。また、Adjust SDKは、署名証明書のフィンガープリントなどの関連情報をAdjustのサーバーに送信します。

証明書のフィンガープリントを取得するには、プラットフォームごとのドキュメントに従ってください。

重要:

署名証明書のフィンガープリントを許可リストに追加する必要があります。フィンガープリントが許可リストに追加されていない場合、アプリからのトラフィックがスプーフィングされる可能性があります。

Adjustでシグネチャーを追加

証明書のフィンガープリントを取得したら、以下を実行して許可リスト(ホワイトリスト)に追加してください。

  1. AppViewでアプリを選択し、アプリの詳細画面を開きます。
  2. プロテクション(Protection)​ タブを選択します。
  3. 疑わしいインストール(Suspicious install)​ セクションで、 編集(Edit)​ ボタン()を選択します。
  4. Androidフィンガープリント(Android finterprinting)​ セクションで、 新規フィンガープリント(New fingerprint)​ を選択します。
  5. 表示されたテキストボックスにフィンガープリントをペーストします。
  6. Add​ を選択します。
  7. 許可リストに追加したい全てのフィンガープリントに対してこの手順を繰り返します。

これで、フィンガープリントがアプリで許可リストに登録されました。

注意:

署名証明書を更新した場合は、Adjust側で証明書のフィンガープリントを更新する必要があります。

不要になったフィンガープリントは、無効化することができます。

  1. AppViewでアプリを選択し、アプリの詳細画面を開きます。
  2. プロテクション(Protection)​ タブを選択します。
  3. 疑わしいインストール(Suspicious install)​ セクションで、 編集(Edit)​ ボタン()を選択します。
  4. Androidフィンガープリント​ セクションで、無効化するフィンガープリントを見つけます。
  5. 無効化(DEACTIVATE)​ を選択します。

無効化されたフィンガープリントを含むトラフィックは、疑わしいデータとして拒否されます。

Automate APIを使用してシグネチャーを追加

Automate APIを使用してアプリを管理する場合、 /appエンドポイントを使用してAndroidシグネチャーを設定できます。 Automate APIによるAndroid署名の設定手順に従い、Automate APIを使用してアプリケーションに署名を追加します。このメソッドを使用して追加されたシグネチャーは、許可リストに自動的に追加されます。

シグネチャーの有効化

アプリにSDKシグネチャーライブラリを実装したら、Adjustでシグネチャーを使用するように設定してください。シグネチャーが有効化されていない場合、全てのSDKリクエストは検証なしで受理されます。

Adjustは、シグネチャーの検証を自動的に有効化しません。これにより、ユーザーがアプリのアップデートされたバージョンをダウンロードして開くまでの時間を確保し、インストールを記録することができます。

Adjustでは、SDKシグネチャーを有効化する前に約2期間分のアトリビューション期間の間待っていただくことを推奨しています。

例:Adjustのデフォルトのアトリビューション期間である7日間の場合は、14日間が経過した後にSDKシグネチャーを有効化してください。これにより、以前にアプリをダウンロード済みで、アプリを開いたばかりのユーザーのデバイスにシグネチャーが追加されていなくても、インストールとして計上されます。

シグネチャーを有効化するには、以下の手順に従ってください。

  1. AppViewでアプリを選択し、アプリの詳細画面を開きます。
  2. プロテクション(Protection)​ タブを選択します。
  3. 疑わしいインストール(Suspicious install)​ セクションで、 編集(Edit)​ ボタン()を選択します。
  4. 疑わしいインストールを拒否する​ ことで、シグネチャーの検証を強化します。

シークレットIDの管理

シークレットID​ は、特定のプラットフォーム上にある特定のシグネチャーライブラリの特定のバージョンを使用して、アプリを一意に識別するために使用される識別子です。 シークレットIDは、署名されたリクエストがAdjust SDKによって送信されるとAdjustによって生成されます。

どのシークレットIDが考慮され、どのシークレットIDが破棄されるかを管理できます。デフォルトでは、全てのシークレットIDが 有効​ になっています。SDKシグネチャーの検証が有効化されている間にシークレットIDを非アクティブに設定すると、対応するシグネチャーライブラリのバージョンとプラットフォームを持つアプリから送信された全てのリクエストが拒否されます。

Adjustでは、以下の場合にシークレットIDを無効化することをお勧めします。

  • インストールレポートに役立たなくなった。
  • アプリの新バージョンを全てのアプリのプラットフォームとストアでリリースした。

シークレットIDを無効化は、即時反映されます。 SDKシグネチャーが有効化されると、無効化されたシークレットIDとともに発生したアプリのインストールは全て却下され、 Untrusted Devices​ の下に分類されます。 Adjustは、これらの拒否された端末によるセッションおよびイベントの計測を継続しますが、この情報は、 Adjustの不正防止機能を使用している場合のみ、ダッシュボードのレポートに表示されます。

シークレットIDを管理する方法

  1. AppViewでアプリを選択し、アプリの詳細画面を開きます。
  2. プロテクション(Protection)​ タブを選択します。
  3. 疑わしいインストール(Suspicious install)​ セクションで、 編集(Edit)​ ボタン()を選択します。
  4. シークレット(Secrets)​ セクションで、以下のいずれかのアクションを実行します:
    • 選択したシークレットIDを 無効化​ するには、無効化を選択します。
    • 編集(Edit)​ を選択して、選択したシークレットIDの名前を変更します。

無効化されたIDを表示するには、無効化された シークレットIDを表示(Show deactivated secret IDs)​ を切り替える必要があります。