APT-SECURE(8)

名前
apt-secure - APT アーカイブ認証サポート

説明

Starting with version 0.6, APT contains code that does signature checking of the Release file for all repositories. This ensures that data like packages in the archive can't be modified by people who have no access to the Release file signing key. Starting with version 1.1 APT requires repositories to provide recent authentication information for unimpeded usage of the repository. Since version 1.5 changes in the information contained in the Release file about the repository need to be confirmed before APT continues to apply updates from this repository.

注意: apt-get(8)、aptitude(8)、synaptic(8) といった APT ベースのパッケージ管理フロントエンドは全てこの新しい証明機能をサポートしています。この man ページでは単純化するためだけに、その全てを参照するのに APT を使っています。

UNSIGNED REPOSITORIES

アーカイブに署名されていない Release ファイルがある、または Release ファイルが全くない場合は、現在の APT バージョンは update 操作によるそこからのダウンロードをデフォルトで拒否し、ダウンロードを強制した場合でも、インストール要求に証明されていないアーカイブからのパッケージが含まれる場合には apt-get のようなフロントエンドは明示的な確認を要求します。

設定オプション Acquire::AllowInsecureRepositories に true を設定するとどの APT クライアントでも警告だけを出すように強制できます。sources.list(5) オプション allow-insecure=yes を使うと個々のリポジトリについて安全でないことを許可するようにもできます。安全でないリポジトリは全く勧められるものではなく、apt にそのサポート継続を強制させるオプションは全て最終的には削除されることに注意してください。ユーザ側では警告についても無効化する Trusted オプションを利用することもできますが、sources.list(5) で述べているように、その影響を必ず理解してください。

以前は証明されていたけれども update 操作の結果その効力がなくなったリポジトリについては、安全でないリポジトリの利用を許可あるいは禁止するオプションに関わらず、どの APT クライアントでもエラーを出します。追加で Acquire::AllowDowngradeToInsecureRepositories に true をセットするか sources.list(5) のオプション allow-downgrade-to-insecure=yes を個々のリポジトリに設定することでこのエラーを無視させることもできます。

SIGNED REPOSITORIES

APT アーカイブからエンドユーザまでの信頼の輪は、いくつかのステップで構成されています。apt-secure は、この輪の最後のステップで、「アーカイブを信頼する」ということは、パッケージに悪意のあるコードが含まれていないことを信頼するということではなく、アーカイブメンテナを信頼するということを意味します。これは、アーカイブの完全性が保たれていることを保証するのは、アーカイブメンテナの責任だということです。

apt-secure はパッケージレベルの署名検証は行いません。そのようなツールが必要な場合は、debsig-verify や debsign (debsig-verify パッケージと devscripts パッケージでそれぞれ提供されています) を確認してください。

Debian における信頼の輪は、(例えば) 新しいパッケージやパッケージの新バージョンを、メンテナが Debian アーカイブにアップロードすることから始まります。これが有効になるには、アップロードの際に、Debian メンテナキーリング (debian-keyring パッケージに収録) にあるメンテナのキーで署名する必要があります。メンテナのキーは、キーの所有者の ID を確保するため、事前に確立した手続きの後で、他のメンテナに署名されています。同様の手順は、すべての Debian ベースのディストリビューションに存在します。

アップロードされたパッケージが検証されてアーカイブに格納されると、メンテナの署名を取り外し、パッケージのチェックサムを計算して、Packages ファイルに格納します。その後、全 Packages ファイルのチェックサムを計算して、Release ファイルに格納します。Release ファイルは、その Ubuntu リリースのアーカイブキーで署名され、Ubuntu ミラーサイトでパッケージや Packages ファイルとともに配布されます。このキーは、debian-archive-keyring パッケージに収録されている、Ubuntu アーカイブキーリングに含まれます。

エンドユーザは誰でも、Release ファイルの署名をチェックし、パッケージのチェックサムを抽出して、手でダウンロードしたパッケージのチェックサムと比較できます。また、APT が自動的に行うのに任せることもできます。

以上は、パッケージごとの署名チェックとは違うことに注意してください。以下のように考えられる 2 種類の攻撃を防ぐよう設計されています。

    • ネットワーク中間者攻撃。署名をチェックしないと、悪意あるエージェントがパッケージダウンロードプロセスに割り込んだり、ネットワーク構成要素 (ルータ、スイッチなど) の制御や、悪漢サーバへのネットワークトラフィックのリダイレクトなど (ARP スプーフィング攻撃や DNS スプーフィング攻撃) で、悪意あるソフトウェアを掴まされたりします。

    • ミラーネットワーク感染。署名をチェックしないと、悪意あるエージェントがミラーホストに感染し、このホストからダウンロードしたユーザすべてに、悪意あるソフトウェアが伝播するようにファイルを変更できます。

しかしこれは、(パッケージに署名する) マスターサーバ自体の侵害や、Release ファイルに署名するのに使用したキーの漏洩を防げません。いずれにせよ、この機構はパッケージごとの署名を補完することができます。

INFORMATION CHANGES

A Release file contains beside the checksums for the files in the repository also general information about the repository like the origin, codename or version number of the release.

This information is shown in various places so a repository owner should always ensure correctness. Further more user configuration like apt_preferences(5) can depend and make use of this information. Since version 1.5 the user must therefore explicitly confirm changes to signal that the user is sufficiently prepared e.g. for the new major release of the distribution shipped in the repository (as e.g. indicated by the codename).

ユーザ設定

apt-key は、リポジトリを信頼するために APT が使用するキーリストを管理するプログラムです。信頼されたキーのリストにキーを追加または削除するために使用することができます。キーが署名することができるアーカイブは、sources.list(5) 中の Signed-By を介して制限可能です。

デフォルトのインストールでは、すでにデフォルトのリポジトリからセキュアにパッケージを取得するためにすべてのキーが含まれていることに注意してください。そのため、サードパーティのリポジトリを追加している場合は apt-key で操作する必要があります。

新しいキーを追加するためには、まずキーをダウンロードする必要があります (取得する際には、信頼できる通信チャネルを使用するよう、特に留意してください)。取得したキーを、apt-key で追加し、apt-get update を実行してください。以上により、apt は設定済みのアーカイブから、InRelease ファイルや Release.gpg ファイルをダウンロード・検証できるようになります。

REPOSITORY CONFIGURATION

あなたがメンテナンスしているアーカイブで、アーカイブ署名を提供したい場合、以下のようにしてください。

    • 既に存在しているのでなければ、最上位 Release ファイルを作成してください。apt-ftparchive release (apt-utils で提供) を実行すると、作成できます。

    • 署名します。gpg --clearsign -o InRelease Release や gpg -abs -o Release.gpg Release を実行して、署名してください。

    • キーのフィンガープリントを公開します。これにより、ユーザは、アーカイブ内のファイルを認証するためにインポートする必要があるキーを知るでしょう。これは、ディストリビューションのアップデートとキーの更新を後で自動的に行うことができる ubuntu-keyring を実行する Ubuntu のような独自のキーリングパッケージで鍵を公開するのが最善です。

    • アーカイブとキーを追加する方法について説明します。ユーザがセキュアにキーを取得できない場合は、上述の信頼の輪が壊れています。ユーザのキー追加を助けることができる方法は、アーカイブとすでに信頼のウェブを活用するように (ディストリビューションのデフォルトのリポジトリのように) 設定している別のアーカイブユーザに含まれたあなたのキーリングパッケージを持つまでは、アーカイブと対象者に依存します。

アーカイブの内容に変化がある場合 (新しいパッケージの追加や削除)、アーカイブメンテナは前述の最初の 2 ステップに従わなければなりません。

関連項目

apt.conf(5), apt-get(8), sources.list(5), apt-key(8), apt-ftparchive(1), debsign(1), debsig-verify(1), gpg(1)

詳細な背景情報を検証するのなら、Securing Debian Manual (harden-doc パッケージにも収録) の Debian Security Infrastructure[1] 章や、V. Alex Brennen による Strong Distribution HOWTO[2] をご覧ください。

バグ

APT バグページ[3] をご覧ください。 APT のバグを報告する場合は、 /usr/share/doc/debian/bug-reporting.txt や reportbug(1) コマンドをご覧ください。

著者

APT は APT チーム <apt@packages.debian.org> によって書かれました。

マニュアルページ作者

このマニュアルページは Javier Fernández-Sanguino Peña, Isaac Jones, Colin Walters, Florian Weimer, Michael Vogt の作業を元にしています。

翻訳

倉澤 望 <nabetaro@debian.or.jp> (2003-2006,2009-2012), Takuma Yamada <tyamada@takumayamada.com> (2016), Debian JP Documentation ML <debian-doc@debian.or.jp>

この翻訳文書には未訳部分が含まれている可能性があることに 注意してください。 翻訳がオリジナルに追従できていない場合、 内容を失わないようにこのようにしています。

著者

Gunthorpe Jason[FAMILY Given]

[FAMILY Given]

注記

1.  Debian Security Infrastructure
    http://www.debian.org/doc/manuals/securing-debian-howto/ch7

2.  Strong Distribution HOWTO
    http://www.cryptnet.net/fdp/crypto/strong_distro.html

3.  APT バグページ
    http://bugs.debian.org/src:apt