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).
Chrome 53 is rolling out since the beginning of September: