ロボコール対策! “STIR / SHAKEN”を理解する!
今回は急増するロボコールや詐欺電話の取り組みとして期待されている、”STIR / SHAKEN”について解説していきます。
目次
STIR とは? SHAKEN とは?
STIR(かき回す)やSHAKEN(シェイク)という言葉から何やらカフェやカクテルを想像させますが、、、もちろん違います。
STIRは”Secure Telephony Identity Revisited”を短くしたもの。SHAKENは”Signature-based Handling of Asserted information using toKENs”を短くしたものです。最後のトークンから”KEN”を引っ張ってきている点は多少強引な気もします。。。
これはシンプルに言ってしまうと、「インターネットで使用されているような認証技術を電話の世界でも使用しよう」というものです。
では、どうしてそのような認証技術が電話で必要なのでしょうか? 実は海外(主にアメリカ)ではシステムによって自動発信されているコール、いわゆるロボコールの量が尋常ではないのです。
これらロボコールの中には詐欺や犯罪に関係するものも多く、アメリカ連邦通信委員会(FCC)には消費者から多くの苦情が寄せられています。
その一方で、一般消費者に対して有益なロボコールもあります。消費者自身が利用しているサービスやお店からのキャンペーンのお知らせなどがそれに該当します。
そのため、消費者は不正なロボコールなのか、正しい発信元からのコールなのかを識別することが重要になります。
発信元を偽装するなりすましコール
しかし、ここで大きな問題に直面します。海外では発信元を簡単に偽装できるため、消費者からすると違法ななりすましコールなのか、正しい発信元からのコールなのか判断できないのです。
例えば、スマホにご近所さんのような番号から着信があったので応答した所、実は海外からのロボコールだったということもよく聞く話です。
このままでは消費者保護という観点からもよくありません。電話業界はこれらなりすましコールに対抗すべく、“STIR / SHAKEN”を利用して発信元が偽装されていないかを検証する仕組みを導入してきました。
進む法整備
また、アメリカではそのための法整備もされてきました。 2019年12月にはTRACED 法 (Telephone Robocall Abuse Criminal Enforcement and Deterrence Act) が制定され、通信キャリアに対しては、以下の期限までに”STIR / SHAKEN”のような仕組みを導入することが義務付けられました。
- 大規模キャリア: June 30, 2021
- 中小キャリア: June 30, 2022
STIR / SHAKENについて
STIR / SHAKENは、一般的な公開鍵暗号技術に基づくデジタル証明書を使用して、電話の発信番号が安全であることを検証するプロトコル/仕組みです。基本的にこれらはInternet Engineering Task Force (IETF)のワーキンググループによってRFC標準として定義されており、以下のRFCでそれら仕様を確認できます。
- RFC 8224 – Authenticated Identity Management in the Session Initiation Protocol (SIP)
- RFC 8225 – PASSporT: Personal Assertion Token
- RFC 8226 – Secure Telephone Identity Credentials: Certificates
- RFC 8588 – Personal Assertion Token (PaSSporT) Extension for Signature-based Handling of Asserted information using toKENs (SHAKEN)
各電話サービスプロバイダーは、認証局から取得した証明書を利用します。そして認証技術により着信側は発信者番号が正確であり、改ざんされていないことを確認します。
それではRFCの内容を元に簡単に仕組みを解説していきます。
まずはSTIR / SHAKENがない場合
下図の場合を例に説明します。発信者からダイヤルされた通話はまず、発信者が契約している通信業者Aを通り、その後、電話回線ネットワークを経由して、最後は通信業者Zから着信相手へとつながります。
この場合、認証機能がないため発信者番号(Call ID)はこの矢印の流れのどこかで改ざんされたとしてもそのまま発見されず、コールは着信者まで届くことになります。
STIR / SHAKENを導入した場合
1.発信者側の通信業者Aは実際の発信者と発信番号が正しいかチェックします。そして、信頼のある外部認証サービスを使用してSIP Identityヘッダーを作成します。この時、暗号化(ハッシュ化)されたIdentityヘッダー内には発信者番号(Call ID)情報が含まれていることがポイントです。以降はこのIdentityヘッダーが含まれたSIPメッセージが流れていきます。
2.着信者側の通信業者Zにおいて、SIP Identityヘッダー情報の確認(Verification)が行われます。ここでも信頼のある外部サービスが使用されます。この時、例えば、以下のような理由でVerificationが失敗した場合、経路のどこかで何らかの改ざんが行われたことがわかります。
- SIP Identityヘッダーの復号に失敗した場合
- SIPメッセージに記載されたCall ID情報とIdentity ヘッダーに含まれていたCall ID情報が異なっていた場合
暗号化(ハッシュ化)されたIdentityヘッダー
以下はSIP Identityヘッダーを模式的に表したものです。Web認証で使用するJWT(S)に似ており、実際は”Identity: eyJhbGciOiJFUzI1NiIsInR5cCI6InBhc3Nwb…“のような文字の羅列が続きます。これは以下のように大きく3つのパートに分かれています。
- Header
- Payload/Data
- Signature
この2. Payload/Dataの個所に発信者番号、宛先番号情報が含まれています。前述したコールフローにおいて、着信者側の通信業者Zでは外部サービスを使用したVerification作業において、Identityヘッダー内の発信者番号がSIPヘッダー内に平文で書かれている発信者番号と相違ないかチェックすることになります。
いかがでしたでしょうか。今回はSTIR / SHAKENの全体像を理解してもらうため、多少極端な解説となりました。実際の仕組みはもう少し複雑です。興味のある方はRFCを読んでみることをお勧めします。
今回ご紹介した、STIR/SHAKENは海外(主にアメリカ)でのロボコール/迷惑電話対策です。しかしながら、決して対岸の火事というわけではありません。日本でも迷惑電話は増えているといわれていますので、近い将来同様の取り組みがなされるかもしれません。