近年、多くの人がWebRTCのセキュリティを問うことを見てきました。 WebRTCを使用することが危険とよく聞きます。一部の人は危険性を感じてブラウザーのWebRTC機能を無効にしています。
この状況はJavaScriptがまだ一般ではなかった時を思い出します。当時、JavaScriptを実行するのは危険!という記事がよく見かけられましたね。
そもそもWebRTCとは?
WebRTCはウェブブラウザーにあるリアルタイムコミュニケーション技術です。カメラやマイクロフォンを操作することができ、画面を相手に同期することもできます。
この技術を通じてエンドユーザーの端末の様々なリソースにアクセスすることができます。
WebRTCのリスク
リスクが主に二つです。
- 悪意ある人は盗聴や情報改ざんを行う可能性
- エンドユーザーの端末の情報によるプライバシー問題
リスクそれぞれを詳しく見てみましょう。
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)
ブラウザ開発会社はセキュリティを重視し、連続的にブラウザーを更新しています。
とにかくIEは使わない方が良いです。
幸いことに、現代のブラウザは自動更新されます。脆弱性が見つかったら、24時間以内で更新が適用されるケースもあります。
なお、ブラウザは6~8週間のペースでバージョンアップします。下記Chromeのバージョンアップ統計をご覧ください。
更新ペースも早いし、自動的ですので、専用ソフトに比べてブラウザーという環境を使用することはセキュリティの面でスマートです。
2. ユーザ側のインストールと更新
多くの場合ユーザが既に対応なブラウザをインストールしました。
WebRTCはプラグインでもないし、何もインストールする必要がありません。
専用ソフトウェア(VoIPソフト等)の場合、環境によって違うバージョンを同時にメンテナンスしたり、更新できない古いバージョンを対応継続したりするケースがあります。パッチ適用にかなりの時間がかかるのが普通です。
先ほど見た通り、ブラウザーの最新バージョンが早々に導入されまるため、WebRTC技術は上記の課題を解決します。ブラウザが更新される度に、WebRTCの要素も更新されます。
つまり、開発者が様々な環境のバージョン対応継続やリアルタイムコミュニケーションに時間を浪費せず、アプリの改善とサービス向上に力を入れることができます。
3. WebRTCはセキュリティを考察して作成された技術
最後に書きますが、WebRTCを検討する上で最重要な要素です。
下記理由があげられます。
- WebRTCはデータ転送をするために、DLTS(データトランスポート層セキュリティ)方式を使用してデータが暗号化されます。WebRTCで、暗号化をすることはオプションではありません。平文でデータ転送を行うことができません。他のVoIPシステムで暗号をON/OFFできるところ、WebRTCは常時暗号です。
- ChromeとSafariは WebRTCを呼び出すAPI(getUserMedia)が HTTPS のみでしか使用できません。Firefox は HTTPS は必須ではありませんが、警告がでます。(一方EdgeはHTTPでも問題ないようです。やはりEdgeはIEと同様にダメです・・・)
- カメラ、マイクロフォンや画面同期を起動するため、ユーザのアクセス許可が必要です。ブラウザーによって許可する方法が違いますが、基本的にブラウザーにポップアップで通知され、許可をするかしないか設定を選びます。また、カメラやマイクロフォン使用中にブラウザーのタブに赤い点が表示され、ユーザに明確な表現を提供します。
もちろん、オンラインで行うことすべてと同様に、悪意ある人による危険性はあります。会社のサービスに脆弱性があった場合、悪意のある侵入の可能性があります。
しかしながら、WebRTC技術はセキュア通信を確保すると言って過言ではありません。
ソース: