web-dev-qa-db-ja.com

AndroidおよびiOSでPhoneGapによって提供されるデバイスIDはどの程度信頼できますか?

ユーザーが(モバイルアプリを使用して)アカウントにモバイルデバイスを追加できるWebアプリケーションがあります。

各デバイスは、その [〜#〜] uuid [〜#〜] によって一意に参照されます。モバイルクライアントはPhoneGapを使用して開発されているため、 device.uuid この目的のための変数。 PhoneGapで記述されたアプリは多くのシステムで実行できますが、私のアプリケーションはAndroidおよびiOSのみを対象としています。

質問:私のシステム(サーバーとモバイルクライアントの両方)が検出したときに、新しいユーザーアカウント(新しいログインとパス)がUUIDがすでに存在するデバイスを追加しようとする場合の対応データベースにあり、現在別のユーザーアカウントにバインドされていますか?

(今日の世界では-iOSとAndroidでは)特定のデバイスのUUIDを想定できますか?

  • 疑いもなく一意です(2つのデバイスが同じUUIDを持つことはできません)。
  • 安全です(変更またはなりすましはできません)。

言い換えると、上記の状況で、サービスは特定のデバイス(UUID)を別のユーザーアカウントに自動的に「再バインド」できますか?同じUUIDを持つデバイスが2つなく、UUIDをスプーフィングする簡単な方法がないと思いますか?

または、そのような状況でいくつかの「より安全な」ロジックを導入する必要がありますか?ある種のデバイスのように(最初のアカウントから)登録を解除し、(新しいアカウントで)再登録しますか?また、同じUUIDが別のユーザーアカウントで既に登録されている場合、ユーザー(ユーザーアカウント)が新しいデバイスを追加/登録することを禁止しますか?

私は否定しません、私はセキュリティ問題の素人です。したがって、UUIDは一意であり、上記の状況で上記の自動デバイス(UUID)再登録を導入するのに十分なスプーフィング耐性があると想定します。

10
trejder

いいえ、クライアントから報告するときにUUIDが偽装される可能性があります。それがデバイスのアイデンティティについて何かを証明していると仮定しないでください。また、最後に見たのと同じデバイスであると仮定しないでください。本当にデバイスを検証する必要がある場合、最善の策は、デバイスに保存できる証明書を作成し、それを見るときにその証明書を要求することです。

それらが真に報告している場合、それらは普遍的に一意である必要があります(UUの意味)が、多くの場合(ほとんどではないにしても)は、選択した一意でない値を報告するように強制することは完全に可能です。 AndroidのApp Storeで入手できるシンプルなアプリケーションでも実行できます。

6
AJ Henderson

同じUUIDを持つ2つのデバイスを持つことが可能です。同じアプリケーション(phonegapで作成)を使用して、いくつかのテレビスティック(nandroidバックアップ)のクローンを作成しました。コード内で、デバイスはUUIDを提供するように求められます。サーバーとのWebサービスcommのおかげで、すべてのUUIDが同じであることを証明しました。

1
Puma