WebRTCは安全ですか?

役に立ったらシェアしてください!

WebRTC

近年、多くの人がWebRTCのセキュリティを問うことを見てきました。 WebRTCを使用することが危険とよく聞きます。一部の人は危険性を感じてブラウザーのWebRTC機能を無効にしています。

この状況はJavaScriptがまだ一般ではなかった時を思い出します。当時、JavaScriptを実行するのは危険!という記事がよく見かけられましたね。

そもそもWebRTCとは?

WebRTCはウェブブラウザーにあるリアルタイムコミュニケーション技術です。カメラやマイクロフォンを操作することができ、画面を相手に同期することもできます。

この技術を通じてエンドユーザーの端末の様々なリソースにアクセスすることができます。

WebRTCのリスク

リスクが主に二つです。

  1. 悪意ある人は盗聴や情報改ざんを行う可能性
  2. エンドユーザーの端末の情報によるプライバシー問題

リスクそれぞれを詳しく見てみましょう。

1. 悪意ある人は盗聴や情報改ざんを行う可能性

当たり前ですが、マイクロフォンを操作することができたら、対話を録音することができます。また、カメラを操作することができたら、映像を撮ることができます。

上記は心配を引き起こす当然の理由です。自分の端末が盗聴ツールになってしまったら嫌ですね。

しかし、WebRTCの仕組みは上記悪用を防ぐように作られたため、ユーザの許可なしでブラウザーが自らカメラやマイクロフォンにアクセスできません。(後程説明します)

2. プライバシー問題について

WebRTCがトラッキング(広告がよくすること)をし、攻撃の危険性が高まるという心配の声があります。

ここでの主な関心事は、ユーザのIPアドレスをWebサーバーに公開することです。

IPアドレスはグローバルの地域ごとに分けられますので、 IPアドレスを入手できれば、おおまかな接続元の場所が分かります。

なお、あるウェブサイトにアクセスする時点でIPアドレスがサーバのログに記録されますので、WebRTCに限らずインターネットを使う上で警戒が必要です。

しかし、VPNなどを使う企業は注意すべきです。WebRTCを使用すれば、VPN経由のIPアドレスではなく、端末のIPアドレスがばれてしまう可能性があります。そのような企業様はWebRTCを使用する前に自社のシスアドに相談することが望ましいです。

実はWebRTCが最も安全な技術?!

もしあなたはリアルタイムコミュニケーション技術を探す、または社内コミュニケーションツールを検討するならば、WebRTC技術は良い候補です。

その理由を説明します。

1. 現代ブラウザのセキュリティが高い

リアルタイムアプリケーションにおけるセキュリティの脅威はネットワーク側およびユーザ側のどちらにも存在しています。

WebRTCは、他のリアルタイム通信アプリケーションと異なって、新規にWebRTCを利用する開発者にとっても、セキュリティの危険を回避しつつ、 強固で信頼性のある基盤を利用することができます。

なぜなら、ブラウザが全てのWebRTCセキュリティの基盤であるからです。

もしユーザが信頼できるブラウザを選んだならば、全てのWebRTCの通信は「安全」と考えられます。

WebRTCの技術はWebRTC互換のブラウザをインストールすれば導入されます。

信頼できるブラウザは下記の3つです。

  • Chrome(Google)
  • Firefox(Mozilla)
  • Safari(Apple)
  • Opera(Opera Software)
Safariの最新バージョン「Safari 11」にてWebRTC対応予定です。(年末にリリースされるでしょう)

ブラウザ開発会社はセキュリティを重視し、連続的にブラウザーを更新しています。

Internet Explorer(Microsoft)はネイティブでWebRTC未対応です(プラグインが必要)。
とにかくIEは使わない方が良いです。

幸いことに、現代のブラウザは自動更新されます。脆弱性が見つかったら、24時間以内で更新が適用されるケースもあります。

なお、ブラウザは6~8週間のペースでバージョンアップします。下記Chromeのバージョンアップ統計をご覧ください。

Chromeの更新頻度

更新ペースも早いし、自動的ですので、専用ソフトに比べてブラウザーという環境を使用することはセキュリティの面でスマートです。

セキュリティの面で重要ですので、原則ブラウザーやOSの自動更新は絶対に停止しない方が良いです。

2. ユーザ側のインストールと更新

多くの場合ユーザが既に対応なブラウザをインストールしました。

WebRTCはプラグインでもないし、何もインストールする必要がありません。

専用ソフトウェア(VoIPソフト等)の場合、環境によって違うバージョンを同時にメンテナンスしたり、更新できない古いバージョンを対応継続したりするケースがあります。パッチ適用にかなりの時間がかかるのが普通です。

先ほど見た通り、ブラウザーの最新バージョンが早々に導入されまるため、WebRTC技術は上記の課題を解決します。ブラウザが更新される度に、WebRTCの要素も更新されます。

現代ブラウザが自動更新されますが、ブラウザーによってWebRTC技術の動作が多少変わることがあります。

つまり、開発者が様々な環境のバージョン対応継続やリアルタイムコミュニケーションに時間を浪費せず、アプリの改善とサービス向上に力を入れることができます。

3. WebRTCはセキュリティを考察して作成された技術

最後に書きますが、WebRTCを検討する上で最重要な要素です。

下記理由があげられます。

  1. WebRTCはデータ転送をするために、DLTS(データトランスポート層セキュリティ)方式を使用してデータが暗号化されます。WebRTCで、暗号化をすることはオプションではありません。平文でデータ転送を行うことができません。他のVoIPシステムで暗号をON/OFFできるところ、WebRTCは常時暗号です。
  2. ChromeとSafariは WebRTCを呼び出すAPI(getUserMedia)が HTTPS のみでしか使用できません。Firefox は HTTPS は必須ではありませんが、警告がでます。(一方EdgeはHTTPでも問題ないようです。やはりEdgeはIEと同様にダメです・・・)
  3. カメラ、マイクロフォンや画面同期を起動するため、ユーザのアクセス許可が必要です。ブラウザーによって許可する方法が違いますが、基本的にブラウザーにポップアップで通知され、許可をするかしないか設定を選びます。また、カメラやマイクロフォン使用中にブラウザーのタブに赤い点が表示され、ユーザに明確な表現を提供します。
その他、技術的なセキュリティ考察がありますので、詳しく知りたい方はこちらをご一読下さい。

もちろん、オンラインで行うことすべてと同様に、悪意ある人による危険性はあります。会社のサービスに脆弱性があった場合、悪意のある侵入の可能性があります。

しかしながら、WebRTC技術はセキュア通信を確保すると言って過言ではありません。


ソース:

Video calling and WebRTC are becoming popular and taking center stage in our lives. Lets see see how WebRTC takes care of security (and privacy).