web-dev-qa-db-ja.com

Android REST基本認証資格情報をリバースエンジニアリングに対して保護する方法は?

私の知る限り、基本的なREST API認証では、Webサービスリソースにアクセスするためのユーザー名とパスワードがアプリのコードに組み込まれています。一方、 seems Java REST認証情報を含むコードを取得するために、アプリの.apkファイルをリバースエンジニアリングすることは難しくありません。

それで、リバースエンジニアリングの暴露に対して資格情報を保護する方法はあるのでしょうか。

1
Karlom

ベストプラクティスは、アクセス資格情報をプログラム内に保存しないことです。アプリには、APIにアクセスするための特定の資格情報が含まれているとは限りません(正しく設計されていない限り)。

コードに資格情報を追加すると、一般的な攻撃者を阻止する可能性がありますが、パッケージを開いて詳細を抽出できる攻撃者を阻止することはできません。数人がクラックできるものは脆弱であると考えられているため、実装する正しい方法は次のとおりです。

  1. 資格情報をAPPに追加しない
  2. APPがインストールされたら、資格情報を生成してサーバーに登録します。 (ユーザー名とパスワードであるか、クライアント側の証明書である可能性があります)
  3. これらの資格情報を使用してアクセストークンを取得します。
  4. アクセストークンを使用してAPIにアクセスする

登録プロセスを効率的に制御でき、アクセストークンに基づいてAPIの安全な部分へのアクセスを許可できるため、SSL/TLSを使用する場合、実装は十分に安全でなければなりません。

2
BMC