web-dev-qa-db-ja.com

アプリケーションのダウンロードがHTTPSで定期的に行われないのはなぜですか?

パスワードやその他の機密情報を収集するときはいつでもSSLを使用する必要があることは誰もが知っています。 SSLには2つの主な利点があります。

  • 暗号化:転送中、仲介者はデータを読み取ることができません。
  • MITM攻撃からの保護:サーバーのCA署名付き証明書を生成できないため、中間の男はサーバーになりすますことができません。

アプリケーションをダウンロードしている場合、おそらくそれをある時点で、おそらくrootとしても実行します。一部のプログラムは署名されますが、多くは署名されていません。転送中に改ざんされていないことを私が知っているように、ダウンロードはSSL経由で行われるべきではありませんか?

誰かが私のパスワードを盗んだ場合、それは悪いことです。しかし、誰かが私のコンピューターにキーロガーを植え付ければ、それはさらに悪いことです。

58
Tom Marthenal

なぜなら、HTTPSは、大きなパブリックファイルのダウンロードのセキュリティ保護にはあまり適していないからです。この使用例では、速度が遅く、それほど役に立ちません。能力不足や気づきを超えてHTTPSを使用しない理由はいくつかあります。

HTTPSは問題を完全には解決しません。アプリケーションをベンダーのWebサイトから直接取得している場合、HTTPSはアプリケーションの信頼性を保証します。ただし、サードパーティからアプリケーションを入手している場合(無料ソフトウェアのミラーなど)、HTTPSはサードパーティとの接続のみを保護します。パッケージ署名スキームはよりよく機能します。これにより、チェーン全体をベンダーから保護できます。 アプリケーションの配布にはエンドツーエンドの保護が必要であり、HTTPSはそれを提供しません

HTTPSはより多くの帯域幅を使用します。キャッシュを考慮しない場合、ダウンロードあたりのオーバーヘッドは最小限です。これは、「HTTPSの方がコストがかからない」という球状のものです。SSLを使用する場合、SSLエンドポイント以外ではデータをキャッシュできません。アプリケーションのダウンロードは極端にキャッシュ可能です。それらは多くの人がダウンロードする大きなファイルです。

HTTPSはやりすぎです。アプリケーションのダウンロードの機密性が問題になることはめったになく、必要なのは信頼性だけです。悲しいことに、HTTPSは機密性も提供せずに信頼性を提供しません。信頼性はキャッシングと互換性がありますが、機密性は互換性がありません。

HTTPSはサーバー上でより多くのリソースを必要とします。 Googleメール は1%のオーバーヘッドと2%の帯域幅のオーバーヘッドになりましたが、これは非常に異なる使用例です。 Gmailのフロントエンドサーバーは、無頓着にファイルを提供するだけではありません。ファイルサーバーはそもそも強力なCPUを必要としないため(IOが非常に強いため)、オーバーヘッドはかなり大きくなる可能性があります。同じことがメモリのオーバーヘッドにも当てはまります。ファイルサーバーは、そもそもセッションごとにほとんどメモリを必要としません。ほとんどすべてのメモリはディスクキャッシュです。リソースの使用量を減らすには、 かなりの作業 が必要です。

HTTPSは多くの人を助けません。セキュリティを意識して、ベンダーから提供されたハッシュをチェックします(thatはHTTPS経由である必要があります)。セキュリティを意識しないと、「この接続は安全ではありません」というメッセージが表示されます(不適切に構成されたサーバーが非常に多くあり、HTTPSエラーを無視するようにトレーニングされています)。そして、それは証明書を与えてはならない危険なCAに​​ついては言うまでもありません。


正規のアプリケーションを取得していることを確認したい場合は、その署名を確認するか、そのハッシュを署名で取得した参照値(HTTPSなど)と照合してください。

良いベンダーはこれを自動的に行います。たとえば、Ubuntuは インストールメディアのGPGシグネチャ を提供しています。 HTTPS経由のハッシュ も提供します(残念ながら、ダウンロードページの近くのどこからでもリンクできません)。その後、ソフトウェアインストールツールは、パッケージに有効な署名が付いていることを自動的にチェックします。参照 httpsをapt-getで使用する方法

注:アプリケーションをベンダーから直接取得している場合(一部のパッケージリポジトリやアプリケーションマーケットプレイスを経由するのではなく)、HTTPSは保護を提供します。そのため、アプリケーションを直接ダウンロードしてWebサイトにダウンロードするベンダーであれば、HTTPSで保護してください!

これは、すべてのログインプロンプトがまだhttpsを使用しているわけではないのと同じ理由です。人々が遅延しすぎている、証明書が高すぎると思っている、またはhttpsの使用に対してより多くの料金を請求しているホスティングを持っている。

本当の問題は、ダウンロードがログインフォームよりもプレーンな接続を介して頻繁に提供される理由です。そしてこれは主に無意識のせいだと思います。チェックサムはよく提供されますが、http経由で送信された場合は安全ではありません。私が見たチェックサムの優れた実装の1つは、チェックサムがTwitterに投稿された場​​所です(これはhttpsを使用し、妥協がないと合理的に見なすことができます)。しかし、チェックサムをチェックした人は誰も知りません。おそらく、ソフトウェアが実行されない場合のみです。通常TCPは、妥当なエラーチェックを行うと想定されています。

もちろん、httpsではhttpよりもサーバーの方が重いです。トラフィックの多いWebサイトの場合、これが理由である可能性があります。ただし、トラフィックの多いWebサイトでも、「高額」の資金を調達して資金を調達することができます。

19
Luc

間違いなく、ユーザーがWeb経由でアプリケーションをダウンロードする場合、アプリケーションのダウンロードはHTTPS経由である必要があります。これは、セキュリティを提供するユーザーにとって最もクリーンなユーザーエクスペリエンスであるため、彼らは理解することができます。多くのユーザーがダウンロードする前にアドレスバーの緑色の光を確認することを期待することは間違いなく現実的ですが、(たとえば)ハッシュを計算して安全に確認することを期待することは合理的ではありません。

ただし、これらのアプリケーションのダウンロードは、さまざまな理由により、HTTPSでは提供されないことがよくあります。

  • 正当な理由:HTTPSはネットワークでのキャッシュを防ぎます。これにより、ネットワークトラフィック、サーバーの負荷、およびクライアント側ネットワークの負荷が増加する可能性があります。

  • 悪い理由:人々は「HTTPSが遅い」( 神話 )であると誤解しています。これは、ミラーとミラーサイトに依存しているため、SSLを使用してサーバーを設定するために追加の作業が必要になるためです。 HTTPSを使用しないでください。HTTPSを使用していないか、人々がそれを考えていないか、危険にさらされているとは思わないためです。広く使用されているソフトウェアの場合、これらの信念はおそらく近視眼的です。どうやら、一部のサイトは、頭の痛い、HTTPSを正しく理解していないロードバランサーまたはアクセラレーターを使用している可能性があります。また、HTTPSを適切に話すことができる適切な展開を設計することを望んでいないか、許容できません。

一部のアプリケーション配布サイトdoはHTTPSを使用しています。しかし、多くはそうではありません。

Firefoxは、アプリケーションをダウンロードするときにデフォルトでHTTPSを使用するしないアプリケーションの注目度の高い例の1つです( コピーの安全性を参照)さまざまなMozillaミラーサイトにあるFirefoxの? )。

Windows Updateはすべて、安全なチャネルを介して行われます(HTTPSと同様)。 Linuxパッケージマネージャーは暗号化を使用して、ダウンロードするソフトウェアを保護しますが、HTTPS自体は保護しません。

9
D.W.

ほとんどの場合、アプリケーションにはMD5sumsとSHA1 sumsがあります。ダウンロードした後、ウェブサイトに表示されているものを確認する必要があります。計算したものが同じであれば問題ありません。

4
Lucas Kauffman