web-dev-qa-db-ja.com

WhatsAppが特定のユーザーを識別する方法

WhatsAppは、メッセージを転送するために特定のユーザーをどのように識別しますか?

これが私がしたことです:

  1. 古いデバイスからiOSアプリをバックアップしました
  2. バックアップを新しいデバイスに復元しました
  3. 新しいデバイスでWhatsAppを開きました

そして、それはSMS新しいデバイスの検証を必要とせずに動作します。

つまり、WhatsAppは次の2つのうちの1つを実行していることがわかります。

  1. WhatsAppは確認プロセス中に電話番号をアプリ自体に埋め込みます
  2. WhatsAppは、入手した確認コードをSMS=アプリ自体に埋め込み、それをその電話番号の識別子として使用します

最初の方法は、それが本当であるとすれば愚かです。なぜなら、賢い人なら誰でもリバースエンジニアリングしてWhatsAppコードを変更し、ハッキングしたい電話番号を埋め込むことができるからです。

2番目の方法は、SMSコードをあなた以外は誰も知らないため、スマートに見えますが、これは安全ではありません。たとえば、政府や接続を持つ誰もがすべてを取得するのに問題はないからです。着信SMSすべての電話のメッセージで、そこからWhatsAppアプリをリバースエンジニアリングして、それを埋め込むこともできます。

2
Flexair Flexair

Wikipedia によると

インストール時に、自分の電話番号をユーザー名として使用してユーザーアカウントを作成します

...

2012の更新により、サーバー側でランダムなパスワードが生成されます。

...

WhatsAppは、2人のユーザー間でメッセージを交換するための「保存および転送」メカニズムに従います。ユーザーがメッセージを送信すると、メッセージはまずWhatsAppサーバーに送信され、そこにメッセージが保存されます。次に、サーバーは受信者にメッセージの受信確認を繰り返し要求します。

重要なのは、このすべてにおいてアプリが実際にテレフォニーサービスを使用していないため、従来の方法で電話番号を使用できないことです。また、アプリをインストールすると、ユーザー名が電話番号であるアカウントを作成することになります。スタック交換にサインアップしたときに、名前を選択させるのではなく、単に乱数を割り当てた場合と同様に考えてください。

SMSを介してアカウントを再確認する必要がなかった理由について、iOSのバックアップでアプリのデータと構成もバックアップされている場合、アプリにはアカウントとして接続するために必要なすべてのものが揃っています。

セキュリティの観点から-アカウントパスワードは検証済みサービスのほぼすべてが機能する方法であるため、この方法はアプリの構成ファイルと同じくらい安全です。ユーザーはユーザー名/パスワードを知らないため、他のサービスよりもより安全であると主張することができ、(セキュリティを信じている場合)あいまいさによって)。

1
tbernard