web-dev-qa-db-ja.com

HTTPS経由でダウンロードチェックサムを確認する理由はありますか

ダウンロードをリンクしているページとダウンロード自体の両方がHTTPSを介して信頼できるドメイン上にあると仮定すると、ダウンロードされたファイルのハッシュ/チェックサム(特に実行可能ファイル/インストーラー、それ自体も何かによって署名されていない)をチェックすることを心配する理由はありますか? OSは信頼します)?

私が理解しているように、そうする理由は、ダウンロードエラー(TCPこれを行う必要がありますか?)またはファイルに感染する悪意のある攻撃をキャッチするためです。

しかし、HTTPS(TLS)はすでにそれらから完全に保護されているはずなので、手動検証にさらに価値はありますか?

4
Fire Lancer

HTTPSがそれらのどちらもキャッチするとは思わない。 AFAIK HTTPSは、TCPを介した破損からの追加の保護を提供しません。

私はセキュリティの専門家ではありませんが、TLS(HTTPS)が次の2つのことを行うことを知っています。

  1. 接続しているサーバーが実際に彼らが言っている人であることを確認します。
    たとえば、 https://Microsoft.com と入力し、トラフィックが知らないうちに https://badguys.com に送信された場合( DNSスプーフィング )、証明書エラーが発生します。確かに、悪者は https://badguys.com thatclaimsに偽の証明書を作成して https://Microsoft.com 、ただし、有効な 認証局 によって署名されません。
  2. Man-in-the-middle攻撃(MITM) によって読み取られたり変更されたりしないように、トラフィックを暗号化します。このシナリオでは、誰かがあなたのすべてのネットワークトラフィックを見ることができます。 TLSを使用していなかった場合、TLSはGETリクエストを検出し、Webサーバーからの実際のデータの代わりに偽のデータの送信を開始する可能性があります。

ダウンロードのトピックに戻ると、多くのサイトが大量のダウンロードをミラーに配布しています。mirrorが危険にさらされている場合、ファイルは悪意のあるバージョンに置き換えられる可能性があります。ミラーがTLSを使用している場合でも、ハッキングされたり、ミラーリストに誤って追加されたりすると、HTTPSサイトから悪意のあるバージョンをダウンロードする可能性があります。そしてもちろん、これが発生した場合、彼らはミラーのチェックサムを更新します。

これが、ミラーからのチェックサムに対してダウンロードを検証するべきではなく、元のサイトからのチェックサムのみを使用する必要がある理由です( この質問 に従って)。

6
Ian

イアンの応答に追加します。

MITM攻撃では、man-in-the-middleはペイロードを悪意のあるものに変更できないため、チェックサムは役に立ちません。

MITMがクライアントのマシンにルート証明書をインストールしている場合、または何らかの方法で接続を操作できる場合、表示されるチェックサムを変更できるため、チェックサムも役に立ちません。

サーバー攻撃に対しても同じことが起こるはずです。彼がすでにサーバーにアクセスできる場合は、チェックサムを変更できます。ただし、サーバーが分割されている場合(ダウンロードサーバーとダウンロードリンク/チェックサムを表示するサーバー)、チェックサムを提供することをお勧めします。

したがって、経験則として、チェックサムを表示しているサーバーがダウンロードファイルを提供しているサーバーと同じである場合、チェックサムは役に立ちません。複数のミラーがある場合、それは必須です。

最新の更新/正確にはセキュリティ関連ではありませんが、知っておくと便利です:

チェックサムを追加する別の正当な理由を見つけました。これは、おそらくアーカイブされる予定のファイル(たとえば、archive.org)のためのものであり、ユーザーは、取得するファイルがで利用可能だったときと同じであることを認識します。あなたのサイト。

また、インターネットでファイルの特定のバージョンを検索しようとしている場合(同じ実行可能ファイル名でバージョン管理されていることを考慮)、一部のミラーサイトまたはアーカイブサイトでは、ファイルのMD5/SHA1を検索エンジンで使用できます。そのため、代わりにハッシュを検索することで簡単に見つけることができるかもしれません(私は実際に過去にこの特定の問題に遭遇し、HASHを検索することでそれを見つけました)。

1
Lucca Ferri