harden-doc 3.19 - en to de translation catalogue (143 entries)

en: Debian Security Infrastructure
de: Die Infrastruktur für Sicherheit in Debian

en: The Debian Security Team
de: Das Sicherheitsteam von Debian

en: Debian has a Security Team, that handles security in the <emphasis>stable</emphasis> distribution. Handling security means they keep track of vulnerabilities that arise in software (watching forums such as Bugtraq, or vuln-dev) and determine if the <emphasis>stable</emphasis> distribution is affected by it.
de: Debian hat ein Sicherheitsteam, das aus fünf Mitgliedern und zwei Sekretären besteht. Es ist für die Sicherheit in der <emphasis>Stable</emphasis>-Veröffentlichung verantwortlich. Das bedeutet, dass es Sicherheitslücken nachgeht, die in Software auftauchen (indem es Foren wie Bugtraq oder vuln-dev beobachtet), und ermittelt, ob davon die <emphasis>Stable</emphasis>-Veröffentlichung betroffen ist.

en: Also, the Debian Security Team is the contact point for problems that are coordinated by upstream developers or organizations such as <ulink name="CERT" url="http://www.cert.org" /> which might affect multiple vendors. That is, when problems are not Debian-specific. The contact point of the Security Team is <ulink name="team@security.debian.org" url="mailto:team@security.debian.org" /> which only the members of the security team read.
de: Das Sicherheitsteam von Debian ist auch der Ansprechpartner für Probleme, die von den Programmautoren oder Organisationen wie <ulink url="http://www.cert.org" name="CERT" /> behandelt werden und die mehrere Linux-Anbieter betreffen können. Das gilt für alle Probleme, die nicht debianspezifisch sind. Die Kontaktadresse des Sicherheitsteams ist <ulink url="hmailto:team@security.debian.org" name="team@security.debian.org" />, die nur die Mitglieder des Sicherheitsteams lesen.

en: Sensitive information should be sent to the first address and, in some cases, should be encrypted with the Debian Security Contact key (as found in the Debian keyring).
de: Heikle Informationen sollten an die erste Adresse geschickt werden und unter Umständen mit dem Schlüssel von Debian Security Contact (der sich in Debians Schlüsselbund befindet) verschlüsselt werden. <!-- SB: Fix original -->

en: Once a probable problem is received by the Security Team it will investigate if the <emphasis>stable</emphasis> distribution is affected and if it is, a fix is made for the source code base. This fix will sometimes include backporting the patch made upstream (which usually is some versions ahead of the one distributed by Debian). After testing of the fix is done, new packages are prepared and published in the <ulink url="http://security.debian.org" /> site so they can be retrieved through <command>apt</command> (see <xref linkend="security-update" />). At the same time a <emphasis>Debian Security Advisory</emphasis> (DSA) is published on the web site and sent to public mailing lists including <ulink name="debian-security-announce" url="http://lists.debian.org/debian-security-announce" /> and Bugtraq.
de: Wenn das Sicherheitsteam ein mögliches Problem erhält, wird es untersuchen, ob die <emphasis>Stable</emphasis>-Veröffentlichung davon betroffen ist. Wenn dies der Fall ist, wird eine Ausbesserungen des Quellcodes vorgenommen. Diese Ausbesserung schließt manchmal ein, dass Patches der Programmautoren zurückportiert werden (da das Originalprogramm gewöhnlich einige Versionen weiter ist als das in Debian). Nachdem die Ausbesserung getestet wurde, werden neue Pakete vorbereitet und auf der Seite <ulink url="hsecurity-master.debian.org" /> veröffentlicht, damit sie mit <command>apt</command> abgerufen werden können (siehe <xref linkend="security-update" />). Zur gleichen Zeit wird eine <emphasis>Debian-Sicherheits-Ankündigung</emphasis> (DSA) auf der Webseite veröffentlicht und an öffentliche Mailinglisten einschließlich <ulink url="http://lists.debian.org/debian-security-announce" name="debian-security-announce" /> und Bugtraq geschickt.

en: Some other frequently asked questions on the Debian Security Team can be found at <xref linkend="debian-sec-team-faq" />.
de: Einige andere häufige Fragen zum Sicherheitsteam von Debian können unter <xref linkend="debian-sec-team-faq" /> gefunden werden.

en: Debian Security Advisories
de: Debian-Sicherheits-Ankündigungen

en: Debian Security Advisories (DSAs) are made whenever a security vulnerability is discovered that affects a Debian package. These advisories, signed by one of the Security Team members, include information of the versions affected as well as the location of the updates. This information is:
de: Debian-Sicherheits-Ankündigungen (DSA) werden erstellt, sobald eine Sicherheitslücke entdeckt wird, die ein Debian-Paket betrifft. Diese Ankündigungen, die von einem Mitglied des Sicherheitsteams signiert sind, enthalten Informationen zu den betroffenen Versionen und den Orten der Aktualisierungen und ihrer MD5-Summen. Die Informationen sind:

en: version number for the fix.
de: Versionsnummer der Ausbesserung

en: problem type.
de: Art des Problems

en: whether it is remote or locally exploitable.
de: Ob es aus der Ferne oder lokal ausnutzbar ist

en: short description of the package.
de: Kurze Beschreibung des Pakets

en: description of the problem.
de: Beschreibung des Problems

en: description of the exploit.
de: Beschreibung des Exploits

en: description of the fix.
de: Beschreibung der Ausbesserung

en: DSAs are published both on <ulink name="Debian's frontpage" url="http://www.debian.org/" /> and in the <ulink name="Debian security pages" url="http://www.debian.org/security/" />. Usually this does not happen until the website is rebuilt (every four hours) so they might not be present immediately. The preferred channel is the debian-security-announce mailing list.
de: DSAs werden sowohl auf der <ulink url="http://www.de.debian.org/" name="Hauptseite von Debian" /> als auch auf den <ulink url="http://www.debian.org/security/" name="Sicherheitsseiten von Debian" /> veröffentlicht. Das passiert normalerweise nicht, bis die Website neu erstellt wurde (alle vier Stunden). Daher könnten sie nicht sofort vorhanden sein. Somit ist die vorzugswürdige Informationsquelle die Mailingliste debian-security-announce.

en: Interested users can, however (and this is done in some Debian-related portals) use the RDF channel to download automatically the DSAs to their desktop. Some applications, such as <command>Evolution</command> (an email client and personal information assistant) and <command>Multiticker</command> (a GNOME applet), can be used to retrieve the advisories automatically. The RDF channel is available at <ulink url="http://www.debian.org/security/dsa.rdf" />.
de: Interessierte Benutzer können auch den RDF-Kanal verwenden, um die DSAs automatisch auf ihren Desktop herunterzuladen (dies wird auf einigen Portalen über Debian gemacht). Einige Anwendungen, wie etwa <command>Evolution</command> (ein E-Mail-Client und Hilfsprogramm für persönliche Informationen) und <command>Multiticker</command> (ein GNOME-Applet) können verwendet werden, um die Ankündigungen automatisch herunterzuladen. Der RDF-Kanal befindet sich unter <ulink url="http://www.debian.org/security/dsa.rdf" />.

en: DSAs published on the website might be updated after being sent to the public-mailing lists. A common update is adding cross references to security vulnerability databases. Also, translations<footnote><para>Translations are available in up to ten different languages.</para></footnote> of DSAs are not sent to the security mailing lists but are directly included in the website.
de: DSAs, die auf der Webseite veröffentlicht wurden, können aktualisiert werden, nachdem sie an öffentliche Mailinglisten verschickt wurden. Eine typische Aktualisierung ist, einen Querverweis auf Datenbanken mit Sicherheitslücken hinzuzufügen. Auch Übersetzungen der DSAs <footnote><para> Übersetzungen sind in bis zu zehn verschiedenen Sprachen verfügbar. </para></footnote> werden nicht an die Sicherheitsmailinglisten geschickt, sondern sind direkt auf der Webseite enthalten.

en: Vulnerability cross references
de: Querverweise der Verwundbarkeiten

en: Debian provides a fully <ulink name="crossreferenced table" url="http://www.debian.org/security/crossreferences" /> including all the references available for all the advisories published since 1998. This table is provided to complement the <ulink name="reference map available at CVE" url="http://cve.mitre.org/cve/refs/refmap/source-DEBIAN.html" />.
de: Debian stellt eine vollständige <ulink name="crossreferenced table" url="http://www.debian.org/security/crossreferences" /> zur Verfügung, die alle verfügbaren Verweise für die Ankündigungen seit 1998 enthält. Diese Tabelle soll die <ulink name="reference map available at CVE" url="http://cve.mitre.org/cve/refs/refmap/source-DEBIAN.html" /> ergänzen.

en: You will notice that this table provides references to security databases such as <ulink name="Bugtraq" url="http://www.securityfocus.com/bid" />, <ulink name="CERT/CC Advisories" url="http://www.cert.org/advisories/" /> and <ulink name="US-CERT Vulnerability Notes Database" url="http://www.kb.cert.org/vuls" /> as well as CVE names (see below). These references are provided for convenience use, but only CVE references are periodically reviewed and included.
de: Sie werden bemerken, dass die Tabelle Verweise auf Sicherheitsdatenbanken wie <ulink url="http://www.securityfocus.com/bid" name="Bugtraq" />, <ulink url="http://www.cert.org/advisories/" name="CERT/CC Ankündigungen" /> und <ulink url="http://www.kb.cert.org/vuls" name="US-CERT Vulnerability Notes Database" /> und auf die CVE-Bezeichnungen (siehe unten) enthält. Diese Verweise werden zur Nutzerfreundlichkeit angeboten, aber nur der CVE-Verweise werden regelmäßig überprüft und eingefügt. Dieses Feature wurde im Juni 2002 der Webseite hinzugefügt.

en: Advantages of adding cross references to these vulnerability databases are:
de: Das Hinzufügen von Querverweisen auf diese Sicherheitsdatenbanken hat folgende Vorteile:

en: it makes it easier for Debian users to see and track which general (published) advisories have already been covered by Debian.
de: Es erleichtert Benutzern von Debian zu erkennen und nachzuvollziehen, welche allgemeinen (veröffentlichten) Ankündigungen schon von Debian abgedeckt sind.

en: system administrators can learn more about the vulnerability and its impact by following the cross references.
de: Systemadministratoren können mehr über die Verwundbarkeit und ihre Auswirkungen lernen, wenn sie den Querverweisen folgen.

en: this information can be used to cross-check output from vulnerability scanners that include references to CVE to remove false positives (see <xref linkend="vulnasses-false-positive" />).
de: Diese Informationen können benutzt werden, um Ausgaben von Verwundbarkeitsscannern, die Verweise auf CVE enthalten, zu überprüfen, um falsche Positivmeldungen auszusortieren (vergleichen Sie <xref linkend="vulnasses-false-positive" />).

en: CVE compatibility
de: CVE-Kompatibilität

en: Debian Security Advisories were <ulink name="declared CVE-Compatible" url="http://www.debian.org/security/CVE-certificate.jpg" /><footnote><para>The full <ulink name="capability questionnaire" url="http://cve.mitre.org/compatible/phase2/SPI_Debian.html" /> is available at CVE</para></footnote> in February 24, 2004.
de: Debians Sicherheitsankündigungen wurden am 24. Februar 2004 <ulink url="http://www.de.debian.org/security/CVE-certificate.jpg" name="CVE-kompatibel erklärt" /> <footnote><para> Der vollständige <ulink url="http://cve.mitre.org/compatible/phase2/SPI_Debian.html" name="Fragebogen zur Kompatibilität" /> ist bei CVE erhältlich. </para></footnote>.

en: The <ulink name="Common Vulnerabilities and Exposures (CVE)" url="http://cve.mitre.org" /> project is maintained by the MITRE Corporation and provides a list of standardized names for vulnerabilities and security exposures.
de: Das Projekt <ulink url="http://cve.mitre.org" name="Common Vulnerabilities and Exposures (CVE)" /> wird von der MITRE Corporation betreut und stellt eine Liste von standardisierten Bezeichnungen für Verwundbarkeiten und Sicherheitslücken zur Verfügung.

en: Debian believes that providing users with additional information related to security issues that affect the Debian distribution is extremely important. The inclusion of CVE names in advisories help users associate generic vulnerabilities with specific Debian updates, which reduces the time spent handling vulnerabilities that affect our users. Also, it eases the management of security in an environment where CVE-enabled security tools -such as network or host intrusion detection systems, or vulnerability assessment tools- are already deployed regardless of whether or not they are based on the Debian distribution.
de: Debian ist überzeugt, dass es außerordentlich wichtig ist, die Benutzer mit zusätzlichen Informationen im Zusammenhang mit Sicherheitsproblemen, welche die Debian-Distribution betreffen, zu versorgen. Indem CVE-Bezeichnungen in den Ankündigungen enthalten sind, können Benutzer leichter allgemeine Verwundbarkeiten mit bestimmten Aktualisierungen von Debian in Verbindung bringen. Dies verringert die Zeit, die benötigt wird, um Verwundbarkeiten, die unsere Benutzer betreffen, abzuarbeiten. Außerdem vereinfacht es die Organisation der Sicherheit in einer Umgebung, in der schon Sicherheitswerkzeuge, die CVE verwenden, wie Erkennungssysteme von Eindringlingen in Netzwerk oder Host oder Werkzeuge zur Bewertung der Sicherheit eingesetzt werden, unabhängig davon, ob sie auf der Debian-Distribution beruhen.

en: Debian provides CVE names for all DSAs released since September 1998. All of the advisories can be retrieved on the Debian web site, and announcements related to new vulnerabilities include CVE names if available at the time of their release. Advisories associated with a given CVE name can be searched directly through the Debian Security Tracker (see below).
de: Debian stellt CVE-Bezeichnungen sind in allen DSAs seit September 1998 zur Verfügung. Alle Ankündigungen können auf der Webseite von Debian abgerufen werden. Auch Ankündigungen von neuen Verwundbarkeiten enthalten CVE-Bezeichnungen, wenn sie zum Zeitpunkt ihrer Veröffentlichung verfügbar waren. Ankündigungen, die mit einer bestimmten CVE-Bezeichnung verbunden sind, können direkt über Debians Sicherheitsdatenbank (Debian Security Tracker) gesucht werden (siehe unten).

en: In some cases you might not find a given CVE name in published advisories, for example because:
de: In einige Fällen finden Sie eine bestimmte CVE-Bezeichnung in veröffentlichten Ankündigungen nicht. Beispiele dafür sind:

en: No Debian products are affected by that vulnerability.
de: Keine Produkte von Debian sind von der Verwundbarkeit betroffen.

en: There is not yet an advisory covering that vulnerability (the security issue might have been reported as a <ulink name="security bug" url="http://bugs.debian.org/cgi-bin/pkgreport.cgi?tag=security" /> but a fix has not been tested and uploaded).
de: Es gibt noch keine Ankündigung, welche die Verwundbarkeit abdeckt; das Sicherheitsproblem wurde vielleicht als <ulink url="http://bugs.debian.org/cgi-bin/pkgreport.cgi?tag=security" name="Sicherheitsfehler" /> gemeldet, aber eine Ausbesserung wurde noch nicht getestet und hochgeladen.

en: An advisory was published before a CVE name was assigned to a given vulnerability (look for an update at the web site).
de: Eine Ankündigung wurde veröffentlicht, bevor eine CVE-Bezeichnung einer bestimmten Verwundbarkeit zugewiesen wurde (sehen Sie auf der Webseite nach einer Aktualisierung).

en: Security Tracker
de: Sicherheitsdatenbank

en: The package <command>debsecan</command> uses the information in the tracker to report to the administrator of a system which of the installed packages are vulnerable, and for which updates are available to fix security issues.
de: Das Paket <command>debsecan</command> verwendet die Informationen in der Datenbank, zum den Administrator eines Systems darüber zu informieren, welche der installierten Pakete verwundbar sind und für welche Pakete Sicherheitsaktualisierungen verfügbar sind.

en: Debian Security Build Infrastructure
de: Die Infrastruktur des Sicherheitsprozesses in Debian

en: Since Debian is currently supported in a large number of architectures, administrators sometimes wonder if a given architecture might take more time to receive security updates than another. As a matter of fact, except for rare circumstances, updates are available to all architectures at the same time.
de: Da Debian im Moment eine große Anzahl von Architekturen unterstützt, fragen Administratoren manchmal, ob es bei einer bestimmten Architektur bis zu einer Sicherheitsaktualisierung länger dauert als bei einer anderen. Tatsächlich sind Aktualisierungen auf allen Architekturen zur selben Zeit verfügbar, abgesehen von seltenen Umständen.

en: Packages in the security archive are autobuilt, just like the regular archive. However, security updates are a little more different than normal uploads sent by package maintainers since, in some cases, before being published they need to wait until they can be tested further, an advisory written, or need to wait for a week or more to avoid publicizing the flaw until all vendors have had a reasonable chance to fix it.
de: Pakete im Sicherheitsarchiv werden automatisch erstellt, genauso wie im normalen Archiv. Allerdings werden Sicherheitsaktualisierungen etwas anderes behandelt als normale Aktualisierungen, die von den Paketbetreuern vorgenommen werden, da in manchen Fällen vor einer Veröffentlichung die Aktualisierungen nochmals getestet werden müssen, eine Ankündigung geschrieben werden muss oder eine Woche oder mehr gewartet werden muss, um zu verhindern, dass der Fehler veröffentlicht wird, bevor nicht alle Linux-Anbieter eine vernünftige Chance hatten, ihn zu beheben.

en: Thus, the security upload archive works with the following procedure:
de: Folglich arbeitet das Archiv der Sicherheitsuploads nach dem folgenden Ablauf :

en: Someone finds a security problem.
de: Jemand findet ein Sicherheitsproblem.

en: Someone fixes the problem, and makes an upload to security-master.debian.org's incoming (this <emphasis>someone</emphasis> is usually a Security Team member but can be also a package maintainer with an appropriate fix that has contacted the Security Team previously). The Changelog includes a <emphasis>testing-security</emphasis> or <emphasis>stable-security</emphasis> as target distribution.
de: Jemand löst das Problem und lädt die Lösung in den Eingang von security-master.debian.org hoch (dieser <emphasis>jemand</emphasis> ist normalerweise ein Mitglied des Sicherheitsteams, kann aber auch ein Paketbetreuer mit einer passenden Verbesserung sein, der sich zuvor mit dem Sicherheitsteam in Verbindung gesetzt hat). Die Änderungsübersicht (changelog) beinhaltet ein <emphasis>testing-security</emphasis> oder <emphasis>stable-security</emphasis> als Zieldistribution.

en: The upload gets checked and processed by a Debian system and moved into queue/accepted, and the buildds are notified. Files in here can be accessed by the security team and (somewhat indirectly) by the buildds.
de: Die hochgeladenen Dateien werden von einem Debian-System überprüft, verarbeitet und in die Warteschleife der angenommenen Dateien <!-- SB (20050426): "and moved into queue/accepted" --> weitergeleitet. Danach werden die Buildds benachrichtigt. Auf die Dateien in der Warteschleife kann das Sicherheitsteam und (auf indirektem Wege) die Buildds zugreifen.

en: Security-enabled buildds pick up the source package (prioritized over normal builds), build it, and send the logs to the security team.
de: Buildds, die Sicherheit unterstützen, holen sich das Quellpaket (mit einer höheren Priorität als normale Paketerstellungen), erstellen Pakete und schicken die Protokolle ans Sicherheitsteam.

en: The security team reply to the logs, and the newly built packages are uploaded to queue/unchecked, where they're processed by a Debian system, and moved into queue/accepted.
de: Das Sicherheitsteam antwortet auf die Protokolle und die neu erstellten Pakete werden in die Warteschleife der ungeprüften Dateien hochgeladen, wo sie von einem Debian-System verarbeitet und in die Warteschleife der angenommenen Dateien verschoben werden.

en: When the security team find the source package acceptable (i.e., that it's been correctly built for all applicable architectures and that it fixes the security hole and doesn't introduce new problems of its own) they run a script which:
de: Wenn das Sicherheitsteam ein Quellpaket akzeptiert (d.h. dass es für alle Architekturen korrekt Pakete erstellt, und dass es die Sicherheitslücke schließt und keine neuen Probleme hervorruft), führt es ein Skript aus, das:

en: installs the package into the security archive.
de: das Paket im Sicherheitsarchiv installiert,

en: updates the <filename>Packages</filename>, <filename>Sources</filename> and <filename>Release</filename> files of security.debian.org in the usual way (<command>dpkg-scanpackages</command>, <command>dpkg-scansources</command>, ...).
de: die <filename>Paket</filename>-, <filename>Quell</filename>- und <filename>Veröffentlichungsdateien</filename> von security.debian.org auf dem gewöhnlichen Weg aktualisiert (<command>dpkg-scanpackages</command>, <command>dpkg-scansources</command>, ...),

en: sets up a template advisory that the security team can finish off.
de: eine Vorlage einer Ankündigung erstellt, die das Sicherheitsteam fertig stellen kann und

en: forwards the packages to the appropriate proposed-updates so that it can be included in the real archive as soon as possible.
de: die Pakete zu den vorgeschlagenen Aktualisierungen weiterleitet, so dass sie sobald wie möglich in die echten Archive eingefügt werden können.

en: This procedure, previously done by hand, was tested and put through during the freezing stage of Debian 3.0 woody (July 2002). Thanks to this infrastructure the Security Team was able to have updated packages ready for the apache and OpenSSH issues for all the supported (almost twenty) architectures in less than a day.
de: Dieser Ablauf, der früher per Hand durchgeführt wurde, wurde während des Freezing-Abschnitts von Debian 3.0 Woody (Juli 2002) getestet und umgesetzt. Dank dieser Infrastruktur war es dem Sicherheitsteam möglich, aktualisierte Pakete für Apache- und OpenSSH-Probleme für alle unterstützen Architekturen (fast 20) in weniger als einem Tag bereitzustellen.

en: Developer's guide to security updates
de: Leitfaden über Sicherheitsaktualisierungen für Entwickler

en: Debian developers that need to coordinate with the security team on fixing in issue in their packages, can refer to the Developer's Reference section <ulink name="Handling security-related bugs" url="http://www.debian.org/doc/manuals/developers-reference/pkgs.html#bug-security" />.
de: Debian Entwickler, die mit dem Sicherheitsteam zusammenarbeiten müssen, um in ihren Pakete Probleme zu lösen, sollten in der Entwicklerreferenz im Abschnitt <ulink url="http://www.debian.org/doc/manuals/developers-reference/pkgs.html#bug-security" name="Handhabung von sicherheitsrelevanten Fehlern" /> nachsehen.

en: Package signing in Debian
de: Paketsignierung in Debian

en: This section could also be titled "how to upgrade/update safely your Debian GNU/Linux system" and it deserves its own section basically because it is an important part of the Security Infrastructure. Package signing is an important issue since it avoids tampering of packages distributed in mirrors and of downloads with man-in-the-middle attacks. Automatic software update is an important feature but it's also important to remove security threats that could help the distribution of trojans and the compromise of systems during updates <footnote><para>Some operating systems have already been plagued with automatic-updates problems such as the <ulink name="Mac OS X Software Update vulnerabity" url="http://www.cunap.com/~hardingr/projects/osx/exploit.html" />.</para></footnote>
de: Dieser Abschnitt könnte auch mit »Wie man sein Debian GNU/Linux-System sicher upgraded/aktualisiert« überschrieben werden. Es verdient hauptsächlich deshalb einen eigenen Abschnitt, weil es einen wichtigen Teil der Infrastruktur der Sicherheit darstellt. Die Signierung von Paketen ist ein wichtiges Thema, da es die Manipulation von Paketen in Spiegel und von heruntergeladenen Dateien durch Man-in-the-Middle-Angriffen verhindert. Die automatische Aktualisierung von Software ist eine wichtige Fähigkeit, aber es ist auch wichtig, Gefahren für die Sicherheit zu entfernen, die die Verbreitung von Trojanern und den Einbruch ins System während der Aktualisierung fördern können.<footnote><para> Einige Betriebssysteme wurden schon von Problemen mit automatischen Aktualisierungen heimgesucht, wie z.B. die <ulink url="http://www.cunap.com/~hardingr/projects/osx/exploit.html" name="Mac OS X Software-Update-Verwundbarkeit" />. </para></footnote>

en: Debian does not provide signed packages but provides a mechanism available since Debian 4.0 (codename <emphasis>etch</emphasis>) to check for downloaded package's integrity<footnote><para>Older releases, such as Debian 3.1 <emphasis>sarge</emphasis> can use this feature by using backported versions of this package management tool</para></footnote>. For more information, see <xref linkend="apt-0.6" />.
de: Debian stellt keine signierten Pakete zur Verfügung. Es gibt aber seit Debian 4.0 (Codename <emphasis>Etch</emphasis>) eine Verfahrensweise, mit der die Integrität von heruntergeladenen Paketen überprüft werden kann.<footnote><para>Ältere Veröffentlichungen wie Debian 3.1 (<emphasis>Sarge</emphasis>) können mit zurückportierten Versionen des Paketmanagers auf diese Methode zugreifen.</para></footnote> Weiterführende Hinweise können Sie unter <xref linkend="apt-0.6" /> finden.

en: This issue is better described in the <ulink name="Strong Distribution HOWTO" url="http://www.cryptnet.net/fdp/crypto/strong_distro.html" /> by V. Alex Brennen.
de: Dieses Problem wird besser im <ulink url="http://www.cryptnet.net/fdp/crypto/strong_distro.html" name="Strong-Distribution-Howto" /> von V. Alex Brennen beschrieben.

en: The current scheme for package signature checks
de: Die aktuelle Methode zur Prüfung von Paketsignaturen

en: The current scheme for package signature checking using <command>apt</command> is:
de: Die aktuelle Methode zur Prüfung von Paketsignaturen mit <command>apt</command> ist:

en: the <filename>Release</filename> file includes the MD5 sum of <filename>Packages.gz</filename> (which contains the MD5 sums of packages) and will be signed. The signature is one of a trusted source.
de: Die <filename>Release</filename>-Datei enthält die MD5-Summe von <filename>Packages.gz</filename> (welche die MD5-Summen der Pakete enthält) und wird signiert. Die Signatur stammt aus einer vertrauenswürdigen Quelle.

en: This signed <filename>Release</filename> file is downloaded by 'apt-get update' and stored along with <filename>Packages.gz</filename>.
de: Diese signierte <filename>Release</filename>-Datei wird beim »apt-get update« herunter geladen und zusammen mit <filename>Packages.gz</filename> gespeichert.

en: When a package is going to be installed, it is first downloaded, then the MD5 sum is generated.
de: Wenn ein Paket installiert werden soll, wird es zuerst herunter geladen, und dann wird die MD5-Summe erstellt.

en: The signed <filename>Release</filename> file is checked (signature ok) and it extracts from it the MD5 sum for the <filename>Packages.gz</filename> file, the <filename>Packages.gz</filename> checksum is generated and (if ok) the MD5 sum of the downloaded package is extracted from it.
de: Die signierte <filename>Release</filename>-Datei wird überprüft (ob die Signatur in Ordnung ist) und die MD5-Summe der <filename>Packages.gz</filename>-Datei extrahiert. Die MD5-Summe der <filename>Packages.gz</filename>-Datei wird erstellt und geprüft, und &ndash; wenn sie übereinstimmt &ndash; wird die MD5-Summe des heruntergeladenen Paketes aus ihr extrahiert.

en: If the MD5 sum from the downloaded package is the same as the one in the <filename>Packages.gz</filename> file the package will be installed, otherwise the administrator will be alerted and the package will be left in the cache (so the administrator can decide whether to install it or not). If the package is not in the <filename>Packages.gz</filename> and the administrator has configured the system to only install checked packages it will not be installed either.
de: Wenn die MD5-Summe des heruntergeladenen Paketes die gleiche ist wie in der <filename>Packages.gz</filename>-Datei, wird das Paket installiert. Andernfalls wird der Administrator alarmiert und das Paket wird im Zwischenspeicher gehalten (so dass der Administrator entscheiden kann, ob es installiert werden soll oder nicht). Wenn das Paket nicht in <filename>Packages.gz</filename> enthalten ist und der Administrator das System so konfiguriert hat, dass nur geprüfte Pakete installiert werden können, wird das Paket ebenfalls nicht installiert.

en: By following the chain of MD5 sums <command>apt</command> is capable of verifying that a package originates from a a specific release. This is less flexible than signing each package one by one, but can be combined with that scheme too (see below).
de: Durch diese Kette von MD5-Summen ist <command>apt</command> in der Lage, zu verifizieren, dass ein Paket aus einer bestimmten Veröffentlichung stammt. Dies ist zwar unflexibler als jedes Paket einzeln zu signieren, kann aber auch mit den unten aufgeführten Plänen kombiniert werden.

en: Package signing has been discussed in Debian for quite some time, for more information you can read: <ulink url="http://www.debian.org/News/weekly/2001/8/" /> and <ulink url="http://www.debian.org/News/weekly/2000/11/" />.
de: Die Signierung von Paketen wurde innerhalb des Debian-Projekts ausführlich diskutiert. Mehr Informationen hierzu finden Sie unter <ulink url="http://www.debian.org/News/weekly/2001/8/" /> und <ulink url="http://www.debian.org/News/weekly/2000/11/" />.

en: Secure apt
de: Secure Apt

en: The apt 0.6 release, available since Debian 4.0 <emphasis>etch</emphasis> and later releases, includes <emphasis>apt-secure</emphasis> (also known as <emphasis>secure apt</emphasis>) which is a tool that will allow a system administrator to test the integrity of the packages downloaded through the above scheme. This release includes the tool <command>apt-key</command> for adding new keys to apt's keyring, which by default includes only the current Debian archive signing key.
de: Die Veröffentlichung von apt 0.6, das seit Debian 4.0 (<emphasis>Etch</emphasis>) verfügbar ist, enthält <emphasis>apt-secure</emphasis> (auch als <emphasis>Secure Apt</emphasis> bekannt), das ein Werkzeug ist, mit dem ein Systemadministrator die Integrität von heruntergeladenen Paketen mit dem oben dargestellten Verfahren überprüfen kann. Diese Veröffentlichung enthält das Werkzeug <command>apt-key</command>, um neue Schlüssel zum Schlüsselbund von apt hinzuzufügen, welcher standardmäßig nur den aktuellen Signierungsschlüssel des Debian-Archivs enthält.

en: These changes are based on the patch for <command>apt</command> (available in <ulink name="Bug #203741" url="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=203741" />) which provides this implementation.
de: Diese Veränderungen basieren auf dem Patch für <command>apt</command> (verfügbar in <ulink url="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=203741" name="Fehler #203741" />), der diese Erweiterung zur Verfügung stellt.

en: Secure apt works by checking the distribution through the <filename>Release</filename> file, as discussed in <xref linkend="check-releases" />. Typically, this process will be transparent to the administrator although you will need to intervene every year<footnote><para>Until an automatic mechanism is developed.</para></footnote> to add the new archive key when it is rotated, for more information on the steps an administrator needs to take a look at <xref linkend="secure-apt-add-key" />.
de: Secure Apt überprüft die Distribution mit der <filename>Release</filename>-Datei. Dies wurde schon unter <xref linkend="check-releases" /> dargestellt. Typischerweise erfordert dieser Vorgang kein Mitwirken des Administrators. Aber jedes Jahr müssen Sie eingreifen<footnote><para>Bis ein automatischer Mechanismus entwickelt wurde.</para></footnote>, um den neuen Schlüssel des Archivs hinzuzufügen, wenn dieser ausgewechselt wurde. Weitere Informationen zu den dazu notwendigen Schritten finden Sie unter <xref linkend="secure-apt-add-key" />.

en: This feature is still under development, if you believe you find bugs in it, please, make first sure you are using the latest version (as this package might change quite a bit before it is finally released) and, if running the latest version, submit a bug against the <package>apt</package> package.
de: Diese Fähigkeit befindet sich noch im Entwicklungsstadium. Wenn Sie glauben, dass Sie Fehler gefunden haben, stellen Sie zuerst sicher, dass Sie die neuste Version verwenden (da dieses Paket vor seiner endgültigen Veröffentlichung noch ziemlich verändern werden kann). Falls Sie die aktuelle Version benutzen, schicken Sie einen Fehlerbericht für das Paket <application>apt</application>.

en: Per distribution release check
de: Überprüfung der Distribution mit der <filename>Release</filename>-Datei

en: This section describes how the distribution release check mechanism works, it was written by Joey Hess and is also available at the <ulink name="Debian Wiki" url="http://wiki.debian.org/SecureApt" />.
de: Dieser Abschnitt beschreibt, wie die Überprüfung der Distribution mit Hilfe der <filename>Release</filename>-Datei funktioniert. Dies wurde von Joey Hess geschrieben und ist auch im <ulink url="http://wiki.debian.org/SecureApt" name="Debian-Wiki" /> abrufbar.

en: Basic concepts
de: Grundlegende Konzepte

en: Here are a few basic concepts that you'll need to understand for the rest of this section.
de: Es gibt ein paar grundlegende Konzepte, die Sie brauchen, um den Rest dieses Abschnitts verstehen zu können.

en: A checksum is a method of taking a file and boiling it down to a reasonably short number that uniquely identifies the content of the file. This is a lot harder to do well than it might seem, and the most commonly used type of checksum, the MD5 sum, is in the process of being broken.
de: Eine Prüfsumme ist eine Methode, bei der eine Datei auf eine relativ kurze Zahl heruntergekocht wird, mit welcher der Inhalt der Datei eindeutig identifiziert werden kann. Dies ist wesentlich schwieriger, als es zunächst erscheinen mag. Der am weitesten verbreiteteste Typ von Prüfsummen, MD5, wird gerade unbrauchbar.

en: Public key cryptography is based on pairs of keys, a public key and a private key. The public key is given out to the world; the private key must be kept a secret. Anyone possessing the public key can encrypt a message so that it can only be read by someone possessing the private key. It's also possible to use a private key to sign a file, not encrypt it. If a private key is used to sign a file, then anyone who has the public key can check that the file was signed by that key. No one who doesn't have the private key can forge such a signature.
de: Verschlüsselung mit öffentlichen Schlüsseln fußt auf einem Schlüsselpaar: einem öffentlichen Schlüssel und einem privaten Schlüssel. Der öffentliche Schlüssel wird an die Allgemeinheit verteilt. Der private muss geheim bleiben. Jeder, der den öffentlichen Schlüssel hat, kann eine Nachricht verschlüsseln, so dass sie nur noch der Besitzer des privaten Schlüssels lesen kann. Es besteht daneben die Möglichkeit, mit einem privaten Schlüssel eine Datei zu signieren. Wenn eine Datei mit einer digitalen Unterschrift versehen wurde, kann jeder, der den öffentlichen Schlüssel hat, überprüfen, ob die Datei mit diesem Schlüssel unterschrieben wurde. Ohne den privaten Schlüssel lässt sich eine solche Signatur nicht nachmachen.

en: These keys are quite long numbers (1024 to 2048 digits or longer), and to make them easier to work with they have a key id, which is a shorter, 8 or 16 digit number that can be used to refer to them.
de: Diese Schlüssel bestehen aus ziemlich langen Zahlen (1024 oder 2048 Ziffern oder sogar länger). Damit sie leichter zu verwenden sind, haben sie eine kürzere Schlüssel-ID (eine Zahl mit nur acht oder 16 Stellen), mit der sie bezeichnet werden können.

en: <command>gpg</command> is the tool used in secure apt to sign files and check their signatures.
de: Secure Apt verwendet <command>gpg</command>, um Dateien zu unterschreiben und ihre Signaturen zu überprüfen.

en: <command>apt-key</command> is a program that is used to manage a keyring of gpg keys for secure apt. The keyring is kept in the file <filename>/etc/apt/trusted.gpg</filename> (not to be confused with the related but not very interesting <filename>/etc/apt/trustdb.gpg</filename>). <command>apt-key</command> can be used to show the keys in the keyring, and to add or remove a key.
de: Mit dem Programm <command>apt-key</command> wird der Schlüsselbund von GPG für Secure Apt verwaltet. Der Schlüsselbund befindet sich in der Datei <filename>/etc/apt/trusted.gpg</filename> (nicht zu verwechseln mit der verwandten, aber nicht sehr interessanten Datei <filename>/etc/apt/trustdb.gpg</filename>). <command>apt-key</command> kann dazu verwendet werden, die Schlüssel im Schlüsselbund anzuzeigen oder um Schlüssel hinzuzufügen oder zu entfernen.

en: <filename>Release</filename> checksums
de: Prüfsummen der <filename>Release</filename>-Datei

en: A Debian archive contains a <filename>Release</filename> file, which is updated each time any of the packages in the archive change. Among other things, the <filename>Release</filename> file contains some MD5 sums of other files in the archive. An excerpt of an example <filename>Release</filename> file:
de: Jedes Archiv von Debian enthält eine <filename>Release</filename>-Datei, die jedes Mal aktualisiert wird, wenn ein Paket im Archiv geändert wird. Unter anderem enthält die <filename>Release</filename>-Datei MD5-Summen von anderen Dateien, die sich im Archiv befinden. Ein Auszug einer <filename>Release</filename>-Datei:

en: The <filename>Release</filename> files also include SHA-1 checksums, which will be useful once MD5 sums become fully broken, however apt doesn't use them yet.
de: Die <filename>Release</filename>-Datei enthält auch SHA1-Prüfsummen, was nützlich wird, wenn MD5-Summen vollständig unbrauchbar sind. Allerdings unterstützt apt SHA1 noch nicht.

en: Now if we look inside a <filename>Packages</filename> file, we'll find more MD5 sums, one for each package listed in it. For example:
de: Werfen wir einen Blick in eine <filename>Packages</filename>-Datei: Wir sehen weitere MD5-Summen, eine für jedes darin aufgeführte Paket. Beispiel:

en: These two checksums can be used to verify that you have downloaded a correct copy of the <filename>Packages</filename> file, with a md5sum that matches the one in the <filename>Release</filename> file. And when it downloads an individual package, it can also check its md5sum against the content of the <filename>Packages</filename> file. If apt fails at either of these steps, it will abort.
de: Mit diesen beiden Prüfsummen kann überprüft werden, ob Sie eine getreue Kopie der <filename>Packages</filename>-Datei heruntergeladen haben, also mit einer MD5-Summe, die mit der in der <filename>Release</filename>-Datei übereinstimmt. Und wenn ein einzelnes Paket heruntergeladen wird, kann auch die MD5-Summe mit dem Inhalt der <filename>Packages</filename>-Datei verglichen werden. Wenn bei einem dieser Schritte ein Fehler auftauchen sollte, bricht Apt den Vorgang ab.

en: None of this is new in secure apt, but it does provide the foundation. Notice that so far there is one file that apt doesn't have a way to check: The Release file. Secure apt is all about making apt verify the <filename>Release</filename> file before it does anything else with it, and plugging this hole, so that there is a chain of verification from the package that you are going to install all the way back to the provider of the package.
de: Nichts davon ist neu in Secure Apt, sondern bietet nur die Grundlage für Secure Apt. Beachten Sie, dass es bis jetzt eine Datei gibt, die Apt nicht überprüfen kann: die <filename>Release</filename>-Datei. Bei Secure Apt dreht sich alles darum, dass Apt die <filename>Release</filename>-Datei überprüft, bevor es irgendetwas anderes damit macht. Wenn man das schafft, besteht eine lückenlose Authentifizierungskette von dem Paket, das Sie installieren möchten, bis zum Anbieter des Pakets.

en: Verification of the <filename>Release</filename> file
de: Überprüfung der <filename>Release</filename>-Datei

en: To verify the <filename>Release</filename> file, a gpg signature is added for the <filename>Release</filename> file. This is put in a file named <filename>Release.gpg</filename> that is shipped alongside the <filename>Release</filename> file. It looks something like this <footnote><para>Technically speaking, this is an ASCII-armored detached gpg signature.</para></footnote> , although only gpg actually looks at its contents normally:
de: Damit die <filename>Release</filename>-Datei überprüft werden kann, wird sie mit GPG signiert. Diese Unterschrift kommt in die Datei <filename>Release.gpg</filename>, die mit der <filename>Release</filename>-Datei abgerufen werden kann. Sie sieht in etwa so<footnote><para>Genau genommen handelt es sich um eine ASCII-armored abgetrennte GPG-Signatur.</para></footnote> aus, obwohl sich für gewöhnlich nur GPG ihren Inhalt ansieht:

en: Check of <filename>Release.gpg</filename> by <command>apt</command>
de: <filename>Release.gpg</filename> mit <command>Apt</command> überprüfen

en: Secure apt always downloads <filename>Release.gpg</filename> files when it's downloading <filename>Release</filename> files, and if it cannot download the <filename>Release.gpg</filename>, or if the signature is bad, it will complain, and will make note that the <filename>Packages</filename> files that the <filename>Release</filename> file points to, and all the packages listed therein, are from an untrusted source. Here's how it looks during an <command>apt-get update</command>:
de: Wenn Secure Apt eine <filename>Release</filename>-Datei herunterlädt, lädt es immer auch die <filename>Release.gpg</filename>-Datei herunter. Falls dies misslingen sollte oder die Signatur nicht stimmt, wird es eine Rückmeldung machen und hinweisen, dass die <filename>Packages</filename>-Dateien, auf welche die <filename>Release</filename>-Datei verweist, und alle darin enthaltenen Pakete von einer nicht vertrauenswürdigen Quelle stammen. So würde dies während <command>apt-get update</command> aussehen:

en: Note that the second half of the long number is the key id of the key that apt doesn't know about, in this case that's 2D230C5F.
de: Beachten Sie, dass die zweite Hälfte der langen Nummer die Schlüssel-ID des Schlüssels ist, von dem Apt nichts weiß. Im Beispiel ist sie 2D230C5F.

en: If you ignore that warning and try to install a package later, apt will warn again:
de: Falls Sie diese Warnung ignorieren und später versuchen, ein Paket zu installieren, wird Sie Apt nochmals warnen:

en: 
    WARNING: The following packages cannot be authenticated!
      libglib-perl libgtk2-perl
    Install these packages without verification [y/N]?
de: 
    WARNUNG: Die folgenden Pakete können nicht authentifiziert werden!
      libglib-perl libgtk2-perl
    Diese Pakete ohne Überprüfung installieren [j/N]?

en: If you say Y here you have no way to know if the file you're getting is the package you're supposed to install, or if it's something else entirely that somebody that can intercept the communication against the server<footnote><para>Or has poisoned your DNS, or is spoofing the server, or has replaced the file in the mirror you are using, etc.</para></footnote> has arranged for you, containing a nasty suprise.
de: Wenn Sie nun »J« drücken, haben Sie keine Möglichkeit festzustellen, ob die Datei, die Sie bekommen, wirklich diejenige ist, die Sie auch installieren möchten, oder ob sie eine ganz andere ist, die Ihnen jemand, der die Verbindung mit dem Server abgefangen hat<footnote><para> Oder Ihren DNS vergiftet hat oder den Server spooft oder die Datei auf einem Spiegel platziert hat, den Sie verwenden, oder ... </para></footnote>, mit einer gemeinen Überraschung unterschieben will.

en: Note that you can disable these checks by running apt with --allow-unauthenticated.
de: Hinweis: Sie können diese Abfragen abschalten, indem Sie <command>apt</command> mit <literal>--allow-unauthenticated</literal> laufen lassen.

en: It's also worth noting that newer versions of the Debian installer use the same signed <filename>Release</filename> file mechanism during their debootstrap of the Debian base system, before apt is available, and that the installer even uses this system to verify pieces of itself that it downloads from the net. Also, Debian does not currently sign the <filename>Release</filename> files on its CDs; apt can be configured to always trust packages from CDs so this is not a large problem.
de: Es lohnt sich auch noch darauf hinzuweisen, dass der Installer von Debian während des Debootstraps des Basissystems, solange Apt noch nicht verfügbar ist, denselben Mechanismus mit signierten <filename>Release</filename>-Dateien verwendet. Der Installer benutzt sogar dieses Verfahren, um Teile von sich selbst zu überprüfen, die er aus dem Netz gezogen hat. Debian signiert im Moment nicht die <filename>Release</filename>-Dateien auf den CDs. Apt kann aber so eingerichtet werden, dass es immer den Paketen von CDs vertraut, so dass dies nicht ein so großes Problem darstellt.

en: How to tell apt what to trust
de: Wie man Apt sagt, wem es vertrauen soll

en: So the security of the whole system depends on there being a <filename>Release.gpg</filename> file, which signs a <filename>Release</filename> file, and of <command>apt</command> checking that signature using gpg. To check the signature, it has to know the public key of the person who signed the file. These keys are kept in apt's own keyring (<filename>/etc/apt/trusted.gpg</filename>), and managing the keys is where secure apt comes in.
de: Die ganze Sicherheit des Verfahrens beruht also darauf, dass es eine <filename>Release.gpg</filename>-Datei gibt, die eine <filename>Release</filename>-Datei signiert, und dass diese Signatur von <command>apt</command> mit Hilfe von GPG überprüft wird. Dazu muss es den öffentlichen Schlüssel der Person kennen, welche die Datei unterschrieben hat. Diese Schlüssel werden in Apts eigenem Schlüsselbund (<filename>/etc/apt/trusted.gpg</filename>) gespeichert. Bei der Verwaltung dieser Schlüssel kommt Secure Apt ins Spiel.

en: By default, Debian systems come preconfigured with the Debian archive key in the keyring.
de: Standardmäßig befindet sich bei Debian-Systemen der Schlüssel des Debian-Archivs im Schlüsselbund.

en: Here 4F368D5D is the key id, and notice that this key was only valid for a one year period. Debian rotates these keys as a last line of defense against some sort of security breach breaking a key.
de: Im Beispiel ist 4F368D5D die Schlüssel-ID. Beachten Sie, dass dieser Schlüssel nur für ein Jahr gültig ist. Debian tauscht die Schlüssel als letzte Verteidigungslinie gegen Sicherheitsrisiken, die das Knacken eines Schlüssels umfassen, regelmäßig aus.

en: That will make <command>apt</command> trust the official Debian archive, but if you add some other apt repository to <filename>/etc/apt/sources.list</filename>, you'll also have to give <command>apt</command> its key if you want apt to trust it. Once you have the key and have verified it, it's a simple matter of running <command>apt-key add</command> <replaceable>file</replaceable> to add it. Getting the key and verifying it are the trickier parts.
de: Mit dem Schlüssel des Archivs wird <command>apt</command> dem offiziellen Archiv von Debian vertrauen. Wenn Sie aber weitere Paketdepots zu <filename>/etc/apt/sources.list</filename> hinzufügen wollen, müssen Sie Apt Ihre Schlüssel mitteilen, wenn Sie wollen, dass Apt ihnen vertraut. Sobald Sie den Schlüssel haben und ihn überprüft haben, müssen Sie nur <command>apt-key add</command> <replaceable>Datei</replaceable> laufen lassen, um den Schlüssel hinzuzufügen. Der schwierigste Teil dabei ist, den Schlüssel zu bekommen und ihn zu überprüfen.

en: Finding the key for a repository
de: Den Schlüssel eines Paketdepots finden

en: The debian-archive-keyring package is used to distribute keys to <command>apt</command>. Upgrades to this package can add (or remove) gpg keys for the main Debian archive.
de: Mit dem Paket <application>debian-archive-keyring</application> werden Schlüssel für <command>apt</command> bereitgestellt. Aktualisierungen dieses Pakets führen dazu, dass GPG-Schlüssel für das Debian-Hauptarchiv hinzugefügt (oder gelöscht) werden.

en: For other archives, there is not yet a standard location where you can find the key for a given apt repository. There's a rough standard of putting the key up on the web page for the repository or as a file in the repository itself, but no real standard, so you might have to hunt for it.
de: Für andere Archive gibt noch keinen standardisierten Ort, wo sich der Schlüssel für ein Paketdepot befinden soll. Es besteht die grobe Übereinkunft, dass der Schlüssel auf der Webseite des Paketdepots oder im Depot selbst zu finden sein sollte. Wie gesagt ist dies kein echter Standard, so dass Sie den Schlüssel unter Umständen suchen müssen.

en: <command>gpg</command> itself has a standard way to distribute keys, using a keyserver that gpg can download a key from and add it to its keyring. For example:
de: <command>gpg</command> besitzt mit den Schlüsselservern eine standardisierte Möglichkeit, Schlüssel zu verbreiten. Damit kann GPG einen Schlüssel herunterladen und ihn zum Schlüsselbund hinzufügen. Beispiel:

en: 
    $ gpg --keyserver pgpkeys.mit.edu --recv-key 2D230C5F
    gpg: requesting key 2D230C5F from hkp server pgpkeys.mit.edu
    gpg: key 2D230C5F: public key "Debian Archive Automatic Signing Key (2006) &lt;ftpm
    aster@debian.org&gt;" imported
    gpg: Total number processed: 1
    gpg:               imported: 1
de: 
    $ gpg --keyserver pgpkeys.mit.edu --recv-key 2D230C5F
    gpg: requesting key 2D230C5F from hkp server pgpkeys.mit.edu
    gpg: key 2D230C5F: public key "Debian Archive Automatic Signing Key (2006) &lt;ftpm
    aster@debian.org&gt;" imported
    gpg: Anzahl insgesamt bearbeiteter Schlüssel: 1
    gpg:               importiert: 1

en: You can then export that key from your own keyring and feed it to <command>apt-key</command>:
de: Sie können dann den Schlüssel aus Ihrem Schlüsselbund exportieren und ihn an <command>apt-key</command> weiterreichen:

en: 
    $ gpg -a --export 2D230C5F | sudo apt-key add -
    gpg: no ultimately trusted keys found
    OK
de: 
    $ gpg -a --export 2D230C5F | sudo apt-key add -
    gpg: kein uneingeschränkt vertrauenswürdiger Schlüssel 080F67F4 gefunden
    OK

en: The "gpg: no ultimately trusted keys found" warning means that gpg was not configured to ultimately trust a specific key. Trust settings are part of OpenPGPs Web-of-Trust which does not apply here. So there is no problem with this warning. In typical setups the user's own key is ultimately trusted.
de: Die Warnung »gpg: kein uneingeschränkt vertrauenswürdiger Schlüssel 080F67F4 gefunden« bedeutet, dass GPG nicht so konfiguriert wurde, um einem Schlüssel vollständig zu vertrauen. Das Zuweisen von Vertrauensstufen ist Teil des Web-of-Trust von OpenPGP, was hier nicht Gegenstand ist. Daher ist die Warnung unproblematisch. Für gewöhnlich wird dem eignen Schlüssel eines Benutzers vollständig vertraut.

en: Safely adding a key
de: Auf sichere Weise einen Schlüssel hinzufügen

en: It's good to be paranoid in security, but verifying things from here is harder. <command>gpg</command> has the concept of a chain of trust, which can start at someone you're sure of, who signs someone's key, who signs some other key, etc., until you get to the archive key. If you're sufficiently paranoid you'll want to check that your archive key is signed by a key that you can trust, with a trust chain that goes back to someone you know personally. If you want to do this, visit a Debian conference or perhaps a local LUG for a key signing <footnote><para>Not all apt repository keys are signed at all by another key. Maybe the person setting up the repository doesn't have another key, or maybe they don't feel comfortable signing such a role key with their main key. For information on setting up a key for a repository see <xref linkend="check-non-debian-releases" />. </para></footnote>.
de: Es ist gut, in Sicherheitsfragen Vorsicht walten zu lassen. Aber ab hier wird es schwieriger, Dinge zu überprüfen. <command>gpg</command> arbeitet mit dem Konzept der Kette des Vertrauens (chain of trust), die bei jemandem beginnt, dem Sie vertrauen und der einen anderen Schlüssel unterschreibt usw., bis Sie beim Schlüssel des Archivs sind. Wenn Sie vorsichtig sind, wollen Sie nachprüfen, dass Ihr Archivschlüssel von einem Schlüssel unterschrieben wurde, dem Sie vertrauen können, weil seine Kette des Vertrauens zu jemandem zurückgeht, den Sie persönlich kennen. Dazu sollten Sie eine Debian-Konferenz oder eine lokale LUG zum Unterschreiben der Schlüssel besuchen<footnote><para> Nicht alle Schlüssel der Apt-Depots sind überhaupt mit einem anderen Schlüssel unterschrieben. Vielleicht hat derjenige, der das Depot einrichtet, keinen anderen Schlüssel zur Verfügung, oder vielleicht ist es ihm unangenehm, einen Schlüssel mit einer derartig wichtigen Funktion mit seinem Hauptschlüssel zu unterschreiben. Hinweise, wie man einen Schlüssel für ein Depot einrichtet, finden Sie unter <xref linkend="check-non-debian-releases" />. </para></footnote>.

en: If you can't afford this level of paranoia, do whatever feels appropriate to you when adding a new apt source and a new key. Maybe you'll want to mail the person providing the key and verify it, or maybe you're willing to take your chances with downloading it and assuming you got the real thing. The important thing is that by reducing the problem to what archive keys to trust, secure apt lets you be as careful and secure as it suits you to be.
de: Wenn Sie diese Sicherheitsbedenken nicht teilen (können), unternehmen Sie, was auch immer Sie passend finden, wenn Sie eine neue Apt-Quelle oder einen neuen Schlüssel verwenden. Sie könnten demjenigen, der den Schlüssel anbietet, eine Mail schreiben, um den Schlüssel zu überprüfen. Oder Sie vertrauen auf Ihr Glück und gehen davon aus, dass Sie den richten heruntergeladen haben. Das wichtige ist, dass Secure Apt, indem es das Problem darauf reduziert, welchen Archivschlüsseln Sie vertrauen, Sie so vorsichtig und sicher vorgehen lässt, wie es Ihnen passend und notwendig erscheint.

en: Verifying key integrity
de: Die Integrität eines Schlüssels überprüfen

en: 
    $ GET http://ftp-master.debian.org/ziyi_key_2006.asc | gpg --import
    gpg: key 2D230C5F: public key "Debian Archive Automatic Signing Key (2006)
      &lt;ftpmaster&amp;debian.org&gt;" imported
    gpg: Total number processed: 1
    gpg:               imported: 1
    $ gpg --check-sigs --fingerprint 2D230C5F
    pub   1024D/2D230C5F 2006-01-03 [expires: 2007-02-07]
          Key fingerprint = 0847 50FC 01A6 D388 A643  D869 0109 0831 2D23 0C5F
    uid   Debian Archive Automatic Signing Key (2006) &lt;ftpmaster@debian.org&gt;
    sig!3        2D230C5F 2006-01-03  Debian Archive Automatic Signing Key
                                      (2006) &lt;ftpmaster@debian.org&gt;
    sig!         2A4E3EAA 2006-01-03  Anthony Towns &lt;aj@azure.humbug.org.au&gt;
    sig!         4F368D5D 2006-01-03  Debian Archive Automatic Signing Key
                                      (2005) &lt;ftpmaster@debian.org&gt;
    sig!         29982E5A 2006-01-04  Steve Langasek &lt;vorlon@dodds.net&gt;
    sig!         FD6645AB 2006-01-04  Ryan Murray &lt;rmurray@cyberhqz.com&gt;
    sig!         AB2A91F5 2006-01-04  James Troup &lt;james@nocrew.org&gt;
de: 
    &#36; GET http://ftp-master.debian.org/ziyi_key_2006.asc | gpg --import
    gpg: key 2D230C5F: public key "Debian Archive Automatic Signing Key (2006)
      &lt;ftpmaster&amp;debian.org&gt;" imported
    gpg: Total number processed: 1
    gpg:               imported: 1
    $ gpg --check-sigs --fingerprint 2D230C5F
    pub   1024D/2D230C5F 2006-01-03 [expires: 2007-02-07]
          Key fingerprint = 0847 50FC 01A6 D388 A643  D869 0109 0831 2D23 0C5F
    uid   Debian Archive Automatic Signing Key (2006) &lt;ftpmaster@debian.org&gt;
    sig!3        2D230C5F 2006-01-03  Debian Archive Automatic Signing Key
                                      (2006) &lt;ftpmaster@debian.org&gt;
    sig!         2A4E3EAA 2006-01-03  Anthony Towns &lt;aj@azure.humbug.org.au&gt;
    sig!         4F368D5D 2006-01-03  Debian Archive Automatic Signing Key
                                      (2005) &lt;ftpmaster@debian.org&gt;
    sig!         29982E5A 2006-01-04  Steve Langasek &lt;vorlon@dodds.net&gt;
    sig!         FD6645AB 2006-01-04  Ryan Murray &lt;rmurray@cyberhqz.com&gt;
    sig!         AB2A91F5 2006-01-04  James Troup &lt;james@nocrew.org&gt;

en: Note that the key is signed with the previous archive key, so theoretically you can just build on your previous trust.
de: Hinweis: Der aktuelle Schlüssel ist mit dem vorhergehenden Archivschlüssel unterschrieben, so dass Sie theoretisch auf Ihrem alten Vertrauen aufbauen können.

en: Debian archive key yearly rotation
de: Der jährliche Austausch des Archivschlüssels von Debian

en: As mentioned above, the Debian archive signing key is changed each year, in January. Since secure apt is young, we don't have a great deal of experience with changing the key and there are still rough spots.
de: Wie schon erwähnt wird der Schlüssel, mit dem das Debian-Archiv signiert wird, jedes Jahr im Januar ausgetauscht. Da Secure Apt noch jung ist, haben wir noch nicht sehr viel Erfahrung damit und es gibt noch ein paar haarige Stellen.

en: In January 2006, a new key for 2006 was made and the <filename>Release</filename> file began to be signed by it, but to try to avoid breaking systems that had the old 2005 key, the <filename>Release</filename> file was signed by that as well. The intent was that apt would accept one signature or the other depending on the key it had, but apt turned out to be buggy and refused to trust the file unless it had both keys and was able to check both signatures. This was fixed in apt version 0.6.43.1. There was also confusion about how the key was distributed to users who already had systems using secure apt; initially it was uploaded to the web site with no announcement and no real way to verify it and users were forced to download it by hand.
de: Im Januar 2006 wurde ein neuer Schlüssel für 2006 erstellt und die <filename>Release</filename>-Datei wurde damit unterschrieben. Um aber zu vermeiden, dass Systeme, die noch den alten Schlüssel von 2005 verwenden, nicht mehr korrekt arbeiten, wurde die <filename>Release</filename>-Datei auch mit dem alten Schlüssel unterschrieben. Es war geplant, dass Apt je nach dem verfügbaren Schlüssel eine der beiden Unterschriften akzeptieren würde. Aber es zeigte sich ein Fehler in Apt, da es sich weigerte, der Datei zu vertrauen, wenn es nicht beide Schlüssel hatte und somit beide Unterschriften überprüfen konnte. Dies wurde in der Version 0.6.43.1 ausgebessert. Es gab auch Verwirrung darüber, wie der Schlüssel an Benutzer verteilt wird, die bereits Secure Apt auf ihrem System laufen lassen. Am Anfang wurde er auf die Webseite hochgeladen, ohne Ankündigung und ohne eine echte Möglichkeit, ihn zu überprüfen, und die Benutzer mussten ihn per Hand herunterladen.

en: In January 2006, a new key for 2006 was made and the Release file began to be signed by it, but to try to avoid breaking systems that had the old 2005 key, the <filename>Release</filename> file was signed by that as well. In order to prevent confusion on the best distribution mechanism for users who already have systems using secure apt, the debian-archive-keyring package was introduced, which manages apt keyring updates.
de: <!-- SB: English version ambiguous. Check paragraphs from here ...-->

en: Known release checking problems
de: Bekannte Probleme bei der Prüfung der Release-Datei

en: One not so obvious problem is that if your clock is very far off, secure apt will not work. If it's set to a date in the past, such as 1999, apt will fail with an unhelpful message such as this:
de: Ein nicht offensichtliches Problem ist, dass Secure Apt nicht funktioniert, wenn Ihre Uhr sehr verstellt ist. Wenn sie auf ein Datum in der Vergangenheit wie 1999 eingestellt ist, wird Apt mit einer nichts sagenden Ausgabe wie dieser abbrechen:

en: Although <command>apt-key</command> list will make the problem plain:
de: Dagegen macht <command>apt-key</command> das Problem deutlich:

en: If it's set to a date too far in the future, apt will treat the keys as expired.
de: Falls die Uhr nicht zu weit vorgeht, behandelt Apt die Schlüssel als abgelaufen.

en: Another problem you may encouter if using testing or unstable is that if you have not run <command>apt-get update</command> lately and <command>apt-get install</command> a package, apt might complain that it cannot be authenticated (why does it do this?). <command>apt-get update</command> will fix this.
de: Wenn Sie Testing oder Unstable verwenden, gibt es ein Problem, wenn Sie in letzter Zeit nicht <command>apt-get update</command> ausgeführt haben und mit <command>apt-get</command> ein Paket installieren möchten. Apt könnte sich darüber beschweren, dass es nicht authentifiziert werden konnte (Warum passiert das bloß?). <command>apt-get update</command> löst das Problem.

en: Manual per distribution release check
de: Prüfung von Hand

en: In case you want to add now the additional security checks and don't want or cannot run the latest apt version<footnote><para>Either because you are using the stable, <emphasis>sarge</emphasis>, release or an older release or because you don't want to use the latest apt version, although we would really appreciate testing of it.</para></footnote> you can use the script below, provided by Anthony Towns. This script can automatically do some new security checks to allow the user to be sure that the software s/he's downloading matches the software Debian's distributing. This stops Debian developers from hacking into someone's system without the accountability provided by uploading to the main archive, or mirrors mirroring something almost, but not quite like Debian, or mirrors providing out of date copies of unstable with known security problems.
de: Für den Fall, dass Sie nun zusätzliche Sicherheitsprüfungen einführen wollen, aber nicht die neuste Version von apt einsetzen wollen oder können<footnote><para> Entweder weil Sie Stable (<emphasis>Sarge</emphasis>) oder eine ältere Veröffentlichung verwenden, oder weil Sie nicht die neuste Version von Apt einsetzen wollen, obwohl wir das Testen wirklich schätzen würden. </para></footnote>, können Sie das folgende Skript von Anthony Towns benutzen. Dieses Skript führt automatisch neue Sicherheitsüberprüfungen durch, damit ein Benutzer sicher gehen kann, dass die Software, die er herunterlädt, die gleiche ist wie die, die von Debian bereitgestellt wird.  Das verhindert, dass sich Debian-Entwickler in ein fremdes System einhacken können, ohne dass eine Zurechnung und Rückverfolgung möglich wäre, die durch das Hochladen eines Pakets auf das Hauptarchiv gewährleistet werden. Es kann auch verhindern, dass ein Spiegel etwas fast genau abbildet, das aber eben doch nicht ganz wie in Debian, oder dass veraltete Versionen von instabilen Paketen mit bekannten Sicherheitslücken zur Verfügung gestellt werden.

en: This sample code, renamed as <command>apt-check-sigs</command>, should be used in the following way:
de: Dieser Beispielscode, umbenannt nach <command>apt-check sigs</command>, sollte auf die folgende Art benutzt werden:

en: 
    # apt-get update
    # apt-check-sigs
    (...results...)
    # apt-get dist-upgrade
de: 
    # apt-get update
    # apt-check-sigs
    (... Ergebnisse ...)
    # apt-get dist-upgrade

en: First you need to:
de: Zuerst müssen Sie jedoch Folgendes tun:

en: remove any <filename>/etc/apt/sources.list</filename> lines that don't use the normal "dists" structure, or change the script so that it works with them.
de: Entfernen Sie alle Zeilen aus <filename>/etc/apt/sources.list</filename>, die nicht die normale »dists«-Struktur benutzen, oder ändern Sie das Skript, so dass es auch mit denen funktioniert.

en: be prepared to ignore the fact that Debian security updates don't have signed <filename>Release</filename> files, and that <filename>Sources</filename> files don't have appropriate checksums in the <filename>Release</filename> file (yet).
de: Ignorieren Sie die Tatsache, dass Sicherheitsaktualisierungen von Debian keine signierten <filename>Release</filename>-Dateien haben, und das <filename>Sources</filename>-Dateien (noch) keine richtigen Prüfsummen in der <filename>Release</filename>-Datei haben.

en: be prepared to check that the appropriate sources are signed by the appropriate keys.
de: Bereiten Sie sich darauf vor, zu prüfen, dass die richtigen Quellen durch den richtigen Schlüssel signiert wurden.

en: 
    #!/bin/bash
    
    # Copyright (c) 2001 Anthony Towns &lt;ajt@debian.org&gt;
    #
    # This program is free software; you can redistribute it and/or modify
    # it under the terms of the GNU General Public License as published by
    # the Free Software Foundation; either version 2 of the License, or
    # (at your option) any later version.
    #
    # This program is distributed in the hope that it will be useful,
    # but WITHOUT ANY WARRANTY; without even the implied warranty of
    # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    # GNU General Public License for more details.
    
    rm -rf /tmp/apt-release-check
    mkdir /tmp/apt-release-check || exit 1
    cd /tmp/apt-release-check
    
    &gt;OK
    &gt;MISSING
    &gt;NOCHECK
    &gt;BAD
    
    arch=`dpkg --print-installation-architecture`
    
    am_root () {
            [ `id -u` -eq 0 ]
    }
    
    get_md5sumsize () {
            cat "$1" | awk '/^MD5Sum:/,/^SHA1:/' | 
              MYARG="$2" perl -ne '@f = split /\s+/; if ($f[3] eq $ENV{"MYARG"}) {
    print "$f[1] $f[2]\n"; exit(0); }'
    }
    
    checkit () {
            local FILE="$1"
            local LOOKUP="$2"
    
            Y="`get_md5sumsize Release "$LOOKUP"`"
            Y="`echo "$Y" | sed 's/^ *//;s/  */ /g'`"
    
            if [ ! -e "/var/lib/apt/lists/$FILE" ]; then
                    if [ "$Y" = "" ]; then
                            # No file, but not needed anyway
                            echo "OK"
                            return
                    fi
                    echo "$FILE" &gt;&gt;MISSING
                    echo "MISSING $Y"
                    return
            fi
            if [ "$Y" = "" ]; then
                    echo "$FILE" &gt;&gt;NOCHECK
                    echo "NOCHECK"
                    return
            fi
            X="`md5sum &lt; /var/lib/apt/lists/$FILE | cut -d\  -f1` `wc -c &lt; /var/lib
    /apt/lists/$FILE`"
            X="`echo "$X" | sed 's/^ *//;s/  */ /g'`"
            if [ "$X" != "$Y" ]; then
                    echo "$FILE" &gt;&gt;BAD
                    echo "BAD"
                    return
            fi
            echo "$FILE" &gt;&gt;OK
            echo "OK"
    }
    
    echo
    echo "Checking sources in /etc/apt/sources.list:"
    echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
    echo
    (echo "You should take care to ensure that the distributions you're downloading
    "
    echo "are the ones you think you are downloading, and that they are as up to"
    echo "date as you would expect (testing and unstable should be no more than"
    echo "two or three days out of date, stable-updates no more than a few weeks"
    echo "or a month)."
    ) | fmt
    echo
    
    cat /etc/apt/sources.list | 
      sed 's/^ *//' | grep '^[^#]' |
      while read ty url dist comps; do
            if [ "${url%%:*}" = "http" -o "${url%%:*}" = "ftp" ]; then
                    baseurl="${url#*://}"
            else
                    continue
            fi
    
            echo "Source: ${ty} ${url} ${dist} ${comps}"
    
            rm -f Release Release.gpg
            lynx -reload -dump "${url}/dists/${dist}/Release" &gt;/dev/null 2&gt;&amp;1
            wget -q -O Release "${url}/dists/${dist}/Release"
    
            if ! grep -q '^' Release; then
                    echo "  * NO TOP-LEVEL Release FILE"
                    &gt;Release
            else
                    origline=`sed -n 's/^Origin: *//p' Release | head -1`
                    lablline=`sed -n 's/^Label: *//p' Release | head -1`
                    suitline=`sed -n 's/^Suite: *//p' Release | head -1`
                    codeline=`sed -n 's/^Codename: *//p' Release | head -1`
                    dateline=`grep "^Date:" Release | head -1`
                    dscrline=`grep "^Description:" Release | head -1`
                    echo "  o Origin: $origline/$lablline"
                    echo "  o Suite: $suitline/$codeline"
                    echo "  o $dateline"
                    echo "  o $dscrline"
    
                    if [ "${dist%%/*}" != "$suitline" -a "${dist%%/*}" != "$codeline" ]; then
                            echo "  * WARNING: asked for $dist, got $suitline/$codeline"
                    fi
    
                    lynx -reload -dump "${url}/dists/${dist}/Release.gpg" &gt;/dev/null 2&gt;&amp;1
                    wget -q -O Release.gpg "${url}/dists/${dist}/Release.gpg"
    
                    gpgv --status-fd 3 Release.gpg Release 3&gt;&amp;1 &gt;/dev/null 2&gt;&amp;1 | sed -n "s/^\[GNUPG:\] //p" | (okay=0; err=""; while read gpgcode rest; do
                            if [ "$gpgcode" = "GOODSIG" ]; then
                                if [ "$err" != "" ]; then
                                    echo "  * Signed by ${err# } key: ${rest#* }"
                                else
                                    echo "  o Signed by: ${rest#* }"
                                    okay=1
                                fi
                                err=""
                            elif [ "$gpgcode" = "BADSIG" ]; then
                                echo "  * BAD SIGNATURE BY: ${rest#* }"
                                err=""
                            elif [ "$gpgcode" = "ERRSIG" ]; then
                                echo "  * COULDN'T CHECK SIGNATURE BY KEYID: ${rest %% *}"
                                err=""
                            elif [ "$gpgcode" = "SIGREVOKED" ]; then
                                err="$err REVOKED"
                            elif [ "$gpgcode" = "SIGEXPIRED" ]; then
                                err="$err EXPIRED"
                            fi
                        done
                        if [ "$okay" != 1 ]; then
                            echo "  * NO VALID SIGNATURE"
                            &gt;Release
                        fi)
            fi
            okaycomps=""
            for comp in $comps; do
                    if [ "$ty" = "deb" ]; then
                            X=$(checkit "`echo "${baseurl}/dists/${dist}/${comp}/binary-${arch}/Release" | sed 's,//*,_,g'`" "${comp}/binary-${arch}/Release")
                            Y=$(checkit "`echo "${baseurl}/dists/${dist}/${comp}/binary-${arch}/Packages" | sed 's,//*,_,g'`" "${comp}/binary-${arch}/Packages")
                            if [ "$X $Y" = "OK OK" ]; then
                                    okaycomps="$okaycomps $comp"
                            else
                                    echo "  * PROBLEMS WITH $comp ($X, $Y)"
                            fi
                    elif [ "$ty" = "deb-src" ]; then
                            X=$(checkit "`echo "${baseurl}/dists/${dist}/${comp}/source/Release" | sed 's,//*,_,g'`" "${comp}/source/Release")
                            Y=$(checkit "`echo "${baseurl}/dists/${dist}/${comp}/source/Sources" | sed 's,//*,_,g'`" "${comp}/source/Sources")
                            if [ "$X $Y" = "OK OK" ]; then
                                    okaycomps="$okaycomps $comp"
                            else
                                    echo "  * PROBLEMS WITH component $comp ($X, $Y)"
                            fi
                    fi
            done
            [ "$okaycomps" = "" ] || echo "  o Okay:$okaycomps"
            echo
      done
    
    echo "Results"
    echo "~~~~~~~"
    echo
    
    allokay=true
    
    cd /tmp/apt-release-check
    diff &lt;(cat BAD MISSING NOCHECK OK | sort) &lt;(cd /var/lib/apt/lists &amp;&amp; find . -type f -maxdepth 1 | sed 's,^\./,,g' | grep '_' | sort) | sed -n 's/^&gt; //p' &gt;UNVALIDATED
    
    cd /tmp/apt-release-check
    if grep -q ^ UNVALIDATED; then
        allokay=false
        (echo "The following files in /var/lib/apt/lists have not been validated."
        echo "This could turn out to be a harmless indication that this script"
        echo "is buggy or out of date, or it could let trojaned packages get onto"
        echo "your system."
        ) | fmt
        echo
        sed 's/^/    /' &lt; UNVALIDATED
        echo
    fi
    
    if grep -q ^ BAD; then
        allokay=false
        (echo "The contents of the following files in /var/lib/apt/lists does not"
        echo "match what was expected. This may mean these sources are out of date,"
        echo "that the archive is having problems, or that someone is actively"
        echo "using your mirror to distribute trojans."
        if am_root; then 
            echo "The files have been renamed to have the extension .FAILED and"
            echo "will be ignored by apt."
            cat BAD | while read a; do
                mv /var/lib/apt/lists/$a /var/lib/apt/lists/${a}.FAILED
            done
        fi) | fmt
        echo
        sed 's/^/    /' &lt; BAD
        echo
    fi
    
    if grep -q ^ MISSING; then
        allokay=false
        (echo "The following files from /var/lib/apt/lists were missing. This"
        echo "may cause you to miss out on updates to some vulnerable packages."
        ) | fmt
        echo
        sed 's/^/    /' &gt; MISSING
        echo
    fi
    
    if grep -q ^ NOCHECK; then
        allokay=false
        (echo "The contents of the following files in /var/lib/apt/lists could not"
        echo "be validated due to the lack of a signed Release file, or the lack"
        echo "of an appropriate entry in a signed Release file. This probably"
        echo "means that the maintainers of these sources are slack, but may mean"
        echo "these sources are being actively used to distribute trojans."
        if am_root; then 
            echo "The files have been renamed to have the extension .FAILED and"
            echo "will be ignored by apt."
            cat NOCHECK | while read a; do
                mv /var/lib/apt/lists/$a /var/lib/apt/lists/${a}.FAILED
            done
        fi) | fmt
        echo
        sed 's/^/    /' &gt; NOCHECK
        echo
    fi
    
    if $allokay; then
        echo 'Everything seems okay!'
        echo
    fi
    
    rm -rf /tmp/apt-release-check
de: 
    #!/bin/bash
    
    #!/bin/bash
    
    # Copyright (c) 2001 Anthony Towns &lt;ajt@debian.org&gt;
    #
    # This program is free software; you can redistribute it and/or modify
    # it under the terms of the GNU General Public License as published by
    # the Free Software Foundation; either version 2 of the License, or
    # (at your option) any later version.
    #
    # This program is distributed in the hope that it will be useful,
    # but WITHOUT ANY WARRANTY; without even the implied warranty of
    # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    # GNU General Public License for more details.
    
    rm -rf /tmp/apt-release-check
    mkdir /tmp/apt-release-check || exit 1
    cd /tmp/apt-release-check
    
    &gt;OK
    &gt;MISSING
    &gt;NOCHECK
    &gt;BAD
    
    arch=`dpkg --print-installation-architecture`
    
    am_root () {
            [ `id -u` -eq 0 ]
    }
    
    get_md5sumsize () {
            cat "$1" | awk '/^MD5Sum:/,/^SHA1:/' | 
              MYARG="$2" perl -ne '@f = split /\s+/; if ($f[3] eq $ENV{"MYARG"}) {
    print "$f[1] $f[2]\n"; exit(0); }'
    }
    
    checkit () {
            local FILE="$1"
            local LOOKUP="$2"
    
            Y="`get_md5sumsize Release "$LOOKUP"`"
            Y="`echo "$Y" | sed 's/^ *//;s/  */ /g'`"
    
            if [ ! -e "/var/lib/apt/lists/$FILE" ]; then
                    if [ "$Y" = "" ]; then
                            # No file, but not needed anyway
                            echo "OK"
                            return
                    fi
                    echo "$FILE" &gt;&gt;MISSING
                    echo "MISSING $Y"
                    return
            fi
            if [ "$Y" = "" ]; then
                    echo "$FILE" &gt;&gt;NOCHECK
                    echo "NOCHECK"
                    return
            fi
            X="`md5sum &lt; /var/lib/apt/lists/$FILE | cut -d\  -f1` `wc -c &lt; /var/lib
    /apt/lists/$FILE`"
            X="`echo "$X" | sed 's/^ *//;s/  */ /g'`"
            if [ "$X" != "$Y" ]; then
                    echo "$FILE" &gt;&gt;BAD
                    echo "BAD"
                    return
            fi
            echo "$FILE" &gt;&gt;OK
            echo "OK"
    }
    
    echo
    echo "Checking sources in /etc/apt/sources.list:"
    echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
    echo
    (echo "You should take care to ensure that the distributions you're downloading
    "
    echo "are the ones you think you are downloading, and that they are as up to"
    echo "date as you would expect (testing and unstable should be no more than"
    echo "two or three days out of date, stable-updates no more than a few weeks"
    echo "or a month)."
    ) | fmt
    echo
    
    cat /etc/apt/sources.list | 
      sed 's/^ *//' | grep '^[^#]' |
      while read ty url dist comps; do
            if [ "${url%%:*}" = "http" -o "${url%%:*}" = "ftp" ]; then
                    baseurl="${url#*://}"
            else
                    continue
            fi
    
            echo "Source: ${ty} ${url} ${dist} ${comps}"
    
            rm -f Release Release.gpg
            lynx -reload -dump "${url}/dists/${dist}/Release" &gt;/dev/null 2&gt;&amp;1
            wget -q -O Release "${url}/dists/${dist}/Release"
    
            if ! grep -q '^' Release; then
                    echo "  * NO TOP-LEVEL Release FILE"
                    &gt;Release
            else
                    origline=`sed -n 's/^Origin: *//p' Release | head -1`
                    lablline=`sed -n 's/^Label: *//p' Release | head -1`
                    suitline=`sed -n 's/^Suite: *//p' Release | head -1`
                    codeline=`sed -n 's/^Codename: *//p' Release | head -1`
                    dateline=`grep "^Date:" Release | head -1`
                    dscrline=`grep "^Description:" Release | head -1`
                    echo "  o Origin: $origline/$lablline"
                    echo "  o Suite: $suitline/$codeline"
                    echo "  o $dateline"
                    echo "  o $dscrline"
    
                    if [ "${dist%%/*}" != "$suitline" -a "${dist%%/*}" != "$codeline" ]; then
                            echo "  * WARNING: asked for $dist, got $suitline/$codeline"
                    fi
    
                    lynx -reload -dump "${url}/dists/${dist}/Release.gpg" &gt;/dev/null 2&gt;&amp;1
                    wget -q -O Release.gpg "${url}/dists/${dist}/Release.gpg"
    
                    gpgv --status-fd 3 Release.gpg Release 3&gt;&amp;1 &gt;/dev/null 2&gt;&amp;1 | sed -n "s/^\[GNUPG:\] //p" | (okay=0; err=""; while read gpgcode rest; do
                            if [ "$gpgcode" = "GOODSIG" ]; then
                                if [ "$err" != "" ]; then
                                    echo "  * Signed by ${err# } key: ${rest#* }"
                                else
                                    echo "  o Signed by: ${rest#* }"
                                    okay=1
                                fi
                                err=""
                            elif [ "$gpgcode" = "BADSIG" ]; then
                                echo "  * BAD SIGNATURE BY: ${rest#* }"
                                err=""
                            elif [ "$gpgcode" = "ERRSIG" ]; then
                                echo "  * COULDN'T CHECK SIGNATURE BY KEYID: ${rest %% *}"
                                err=""
                            elif [ "$gpgcode" = "SIGREVOKED" ]; then
                                err="$err REVOKED"
                            elif [ "$gpgcode" = "SIGEXPIRED" ]; then
                                err="$err EXPIRED"
                            fi
                        done
                        if [ "$okay" != 1 ]; then
                            echo "  * NO VALID SIGNATURE"
                            &gt;Release
                        fi)
            fi
            okaycomps=""
            for comp in $comps; do
                    if [ "$ty" = "deb" ]; then
                            X=$(checkit "`echo "${baseurl}/dists/${dist}/${comp}/binary-${arch}/Release" | sed 's,//*,_,g'`" "${comp}/binary-${arch}/Release")
                            Y=$(checkit "`echo "${baseurl}/dists/${dist}/${comp}/binary-${arch}/Packages" | sed 's,//*,_,g'`" "${comp}/binary-${arch}/Packages")
                            if [ "$X $Y" = "OK OK" ]; then
                                    okaycomps="$okaycomps $comp"
                            else
                                    echo "  * PROBLEMS WITH $comp ($X, $Y)"
                            fi
                    elif [ "$ty" = "deb-src" ]; then
                            X=$(checkit "`echo "${baseurl}/dists/${dist}/${comp}/source/Release" | sed 's,//*,_,g'`" "${comp}/source/Release")
                            Y=$(checkit "`echo "${baseurl}/dists/${dist}/${comp}/source/Sources" | sed 's,//*,_,g'`" "${comp}/source/Sources")
                            if [ "$X $Y" = "OK OK" ]; then
                                    okaycomps="$okaycomps $comp"
                            else
                                    echo "  * PROBLEMS WITH component $comp ($X, $Y)"
                            fi
                    fi
            done
            [ "$okaycomps" = "" ] || echo "  o Okay:$okaycomps"
            echo
      done
    
    echo "Results"
    echo "~~~~~~~"
    echo
    
    allokay=true
    
    cd /tmp/apt-release-check
    diff &lt;(cat BAD MISSING NOCHECK OK | sort) &lt;(cd /var/lib/apt/lists &amp;&amp; find . -type f -maxdepth 1 | sed 's,^\./,,g' | grep '_' | sort) | sed -n 's/^&gt; //p' &gt;UNVALIDATED
    
    cd /tmp/apt-release-check
    if grep -q ^ UNVALIDATED; then
        allokay=false
        (echo "The following files in /var/lib/apt/lists have not been validated."
        echo "This could turn out to be a harmless indication that this script"
        echo "is buggy or out of date, or it could let trojaned packages get onto"
        echo "your system."
        ) | fmt
        echo
        sed 's/^/    /' &lt; UNVALIDATED
        echo
    fi
    
    if grep -q ^ BAD; then
        allokay=false
        (echo "The contents of the following files in /var/lib/apt/lists does not"
        echo "match what was expected. This may mean these sources are out of date,"
        echo "that the archive is having problems, or that someone is actively"
        echo "using your mirror to distribute trojans."
        if am_root; then 
            echo "The files have been renamed to have the extension .FAILED and"
            echo "will be ignored by apt."
            cat BAD | while read a; do
                mv /var/lib/apt/lists/$a /var/lib/apt/lists/${a}.FAILED
            done
        fi) | fmt
        echo
        sed 's/^/    /' &lt; BAD
        echo
    fi
    
    if grep -q ^ MISSING; then
        allokay=false
        (echo "The following files from /var/lib/apt/lists were missing. This"
        echo "may cause you to miss out on updates to some vulnerable packages."
        ) | fmt
        echo
        sed 's/^/    /' &gt; MISSING
        echo
    fi
    
    if grep -q ^ NOCHECK; then
        allokay=false
        (echo "The contents of the following files in /var/lib/apt/lists could not"
        echo "be validated due to the lack of a signed Release file, or the lack"
        echo "of an appropriate entry in a signed Release file. This probably"
        echo "means that the maintainers of these sources are slack, but may mean"
        echo "these sources are being actively used to distribute trojans."
        if am_root; then 
            echo "The files have been renamed to have the extension .FAILED and"
            echo "will be ignored by apt."
            cat NOCHECK | while read a; do
                mv /var/lib/apt/lists/$a /var/lib/apt/lists/${a}.FAILED
            done
        fi) | fmt
        echo
        sed 's/^/    /' &gt; NOCHECK
        echo
    fi
    
    if $allokay; then
        echo 'Everything seems okay!'
        echo
    fi
    
    rm -rf /tmp/apt-release-check

en: You might need to apply the following patch for <emphasis>sid</emphasis> since <command>md5sum</command> adds an '-' after the sum when the input is stdin:
de: Sie müssen vielleicht bei <emphasis>Sid</emphasis> diesen Patch verwenden, da <command>md5sum</command> ein »-« an die Summe anfügt, wenn die Ausgabe auf stdin erfolgt:

en: Release check of non Debian sources
de: Prüfung der Release-Datei von Debian-fremden Quellen

en: Notice that, when using the latest apt version (with <emphasis>secure apt</emphasis>) no extra effort should be required on your part unless you use non-Debian sources, in which case an extra confirmation step will be required by apt-get. This is avoided by providing <filename>Release</filename> and <filename>Release.gpg</filename> files in the non-Debian sources. The <filename>Release</filename> file can be generated with <command>apt-ftparchive</command> (available in <package>apt-utils</package> 0.5.0 and later), the <filename>Release.gpg</filename> is just a detached signature. To generate both follow this simple procedure:
de: Beachten Sie, dass, wenn Sie die neuste Version von Apt (mit <emphasis>Secure Apt</emphasis>) einsetzen, kein zusätzlicher Aufwand auf Ihrer Seite notwendig sein sollte, wenn Sie keine Debian-fremden Quellen verwenden. Anderenfalls erfordert <command>apt-get</command> eine zusätzliche Bestätigung. Dies wird verhindert, wenn <filename>Release</filename>- und <filename>Release.gpg</filename>-Dateien in den Debian-fremden Quellen zur Verfügung stehen. Die <filename>Release</filename>-Datei kann mit <command>apt-ftparchive</command> (ist in <application>apt-utils</application> 0.5.0 und später enthalten) erstellt werden, die <filename>Release.gpg</filename> ist nur die abgetrennte Signatur. Beide können mit folgender einfacher Prozedur erstellt werden:

en: 
    $ rm -f dists/unstable/Release
    $ apt-ftparchive release dists/unstable &gt; dists/unstable/Release
    $ gpg --sign -ba -o dists/unstable/Release.gpg dists/unstable/Release
de: 
    $ rm -f dists/unstable/Release
    $ apt-ftparchive release dists/unstable > dists/unstable/Release
    $ gpg --sign -ba -o dists/unstable/Release.gpg dists/unstable/Release

en: Alternative per-package signing scheme
de: Alternativer Entwurf zur Einzelsignierung von Paketen

en: The additional scheme of signing each and every packages allows packages to be checked when they are no longer referenced by an existing <filename>Packages</filename> file, and also third-party packages where no <filename>Packages</filename> ever existed for them can be also used in Debian but will not be default scheme.
de: Dieser zusätzliche Entwurf, jedes Paket einzeln zu signieren, erlaubt es, Pakete zu prüfen, selbst wenn sie nicht mehr in irgendeiner <filename>Packages</filename>-Datei erwähnt werden. Und so können auch Pakete von Dritten, für die es nie eine <filename>Packages</filename>-Datei gab, unter Debian installiert werden. Dies wird aber kein Standard werden.

en: This package signing scheme can be implemented using <package>debsig-verify</package> and <package>debsigs</package>. These two packages can sign and verify embedded signatures in the .deb itself. Debian already has the capability to do this now, but there is no feature plan to implement the policy or other tools since the archive signing scheme is prefered. These tools are available for users and archive administrators that would rather use this scheme instead.
de: Dieser Entwurf zur Paketsignierung kann mit <application>debsig-verify</application> und <application>debsigs</application> umgesetzt werden. Diese beiden Pakete können in einer .deb-Datei eingebettete Unterschriften erstellen und prüfen. Debian hat bereits jetzt die Möglichkeiten, dies zu tun. Aber es gibt keine Planung, dieses Regelwerk oder ähnliche Werkzeuge umzusetzen, da nunmehr das Schema mit der Signierung des Archivs bevorzugt wird. Die Werkzeuge werden dennoch für Benutzer und Administratoren von Archiven zur Verfügung gestellt, wenn sie diese Vorgehensweise bevorzugen.

en: NOTE: Currently <filename>/etc/dpkg/dpkg.cfg</filename> ships with "no-debsig" as per default.
de: HINWEIS: Derzeit wird <filename>/etc/dpkg/dpkg.cfg</filename> standardmäßig mit der Option »no-debsig« ausgeliefert.

en: NOTE2: Signatures from developers are currently stripped when they enter off the package archive since the currently preferred method is release checks as described previously.
de: HINWEIS 2: Unterschriften von Entwicklern werden im Moment entfernt, wenn sie in das Paketarchiv gelangen, da die derzeit vorzugswürdige Methode die Überprüfung der Release-Datei ist, wie es oben beschrieben wurde.
