5

Xamarin の Mono for Android を使用して Android アプリを開発しています。現在、Google Play API を使用してアプリ内購入機能を追加する作業を行っています。そのためには、アプリ内から公開ライセンス キーを Google に送信する必要があります。この問題に関して、Google は次のことを推奨しています。

セキュリティに関する推奨事項: Google Play が提供する正確な公開ライセンス キー文字列の値をハードコーディングしないことを強くお勧めします。代わりに、コンストラクターに渡す前に、部分文字列から実行時に公開ライセンス キー文字列全体を作成するか、暗号化されたストアから取得することができます。このアプローチにより、悪意のあるサードパーティが APK ファイル内の公開ライセンス キー文字列を変更することがより困難になります。

暗号化、ハッキング/クラッキング、またはその他のソフトウェア セキュリティの側面を扱ったことがないため、Google のアドバイスをどのように実装すればよいかわかりません。私の質問は、セキュリティの専門家でなくても、Mono for Android で作成された Android APK の文字列を適切に保護するにはどうすればよいですか?

4

1 に答える 1

5

大胆すぎないように聞こえるかもしれませんが、彼らの提案を無視しても問題ないと思います。彼らが提案していることのセキュリティ上の利点は、せいぜい最小限です。

より詳細な議論については、これを読んでください:アプリ内課金を行うときに Google Play 公開鍵を保護する方法

真実は、そこに記載されている方法のどれも完全に安全ではないということです. 誰かがあなたの公開鍵を解明しようと決心した場合、彼らはそうするでしょう。何をしても公開鍵は ctor に渡されるため、悪意のあるユーザーはこの時点で公開鍵をいつでも調べることができます。彼らが提案しているすべての「ゲーム」は、これを少し難しくしているだけですが、決して不可能ではありません.

あなたの最善の策は、これが実際に何であるかを受け入れることだと思います。この鍵は何らかの理由で公開されており、簡単に侵害される可能性があるという事実を受け入れる必要があります。他の誰もがこれを知っているので、夜はぐっすり眠れるので、そうしない理由はありません:)

本当に夜眠れず、何かをしたい場合.. 最初の 2 文字を入れ替えてキーをコードに配置します。次に、実行時に、キーを使用する前に 2 つの文字を元に戻します。これは、ブルートフォース自動攻撃から身を守るのに十分なはずです..あなたが何もできないインテリジェントな攻撃.

編集:

コードを保護するための業界標準の方法を探している場合は、商用の難読化ツールを使用してください。これらのツールは、この目的のために設計されています。いくつかの例は、Android の Mono、コードの難読化です。文字列の暗号化を含む完全な機能を備えた商用バージョンを使用してください。

于 2013-07-30T23:45:14.673 に答える