フォーラムの空模様 – メールシールドのSSLスキャン

皆さんこんばんは。

「フォーラムの空模様」コーナー24回目、今回は、バージョン21.5で発生したメールシールドの不具合に関連して、そのSSLスキャンの仕組みについて紹介します。


元になったフォーラムトピックはこちら。

[Solved] Mail shield certificate not trusted in Outlook
https://forum.avast.com/index.php?topic=283239.0

バージョン21.5のリリース直後、ThunderbirdやOutlookといったメールソフトで、メールの送受信が証明書エラーのためできなくなる、という不具合がありました(現在は解消されています)。
これは、Avast のメールシールドによる「SSLスキャン」の機能が誤動作したことが原因でした。以下、その仕組みと背景、今回の事象などを紹介します。

メール送受信の暗号化

もともと、メールの送受信に使われるPOP3/SMTP/IMAPといったプロトコルは、暗号化はされていませんでした。つまり、ユーザー名やパスワード、メールの本文や添付ファイルなどは、悪意ある第三者が通信を傍受すれば、そのまま読める状態でやり取りされていたのです。

しかし、プライバシー保護の機運が高まる中、これはセキュリティ上好ましくないことから、これら通信プロトコルに後付けで暗号化機能(旧称SSL、現在ではTLSと呼ばれます)を付加し、メールサーバとメールソフトの間で通信を暗号化するようになりました。これにより、仮に通信が傍受されたとしても、中身を見ることは非常に困難になりました。

暗号化とウイルススキャンの両立

ところが、メールサーバとメールソフトとの間の通信が暗号化されてしまうと、Avast といったセキュリティソフトは、メールにマルウェアがいないかをスキャンすることが出来なくなります。暗号化されたメールは、悪意ある第三者にとってそうであるように、Avast にとっても暗号であり、中身をチェックすることが出来ないのです。

そこで、暗号化によるプライバシー保護とAvast によるウイルススキャンを両立させるべく作られたのが、SSLスキャン機能です。これは、Avast がメールサーバとメールソフトの間に割り込み、お互いに対して相手のふりをするMITM (Man-in-the-middle)という方式によっています。
例えばメールの送信を考えれば、メールソフトに対してAvast はメールサーバとして振る舞ってメールソフト-Avast 間で暗号化通信を確立し、Avast 内部でメールを復号してスキャンする。メールサーバに対してはAvast はメールソフトとして振る舞って同様に暗号化通信を確立し、スキャン後のメールを再度暗号化してメールサーバに送信する。こうすれば、インターネット上の暗号化通信と、メールのウイルススキャンを両立できます。

当然、悪意ある第三者にこの方式を使われては暗号化の意味がないため、暗号化機能にはこれを防ぐためのシステム(相手が本物の宛先メールサーバかどうかを判定する機能)が組み込まれています。しかし、この「本物かどうか」の判定はメールソフトが動作する各PC上で行われるため、そのPC上で動作するAvast はこの判定基準を書き換えて、自身が本物のメールサーバであるとメールソフトに信じ込ませることが可能なのです。

何が起きていたのか?

さて、前置きが長くなりました。今回起きたトラブルは、この「判定基準を書き換える」部分で発生しました。メールソフトにAvast が信用してもらうには、この判定基準を正しく書き換えることが必須なのですが、リリース直後のバージョン21.5ではこの部分に不具合があり、正しくない書き換えが行われていました。結果、Avast は暗号化機能が防ごうとした「悪意ある第三者」としてメールソフトから認識されてしまい、警告が出たり、メールの送受信ができなくなったりしたのです。

こんな画面が表示されていました

この修正は通常のバージョンアップより小さいマイクロアップデート(いわゆるパッチ)で配信され、適用後は再起動が必要です。標準では1日1回以上、自動的にパッチの確認&適用が行われているため、現在ではほぼすべての対象PCにパッチが当たっているものと思われます。

もし相変わらずエラーが出るという方がいれば、PCを再起動してみてください。


本日は以上となります。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策) Needs some Japanese text for SPAM prevention.