APT-SECURE(8)

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

説明

バージョン 0.6 より、apt 全リポジトリに対する Release ファイルの署名チェックコードが含まれています。これにより、アーカイブのパッケージのようなデータが、Release ファイル署名キーにアクセスできない人によって変更されていないことを保証します。

アーカイブに署名されていない Release ファイルがあるか、または Release ファイルがまったくない場合は、現在の APT バージョンは update 操作中に警告を発生させます。また、インストール要求に認証されていないアーカイブからのパッケージが含まれる場合は、apt-get のようなフロントエンドは明示的な確認を要求します。

将来的には、リポジトリ認証サポートが完全に削除されるまで、APT はデフォルトで認証されていないリポジトリでの動作を拒否するでしょう。設定オプション Acquire::AllowInsecureRepositories を false に設定することで、ユーザはこのような動作にするオプトインするオプションがあります。

apt-get(8), aptitude(8), synaptic(8) といったパッケージフロントエンドは、この新認証機能をサポートしています。

信頼済リポジトリ

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 ファイルに署名するのに使用したキーの漏洩を防げません。いずれにせよ、この機構はパッケージごとの署名を補完することができます。

ユーザ設定

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

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

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

アーカイブ設定

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

    • 既に存在しているのでなければ、最上位 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