web-dev-qa-db-ja.com

新しいSMSメッセージが以前のメッセージをどのように上書きするのですか?

ベンダーからの話の中で、スピーカーは、彼らの製品が彼らから受信した最後のテキストメッセージを上書きするためにSMS)の「ほとんど知られていない機能」を使用したと述べました。この機能は送信に使用されていましたワンタイムトークンなので、非常に便利でした。彼はその時点ではそれを示していませんでしたが、最近、私の携帯電話プロバイダーが特別オファートークンで同じことを行うことに気付きました。新しいトークンを受け取るたびに、それが上書きされます古いSMSメッセージです。これが他の電話でも動作することを私は確認しました-本当に古いものでも。

これがセキュリティリスクを引き起こしていることがわかります。たとえば、誰かが私に脅威を送信し、2番目のSMSメッセージを後で消去(編集)して、証拠を残さない可能性があります。ソーシャルエンジニアリングの影響もあります。

SMSがこの上書きを許可するのはどの機能ですか?特にSMSスプーフィングと組み合わせて)この機能が悪用されるのを防ぐためにどのようなセキュリティ対策が講じられていますか?

38
Polynomial

これはSMSに組み込まれており、プロトコル識別子( TP-PID )に実装されています):

MTショートメッセージの場合、SCからショートメッセージを受信すると、MSは、関連付けられているプロトコル識別子にショートメッセージタイプの置換コードが含まれているかどうかを確認します。

そのようなコードが存在する場合、MSは発信元アドレスをチェックし、同じプロトコル識別子コードと発信元アドレスを持つ既存の保存メッセージを新しいショートメッセージと他のパラメータ値で置き換えます。置き換えるメッセージがない場合、MSは通常の方法でメッセージを保存します。 MSは、SCアドレスおよび発信アドレスもチェックします。ただし、複数のSCがあるネットワークでは、SMの置換メッセージタイプが異なる経由で送信される可能性があります。 SCなので、SCアドレスは、アプリケーションが特にそのようなチェックを必要としない限り、MSによってチェックされるべきではありません。

Replace Short Message Typeコードが存在しない場合、MSは通常の方法でメッセージを保存します。

[〜#〜] smpp [〜#〜] プロトコル仕様では、これは REPLACE_SM です。

このコマンドはESMEによって発行され、まだ送信が保留されている、以前に送信されたショートメッセージを置き換えます。照合メカニズムは、元のメッセージのmessage_idと送信元アドレスに基づいています。元のsubmit_smの「送信元アドレス」がデフォルトでNULLに設定されていた場合、replace_smコマンドの送信元アドレスもNULLである必要があります。

そして [〜#〜] emi [〜#〜] では、これは Type of Service 08、code 01 です:

このタイプのサービスは、以前に送信されたメッセージを置き換えることを要求します。更新が要求されたときにのみ存在します。デフォルトでは、メッセージは新しいメッセージであると見なされます。

これが存在する理由は、SMSメッセージを大量に送信するサービスが携帯電話のメモリの消費を回避できるようにするためです。私が知る限り、組み込まれているセキュリティはありません。ソースを偽装できればid、その後、同じソースからの以前のメッセージを上書きするように電話に指示できます。

28
Mark Beadles