web-dev-qa-db-ja.com

モバイルアプリは、安全と見なされながら、このような長いセッションをどのように維持しますか?

今日、数か月ぶりにAmazon iOSアプリを開いたところ、再認証を求められることなく、チェックアウト(アドレスの表示と更新が可能)を直接実行できました。安全でありながら、PCIに準拠しながら、それはどのようにして可能ですか?

9
Andrew Schmitt

心配されているセッションの乗っ取りと不正な注文の攻撃から保護するのに役立つ2つの特定のセキュリティ対策があります。

  1. 認証トークンはデバイスに関連付けることができます。これは、モバイルアプリが(モバイル)アカウントとデバイス固有のID(UDID)に簡単にアクセスできるため、認証トークンが間違ったデバイスに使用された場合、または間違ったコンテキスト。実際のサービスはHTTP呼び出し(悪意のあるユーザーによって "なりすまし"される可能性があります)を介して行われるため、これは厳密には絶対的な制限ではありませんが、盗まれた認証トークンを実際に利用するには、次のようなものが必要です:認証トークン、デバイスのUDID(および潜在的にはより多くの識別情報)、および注文を行うためにAmazonが使用するAPI呼び出しの詳細な知識。リスクは間違いなく低いです。
  2. もう1つの保護策は、Amazonがアドレスの変更を許可するだけではないことです。誰かがあなたのアカウントへのアクセス権を得たとしても、彼らは自分自身に注文することはできません。 Amazonが長い間実施してきた一般的なセキュリティ対策は、注文が新しい住所に送信された場合、保存されているクレジットカード番号を再入力する必要があることです。これにより、他のユーザーのアカウントにアクセスした場合、自分のものを送信することができなくなります。もちろん、クレジットカード情報にもアクセスできればこれを回避できますが、ご存じのように、その時点では、悪意のあるユーザーがアカウントを使用して不正な注文をすることはありません。

つまり、これを実行するためのAmazonへの実際のリスクは非常に低く、ユーザーを再度ログインさせることによる潜在的な収益の損失は(私が確信している)はるかに高いため、サーバーで長時間のセッションを持続させることができます。 。

ここで問題となっているのは、単なる不正な注文だけではないことを指摘しておく価値があります。これは読む価値があります:

https://www.wired.com/2012/08/Apple-Amazon-mat-h​​onan-hacking/

6
Conor Mancone

セキュリティは二元的な命題ではありません。つまり、物事は「安全」または「安全」ではありませんが、セキュリティスペクトルのどこかに分類されます。

したがって、Amazonの誰かは、モバイルセッションを数か月間存続させ、チェックアウトの再プロンプトを必要としないことが安全であると判断しました十分。彼らの観点から見ると、これはおそらく、ユーザーに再認証を強制する(非常に金銭的な)コストと、ユーザーが盗んだ電話が不正に注文することによる(非常に金銭的な)コストとのバランスです。私はまた、疑わしい注文にフラグを立てる追加の詐欺検出が行われており、盗まれたAmazon許可電話のコストを削減していると思います。

PCI-DSSの詳細についてはあまり詳しくありませんが、この状況に当てはまるような規定はないと思います。

セキュリティは相対的な概念です。バランスは、多くの場合、利便性と脅威知覚の間のどこかにあります(どちらも主観的な領域です!)。

一般に、認証されたセッションを長期間維持するモバイルアプリは、それらのセッションを頻繁に期限切れにした場合、「可能な限り安全」ではないと思います。

ただし、セッションの有効期限が次の脅威に対する保護であるという2つの主要な脅威を調べると役立ちます。

  1. デバイスシナリオの特定の(すべてではない)共有使用
  2. セッションハイジャック

モバイルデバイスは主に個人用デバイスであり、モバイルアプリは、ラップトップ/デスクトップシステムのブラウザタブよりも脅威にさらされる可能性が低く、他のユーザーが(より高い確率で)システムを使用し、履歴からタブを開いて、ログインアカウントを見つけることができます。 。

会話ごとのナンスやクライアントIP変更検出(論争)の使用など、セッションハイジャックに対する他の保護が存在します。特定のアプリがこれに対する保護を使用するかどうかは重要ですが、詳細が欠けていることがよくあります。 :)

1
Sas3