アプリ内購入のハッキングに対する保護。 パート2



最近、 サーバーでの購入の検証でアプリケーションを保護する方法について話しました 。 投稿の公開から数日後、この種の保護は回避することがわかった。 しかし、良いニュースがあります。私たちは今、弱点が何であるかを知っており、これらの点を強化することができます。



何が悪かった?



Apple VerificationController



私が最初の投稿を書いたとき、私はAppleが提案し保護方法について冷静に語ったことを認めます。 同様に、彼らはまだ彼らのサーバーでチェックを行っているので、彼らの保護は脆弱です。 したがって、このサーバーを欺くことができる場合、それを使用したすべてのアプリケーションの保護が破られます。 妥当に聞こえますが、よく見ると、このようなシナリオの可能性はそれほど高くありません。VerificationControllerはサーバーにリクエストを送信して結果を確認するだけではないからです。



VerificationControllerに含まれるチェックは次のとおりです。



GithubにはすでにValidationController-aのわずかに吹き替えられたバージョンがあります: github.com/evands/iap_validation 標準のものとは異なり、base64エンコード/デコードが既に実装されており、有料機能を有効にできる便利なデリゲートが作成されています。



他にできること



上記が十分ではないようで、独自の何かを追加してアプリケーションを保護したい場合は、このトピックに関する良い本をお勧めします:iOSアプリケーションのハッキングとセキュリティ保護:データの盗用、ソフトウェアのハイジャック、およびそれを防ぐ方法 ただし、夢中にならないでください。既存の保護に弱いリンクを追加して、それを悪化させることができます。



バトルチェック



数日前、ストアはアプリケーションのバージョン2.2.1をリリースしましたが、いくつかの統計があります。 ジェイルブレイクされていないデバイスをハッキングする現在の方法は、チェックフィールドがSKPaymentフィールドに対応し、焦げるというチェックに達します。 手のひらをオフにするチェックは、まったく別の購入によるものです。 私にとって嬉しい驚きは、ジェイルブレイクされたデバイスのジェイルブレイカーも購入できないことでした。代わりに、検証時にアプリケーションがクラッシュします。 そしてこれは、保護が機能し、うまく機能している間、それを破るのにどれくらい時間がかかるかを見てみましょう。 :)



All Articles