てきとうなメモ

本の感想とか技術メモとか

STARTTLS改ざん問題

STARTTLSは他のサーバやクライアントと通信する際に電子メールサーバに暗号化を要求するというもので、エンドツーエンドで暗号化が行われるPGPとは異なり、暗号化はサーバ間でのみ行われます。このSTARTTLSを無効化することで、インターネットサービスプロバイダは電子メールサーバが暗号化するはずのメールや、暗号化されたメールの暗号化を解除してしまうというわけです。

イマイチ話がよくわからない。クライアントとサーバ間の話なのか、サーバ同士の話なのか。

While using his laptop tethered to his phone and connected via Cricket, he was unable to send email securely. He switched to the coffee shop’s Wifi and was able to send encrypted email. They concluded that STARTTLS was being intercepted.

The two investigated further and started running tests. They determined Cricket was intercepting and blocking STARTTLS on port 25 – basically, the STARTTLS command was masked out in server responses, and a command failure response was returned.

なるほど。ISPを経由してメールサーバにTLS通信でSMTPでメールを送ろうとした送れず、カフェのWifi経由だと送れたので、横取りされてんじゃないかと。で、さらに詳しく調べるとSTARTTLSコマンドが隠され、コマンドの失敗のレスポンスが戻ってしまったと。

より詳しい説明だと、STARTTLSをサポートするサーバは「250-STARTTLS」を返すのだが、それが「250-XXXXXXXA」とマスキングされてしまっている。さらに、TLSを使うよとクライアントがSTARTTLSコマンドを送っても、そんなコマンド知らないというエラーにして返している。

最初のネゴシエーション時には平文でコマンドが流れているだけなので、中間者によってSTARTTLSコマンド/キーワードは改ざんは可能でISPがやろうと思えばできるか。

参考