web-dev-qa-db-ja.com

apt-getでhttpsを使用する方法は?

apt-getはhttpsまたは何らかの暗号化を使用しますか?それを使用するように設定する方法はありますか?

50
Strapakowsky

apt-get(および同じAPTライブラリのフロントエンドである他のパッケージ操作コマンド)は、HTTP、HTTPS、およびFTP(およびマウントされたファイルシステム)を使用できます。 https://および/etc/apt/sources.list/etc/apt/sources.list.d/* URLを指定すると、APTはHTTPSを使用します。

APTはパッケージの署名を検証します。そのため、データ認証を提供する交通手段を用意する必要はありません。攻撃者がダウンロードしているファイルを変更すると、これに気づくでしょう。署名検証の使用は、送信中の攻撃だけでなく、ダウンロード元のサーバーに対する攻撃を検出するため、HTTPS接続を使用するよりも優れています。

より正確には、パッケージの(簡略化された)データフローは次のとおりです。

  1. パッケージはビルドマシンで作成されます。
  2. パッケージはビルドマシンで署名されます。
  3. 署名されたパッケージがダウンロードミラーにコピーされます。
  4. パッケージをダウンロードします。

HTTPSにより、手順4が正しく実行されます。パッケージの署名により、手順2〜4が正しく実行されることが保証されます。

実際、ステップ4のHTTPSには1つの小さな利点があります。パッケージ署名は、パッケージが本物であることを保証するだけです。手順4の攻撃者は、正当なサーバーになりすまして、パッケージの古いバージョンを提供する可能性があります。たとえば、攻撃者がセキュリティ更新プログラムをダウンロードできないようにすることで、攻撃のためではない場合に修正プログラムを適用するマシンの脆弱性を悪用する可能性があります。アクティブな攻撃者を必要とするため(これはインターネット接続を制御する誰かである必要があります)、これはあまり現実的なシナリオではありませんが、原則として発生する可能性があります。

HTTPSのもう1つの利点は、ネットワーク接続でスヌーピングしている誰かからUbuntuパッケージをダウンロードしているという事実を隠そうとしている場合です。その場合でも、盗聴者は接続しているホストを確認できます。 Ubuntuミラーに接続して数百メガバイトをダウンロードした場合、Ubuntuパッケージをダウンロードしていることは明らかです。盗聴者は、ファイルのサイズからダウンロードしているパッケージをほとんど把握することもできます。したがって、HTTPSは、同様のサイズの他のファイルも提供するサーバーからダウンロードする場合にのみ役立ちます。サードパーティのパッケージを除いて、非常にまれな状況でのみ意味がありません。

繰り返しになりますが、HTTPSの通常の利点は、実際のサーバーに接続していることを知っていることですが、Ubuntuパッケージをダウンロードしているときには役に立ちません。パッケージの署名検証は、HTTPSが提供できるものよりも強力な保証を提供します。

52
Gilles

APTを使用する場合、一般的に重要なのは、接続が暗号化されていることではなく、受信しているファイルが改ざんされていないことです。

APTには、これを保証するための組み込みの署名検証があります。

暗号化は盗聴者があなたがダウンロードしているものを見ることができないようにしますが、実際にダウンロードしている(そして要求している)ことはかなり議論の余地がありません:それは他の何千ものUbuntuユーザーがダウンロードしているものと同じであり、ファイルには何も含まれていません」多くのサーバーで自由に利用できます。それでも、特にダウンロードするパッケージについてプライバシーが必要な場合は、HTTPSを使用できます(sources.listで指定します)。

APTに組み込まれている署名の検証により、受信したファイルが改ざんされていないことが確認されます。ファイルがどこから来たのかは問題ではなく、サーバーとサーバーの間にプロキシーやリバースプロキシーを配置して、サーバーの負荷を軽減したりスピードアップしたりすることも可能です。署名の検証により、元のファイルとUbuntuの秘密キーのコピーでのみ暗号的に生成できる署名と一致する、変更されていないファイルを取得していることが保証されます。

HTTPSに切り替えると、アクセスの高速化や負荷の軽減にプロキシサーバーを利用できなくなります。そして、APTの署名検証がまだ提供していないことを改ざんしないという保証は追加されません。ただし、盗聴者(ISPなど)は、ダウンロードしているパッケージを見ることができません(これは機密ではない可能性が高く、Gillesが指摘したように、ファイルサイズから推測できます)。

13
thomasrutter

最近のAPTリリースにはTLSサポートが組み込まれているため、パッケージリポジトリミラーURLをhttps-プレフィックス付きのものに置き換えるだけです。 Debianの場合、次のようになります。

deb https://deb.debian.org/debian/ stretch main
deb https://deb.debian.org/debian-security stretch/updates main
deb https://deb.debian.org/debian/ stretch-updates main

APTにはバグがある可能性があるため、APTには独自の署名プロトコルが含まれており、パッケージが改ざんされていないことを保証しますが( CVE-2016-1252CVE-2019-3462 )。 HTTP/TLSプロトコルとその暗号は厳重な監視の対象となるため、このセキュリティレイヤーを追加した場合、深刻なゼロデイ脆弱性ははるかに少なくなります。

1

この質問は、素人向けの指示を含む回答を使用できると思うので、…

APTは、Ubuntu 19.10(Eoan)の毎日のビルド(まだ開発中)でデフォルトでHTTPSを使用しません。これは、/ etc/apt/sources.listファイルを調べて、すべてのソースURLが「http:」URLスキームを使用していることを確認することで確認できます。

HTTPSを使用するように構成するには、次の手順に従います。

まず、HTTPSをサポートする信頼できる公式のUbuntuアーカイブミラーを見つけます:

  1. buntuの公式アーカイブミラー Webページに移動します。
  2. そのWebページの表で、(A)信頼できると思われるWebサイトでホストされているミラーを特定します。(B)「http:」ミラーを持ち、オプションで(C)地理的近接性、サーバー速度、更新を満たします。鮮度の好み。
  3. そのWebページの表で、手順(2)で識別されたミラーの「http」リンクをクリックして、ミラーの「http:」バージョンにアクセスします。
  4. ブラウザのアドレスバーで、WebページURLの「http:」を「https:」に手動で変更します。
  5. 「https:」URLを介してミラーに再度移動して、解決するかどうかを確認します。

たとえば、ウィキメディア財団は信頼できると考えているため、 http://mirrors.wikimedia.org/ubuntu/ ミラーURLにアクセスし、その後それを https:// mirrorsに変更しました。 wikimedia.org/ubuntu/ 、これは正常に解決します。

Firefox(67.0.4)を使用しており、 HTTPS Everywhere (2019.6.27)拡張機能がインストールされている場合(「すべてのサイトを暗号化する」機能が有効になっている(ツールバーボタンパネルを使用))、手順(4) (5)拡張機能はHTTPSを使用するようにURLを自動的に変更し、URLの「https:」バージョンが解決するかどうかをより迅速に判断できるため、省略できます。

Two、APTソースリストを更新します。

  1. コマンドSudo cp /etc/apt/sources.list /etc/apt/sources.list.backupを実行して、更新ソースリストをバックアップします。
  2. ミラーのベースURL(ここでは https://mirrors.wikimedia.org として表示)をコマンドSudo sed --in-place --regexp-extended 's http://(us\.archive\.ubuntu\.com|security\.ubuntu\.com) https://mirrors.wikimedia.org g' /etc/apt/sources.listでミラーbase URL希望するミラーのコマンドを実行します。

3番目に、/ etc/apt/sources.list.d /ディレクトリの内容を調べて、「http:」ソースを変更する必要があります。 「https:」Ubuntuアーカイブの外部からソフトウェアをインストールした後。

たとえば、MicrosoftのVisual Studio Codeパッケージは、「http:」URLを指定するvscode.listファイルをこのディレクトリに追加します。 URLスキームを「http:」から「https:」に変更するだけで、HTTPSを介した更新が可能になります。

変更する前に、そのようなソースファイルをバックアップすることを検討してください。

最後に、更新を実行して、更新が正しく機能することを確認します。

  1. Sudo apt-get updateコマンドを実行します。
  2. 期待どおりに動作しない場合は、Sudo cp /etc/apt/sources.list.backup /etc/apt/sources.listコマンドを実行して、作成したバックアップソースリストファイルを復元します。

また、APTにHTTPSサポートを追加するための apt-transport-https パッケージがあることにも注意してください。ただし、このパッケージはWebページによれば明らかに不要である https://launchpad.net/ubuntu/eoan/+package/apt-transport-https であり、APT以降は不要です。 _ 1.5コマンドapt-cache show apt-transport-httpsの実行後に表示される情報による。

0
Patrick Dark