In-App Purchase Receipt Validation on iOS メモ

In-App Purchase Receipt Validation on iOS メモ

脆弱性は、IOS5.1およびiOSデバイスから直接App Storeでサーバに接続することにより、アプリ内購入の領収書を検証する
前に関連が発見されました。
攻撃者によって制御されるサーバーにこれらの要求をリダイレクトするDNSテーブルを変更することができます。
攻撃者によって制御され、ユーザがデバイスにインストールされている証明機関を使用して、攻撃者が不正にApp Storeのサーバー
として攻撃者のサーバーを識別するSSL証明書を発行することができます。
領収書が有効であるかのように、この不正なサーバが無効な領収書を検証するために要求されたとき、それは応答します。
iOSの6は、この脆弱性に対処します。あなたのアプリは以下で説明するベストプラクティスを以下の場合、それはこの攻撃の
影響を受けません。

私のアプリは、私自身のサーバーに接続することによって、検証を実行します。私はどのように影響を与えたのでしょうか?

あなたのアプリケーションがベストプラクティスに従うと、サーバーに領収書を送信し、サーバがApp Storeでサーバとの検証
を実行することによって、領収書の検証を実行する場合は、App Storeのサーバーに接続できませんので、あなたのアプリケーシ
ョンは、この攻撃の影響を受けません。
あなたのサーバーへの接続時にしかし、それは同様の攻撃に脆弱である可能性があります。
あなたのアプリケーションが実際にサーバーに接続し、サーバーが実際にApp Storeでサーバに接続されていることをされていることを確認
するための適切な暗号技術を使用しています。
あなたは、出発点として、このドキュメントに記載されて緩和戦略を使用することができます。詳細については、セキュリティの
概要を参照してください。

私のアプリは、直接App Storeのサーバーに接続することによって、検証を実行します。私はどのように影響を与えたのでしょうか?

検証の領収書のベストプラクティスは、サーバーへの領収書を送信し、サーバがApp Storeのサーバーでの検証を実行することです。
あなたのアプリケーションは直接デバイスからApp Storeのサーバーに接続する場合、あなたのアプリケーションがこの脆弱性による
影響を受ける可能性があります。次のようにこの脆弱性に対処することができます。
・App Storeのサーバーへの接続に使用されるSSL証明書がEV証明書であることを確認してください。
・検証から返される情報はSKPaymentオブジェクト内の情報と一致していることを確認してください。
・領収書は、有効な署名を持っていることを確認してください。
・新しいトランザクションがユニークなトランザクションIDを持つことを確認してください。

どのように私はすでに完了したトランザクションを検証することができますか?

あなたが領収書を保存した場合、消耗品は、デバイス、あるいは、あなたのサーバのいずれかで、あなたの緩和戦略を実装した後に
領収書を検証します。
あなたが領収書を保存していない場合は、これらの過去の取引を検証することはできません。あなたはどんな行動を取るべきではありません。
Nonconsumablesリストア操作を実行し、新しい領収書を検証し、現在の領収書を置いておきます。
このプロセス中にデバイス上にすでに存在する再ダウンロードコンテンツを避けることができます。

コードリスト

このドキュメントのコンパニオンファイル内のコードリストは、本書に記載されて緩和戦略の実装のアプローチを示しています。
Note このリストは、パブリックAPIではありませんシンボルkSecTrustInfoExtendedValidationKeyとSecTrustCopyInfoを
使用しています。
あなたのアプリケーションは、この特定の目的のためにそれらを使用する許可されています。
プロジェクトにこのコードを追加するには:
1.このドキュメントのコンパニオンファイルをダウンロードして解凍します。 (リンクはこのページの右上隅にあります)。
2.XcodeでプロジェクトにVerificationController.hとVerificationController.mファイルを追加し、適切なターゲット
に追加します。
3.Securityフレームワークと照らし合わせてプロジェクトをリンクします。
4.base64でエンコーダ、base64でデコーダ、および検証が成功したときに実行するアクションを提供しています。
スポンサーサイト
姉妹サイトだよ! よかったらみてね!

コメントの投稿

非公開コメント

twitter
twitter アカウント @drum_kuroneko 気軽にフォローしてください。
誰でも簡単に開発ができます!!
人気ナンバー1
自己紹介

yuutyan0205

プロガー:yuutyan0205
きままな自由人です。

たまにプログラミングを行っています。

仕事ください・・・

開発者アプリ一覧 気になったらダウンロードしてください。
開発環境おすすめ
カレンダー
06 | 2017/07 | 08
- - - - - - 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 - - - - -
最新記事
月別アーカイブ
カテゴリ
アクセスランキング
[ジャンルランキング]
コンピュータ
962位
アクセスランキングを見る>>

[サブジャンルランキング]
マック
55位
アクセスランキングを見る>>
訪問者数
現在の訪問者数
現在の閲覧者数:
全記事表示リンク

全ての記事を表示する

相互リンク希望の方とご質問ある方ご連絡ください。

名前:
メール:
件名:
本文: