Scroll to navigation

APT-SECURE(8) APT APT-SECURE(8)

名前

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

説明

バージョン 0.6 より、 APT は全リポジトリに対する Release ファイルの署名チェックコードを収録しています。これにより、アーカイブのパッケージのようなデータが、Release ファイル署名キーにアクセスできない人によって変更されていないことを保証します。バージョン 1.1 からは、 APT はリポジトリに対し、そのリポジトリが最近遅滞なく使えていることを証明する情報の提供を要求します。
アーカイブに署名されていない Release ファイルがある、または Release ファイルが全くない場合は、現在の APT バージョンは update 操作によるそこからのダウンロードをデフォルトで拒否し、ダウンロードを強制した場合でも、インストール要求に証明されていないアーカイブからのパッケージが含まれる場合には apt-get のようなフロントエンドは明示的な確認を要求します。
一時的な例外として apt-get(8) (not apt(8)!) はこの後方互換性に影響のある変更に対応するための少しばかり長い猶予期間として、証明されていないアーカイブについてのみ警告します。この例外は将来のリリースでは削除され、設定オプション Binary::apt-get::Acquire::AllowInsecureRepositories に false を設定するかコマンドラインで --no-allow-insecure-repositories を指定することでこの猶予期間を無効化することもできます。
設定オプション 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 を個々のリポジトリに設定することでこのエラーを無視させることもできます。
注意: apt-get(8)aptitude(8)synaptic(8) といった APT ベースのパッケージ管理フロントエンドは全てこの新しい証明機能をサポートしています。この man ページでは単純化するためだけに、その全てを参照するのに APT を使っています。

信頼済リポジトリ

APT アーカイブからエンドユーザまでの信頼の輪は、いくつかのステップで構成されています。 apt-secure は、この輪の最後のステップで、「アーカイブを信頼する」ということは、パッケージに悪意のあるコードが含まれていないことを信頼するということではなく、アーカイブメンテナを信頼するということを意味します。これは、アーカイブの完全性が保たれていることを保証するのは、アーカイブメンテナの責任だということです。
apt-secure はパッケージレベルの署名検証は行いません。そのようなツールが必要な場合は、 debsig-verifydebsign (debsig-verify パッケージと devscripts パッケージでそれぞれ提供されています) を確認してください。
Debian における信頼の輪は、(例えば) 新しいパッケージやパッケージの新バージョンを、メンテナが Debian アーカイブにアップロードすることから始まります。これが有効になるには、アップロードの際に、Debian メンテナキーリング (debian-keyring パッケージに収録) にあるメンテナのキーで署名する必要があります。メンテナのキーは、キーの所有者の ID を確保するため、事前に確立した手続きの後で、他のメンテナに署名されています。同様の手順は、すべての Debian ベースのディストリビューションに存在します。
アップロードされたパッケージが検証されてアーカイブに格納されると、メンテナの署名を取り外し、パッケージのチェックサムを計算して、Packages ファイルに格納します。その後、全 Packages ファイルのチェックサムを計算して、Release ファイルに格納します。Release ファイルは、その Debian リリースのアーカイブキーで署名され、Debian ミラーサイトでパッケージや Packages ファイルとともに配布されます。このキーは、debian-archive-keyring パッケージに収録されている、Debian アーカイブキーリングに含まれます。
エンドユーザは誰でも、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 Releasegpg -abs -o Release.gpg Release を実行して、署名してください。
キーのフィンガープリントを公開します。これにより、ユーザは、アーカイブ内のファイルを認証するためにインポートする必要があるキーを知るでしょう。これは、ディストリビューションのアップデートとキーの更新を後で自動的に行うことができる debian-archive-keyring を実行する Debian のような独自のキーリングパッケージで鍵を公開するのが最善です。
アーカイブとキーを追加する方法について説明します。ユーザがセキュアにキーを取得できない場合は、上述の信頼の輪が壊れています。ユーザのキー追加を助けることができる方法は、アーカイブとすでに信頼のウェブを活用するように (ディストリビューションのデフォルトのリポジトリのように) 設定している別のアーカイブユーザに含まれたあなたのキーリングパッケージを持つまでは、アーカイブと対象者に依存します。
アーカイブの内容に変化がある場合 (新しいパッケージの追加や削除)、アーカイブメンテナは前述の最初の 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] をご覧ください。

BUGS

APT bug page[3]. If you wish to report a bug in APT, please see /usr/share/doc/debian/bug-reporting.txt or the reportbug(1) command.

AUTHOR

APT was written by the APT team <apt@packages.debian.org>.

マニュアルページ作者

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

TRANSLATION

The english translation was done by John Doe <john@doe.org> in 2009, 2010 and Daniela Acme <daniela@acme.us> in 2010 together with the Debian Dummy l10n Team <debian-l10n-dummy@lists.debian.org>.
Note that this translated document may contain untranslated parts. This is done on purpose, to avoid losing content when the translation is lagging behind the original content.

著者

Gunthorpe Jason[FAMILY Given]
[FAMILY Given]

注記

1.
Debian Security Infrastructure
2.
Strong Distribution HOWTO
3.
APT bug page
06 8 月 2016 APT 1.4.8