web-dev-qa-db-ja.com

Instagram Private APIをリバースエンジニアリングする機能について

Android app: http://mokhdzanifaeq.github.io/extracting-instagram- signature-key /

次に、InstagramのプライベートAPIを利用する目的で使用できます。 https://Gist.github.com/will3942/8113903#file-app-rb

これからいくつかの個人的な質問が生じました:

  1. これを防ぐために、Instagramのセキュリティエンジニアが他にできることはありますか?私は彼らが非常に才能のあるソフトウェアエンジニアであると思いますが、この場合、Android .apk、人々が秘密鍵を発見することを常に本質的に簡単/常に可能にしますか?
  2. Webアプリは本質的にモバイルアプリよりも安全ですか? Instagram Webアプリがモバイルアプリと同じであるとしましょう。誰かがWebアプリの秘密キーを抽出することはまだ可能ですか?または、ユーザーがWebアプリの完全なソースコードを所有することは決してないため、不可能ではないにしても、これははるかに困難です。
1
metersk
  1. はい、一度アプリケーションをリリースすると、それを使って何をするかを制御できなくなります。コードを難読化または前処理して、物事を見つけにくくすることができますが、定義上、実行可能で、基盤となるプロセッサからアクセスできる必要があります。十分な時間と労力が与えられれば、誰かがアプリケーションに埋め込まれているものをいつでも見つけることができます。これは、モバイルアプリ、デスクトップアプリ、コンソールアプリなど、あらゆる種類のアプリケーションに適用されます。他のすべてが失敗した場合、真に決心した攻撃者がプロセッサをエミュレートし、何が起こっているかをダンプすることができます。

  2. いいえ、しかし攻撃方法は変わります。 Instagramの例では、Webアプリがある場合、通信は暗号化されたチャネルを介して送信できますが、通信のソースを制御できない場合があります。正規のアプリとサードパーティのアプリを区別するのは難しいでしょう。一部のビジネスでは、これは重要です(たとえば、公式アプリに広告を表示する場合)。一方、モバイルアプリでは、サーバーとクライアントが相互に確認する証明書の確認などを提供できます。この場合、アプリを更新していないユーザーを遮断する可能性がありますが、サーバー側で侵害された証明書を削除することが可能です。

    最初のケースでは、攻撃はバックエンドシステムへの有効な呼び出しを特定し、それを悪用しようとすることに集中します。 2番目のケースでは、攻撃は最初に証明書を抽出しようとしますが、そのプロセスではおそらく呼び出しを見つけます。

1
Matthew