Hello,
I have recently started giving training courses for OpenPGP / GnuPG at the
Berlin Linux User Group and one of the participants of the next course asked
me whether your distro (which, I have to admit, I didn't know before) was
suitable as a "secure boot medium". That took me to your website. And I really
liked the amount of information you provide for the problem how to verify the
downloaded files. Thus I made the German translation of the page. I have to
admit that I haven't used that PO editor (this was my first translation) but
just replaced the text. I hope this does not cause any problems.
I do not know how to change the Wikipedia links to the German Wikipedia. It
probably makes sense to not just link to WP GnuPG but also to the articles for
OpenPGP and Web of Trust:
http://de.wikipedia.org/wiki/OpenPGP
http://de.wikipedia.org/wiki/GnuPG
http://de.wikipedia.org/wiki/Web_of_Trust
I have not just written relevant parts of those German articles but I also
have one of the most extensive German OpenPGP/GnuPG explanations on my web
site. As it makes sense to offer German resources on a German translated page
I have added a link to my page.
Just in case: I am currently looking for people (not necessarily German
speaking) who are interested in planning and improving training courses.
I have some remarks about the content of the page I translated, too:
1) "You're trusting Alice's key"
That's a common problem with WoT explanations: no clear distinction of
ownertrust and validity. It is two quite different things to either trust in
the validity of a key or trust in the quality of its certifications
(ownertrust). Usually you don't know how the certifiers in a trust path assess
the ownertrust of the keys they certify. The endpoint of the trust path has to
give ownertrust to all keys (except for the last) in order to make the trust
path valid.
2) "You could try to search for them in the Debian keyring by their key ID"
"If this signature corresponds to a key in the Debian keyring"
Not a great plan. I suggest this sequence of commands (in bash):
# write the long ID of all signatures in a file
gpg --with-colons --list-sigs 0x1202821CBE2CD9C1 |
awk -F: '$1=="sig" && $5!="1202821CBE2CD9C1" { print $5 }' |
sort --unique > sigs.txt
# write all long IDs from a keyring to a file
gpg --no-default-keyring --keyring /usr/share/keyrings/debian-keyring.gpg \
--with-colons --list-keys | awk -F: '$1=="pub" { print $5 }' |
sort --unique > keyring.txt
# write long IDs of the keys from the keyring which have signed the key
# to a file
sort keyring.txt sigs.txt | uniq --repeated > matches.txt
# print lines with the long ID and its primary UID (for easier selection)
gpg --with-colon --list-keys $(<matches.txt) |
awk -F: '$1=="pub" { firstuid=1;printf "%s ",$5;next; };'\
' firstuid==1 && $1=="uid" { firstuid=0;print $10;next; }'
After that your
gpg --keyring=/usr/share/keyrings/debian-keyring.gpg \
--export CCD2ED94D21739E9 | gpg --import
can be improved to
gpg --keyring=/usr/share/keyrings/debian-keyring.gpg \
--export $(<matches.txt) | gpg --import
if the user wants to import all usable keys.
Hauke
--
☺
http://www.hauke-laging.de/ (privat)
Informationen zur IT-Sicherheit:
allgemein: http://www.hauke-laging.de/sicherheit/
OpenPGP: http://www.hauke-laging.de/sicherheit/openpgp.html
PGP: 7D82 FB9F D25A 2CE4 5241 6C37 BF4B 8EEF 1A57 1DF5 (seit 2012-11-04)
# SOME DESCRIPTIVE TITLE
# Copyright (C) YEAR Free Software Foundation, Inc.
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"POT-Creation-Date: 2012-09-19 13:04+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@???>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#. type: Plain text
#, no-wrap
msgid "[[!meta title=\"Tails' Signaturschlüssel verifizieren\"]]\n"
msgstr ""
#. type: Plain text
msgid ""
"Wir zeigen Ihnen drei Möglichkeiten, von der einfachsten zur sichersten, "
"keine davon ist eine perfekte Lösung. Probieren Sie sie aus, "
"entsprechend Ihren Möglichkeiten und technischen Fähigkeiten."
msgstr ""
#. type: Plain text
msgid ""
"Beachten Sie, dass alle Versionen von Tails mit demselben Schlüssel signiert "
"werden, so dass Sie den Schlüssel nicht jedesmal erneut verifizieren müssen. "
"Das Vertrauen, das Sie im Laufe der Zeit aufbauen, hat Bestand. Sie müssen "
"allerdings jedes einzelne ISO-Image, das Sie runterladen, verifizieren!"
msgstr ""
#. type: Title #
#, no-wrap
msgid "Abgleich mehrerer Downloads des Tails-Signaturschlüssels"
msgstr ""
#. type: Plain text
msgid ""
"Eine einfache Möglichkeit, Vertrauen in die Korrektheit des Tails-Signaturschlüssels "
"zu schaffen, ist, ihn mehrfach herunterzuladen, zu unterschiedlichen Zeiten, "
"von unterschiedlichen Orten, unterschiedlichen Computern, möglicherweise sogar "
"aus unterschiedlichen Ländern."
msgstr ""
#. type: Plain text
msgid ""
"Sie könnten den Schlüssel jedesmal unter einem anderen Namen im selben Verzeichnis "
"auf einem USB-Stick speichern und in einer Shell das folgende Kommando ausführen, "
"um zu prüfen, ob alle Dateien identisch sind:"
msgstr ""
#. type: Plain text
#, no-wrap
msgid ""
" cd [Ihr Download-Verzeichnis]\n"
" sha256sum tails-signing*.key\n"
msgstr ""
#. type: Plain text
msgid "Das Kommando würde eine Ausgabe dieser Art produzieren:"
msgstr ""
#. type: Plain text
#, no-wrap
msgid ""
" 79f1663dfb5609aaa5021221e01ff38c7d3d5bbd8126710ce385f6009cd501f7 tails-signing-desktop.key\n"
" 79f1663dfb5609aaa5021221e01ff38c7d3d5bbd8126710ce385f6009cd501f7 tails-signing-laptop.key\n"
" 79f1663dfb5609aaa5021221e01ff38c7d3d5bbd8126710ce385f6009cd501f7 tails-signing-library.key\n"
" 79f1663dfb5609aaa5021221e01ff38c7d3d5bbd8126710ce385f6009cd501f7 tails-signing-seattle.key\n"
msgstr ""
#. type: Plain text
msgid ""
"Sie müssten dann prüfen, ob die Prüfsummen in der ersten Spalte identisch "
"sind, was bedeutet, dass die Schlüssel identisch sind."
msgstr ""
#. type: Plain text
msgid ""
"Sie können mit diesem Verfahren die von Ihnen heruntergeladenen Schlüssel auch "
"mit denjenigen Schlüsseln vergleichen, die Ihre Freunde oder andere Personen "
"Ihres Vertrauens heruntergeladen haben."
msgstr ""
#. type: Title #
#, no-wrap
msgid "Verwendung des OpenPGP Web of Trust"
msgstr ""
#. type: Plain text
msgid ""
"Wenn Sie besonders vorsichtig sein möchten und Tails' Signaturschlüssel in "
"verlässlicherer Weise verifizieren wollen, als die, die das normale HTTPS "
"bietet, benötigen Sie das OpenPGP Web of Trust."
msgstr ""
#. type: Plain text
msgid ""
"Eins der inhärenten Probleme des normalen HTTPS ist, dass das Vertrauen, das "
"wir üblicherweise einer Webseite entgegenbringen, von Certificate Authorities "
"(Zertifizierungsstellen) bestimmt wird: Einer hierarchischen und geschlossenen "
"Gruppe von Firmen und Regierungseinrichtungen, die von den Browserherstellern "
"festgelegt wird. Dieses Vertrauensmodell wird schon lange kritisiert und hat "
"sich schon mehrfach als anfällig gegenüber Angriffen erwiesen "
"[[wie auf unserer Warnungsseite erklärt|about/warning#man-in-the-middle]]."
msgstr ""
#. type: Plain text
msgid ""
"Wir glauben dagegen, dass die User das letzte Wort haben sollten, wenn es darum "
"geht, einer Website zu vertrauen, und dass die Festlegung dieses Vertrauens auf "
"der Basis menschlicher Interaktion erfolgen sollte."
msgstr ""
#. type: Plain text
msgid ""
"Das OpenPGP [[!wikipedia Web_of_Trust desc=\"Web of Trust\"]] ist ein "
"dezentralisiertes Vertrauensmodell, das auf OpenPGP-Schlüsseln basiert. "
"Sehen wir uns ein Beispiel an:"
msgstr ""
#. type: Plain text
#, no-wrap
msgid ""
"*Sie sind mit Alice befreundet und vertrauen ihrer Handhabung von OpenPGP-Schlüsseln.\n"
"Sie betrachten den Schlüssel von Alice als gültig.*\n"
msgstr ""
#. type: Plain text
#, no-wrap
msgid ""
"*Alice traf Bob, einen Tails-Entwickler, auf einer Konferenz und zertifizierte\n"
"Bobs Schlüssel. Alice betrachtet Bobs Schlüssel als gültig.*\n"
msgstr ""
#. type: Plain text
#, no-wrap
msgid ""
"*Bob ist ein Tails-Entwickler, der direkten Zugriff auf den Tails-Signaturschlüssel "
"hat. Bob betrachtet den Tails-Signaturschlüssel als gültig.*\n"
msgstr ""
#. type: Plain text
msgid ""
"Dieses Szenario erzeugt einen Vertrauenspfad von Ihnen zum Tails-Signaturschlüssel, "
"der Ihnen erlauben könnte, dem Schlüssel zu vertrauen, ohne von "
"Zertifizierungsstellen abhängig zu sein."
msgstr ""
#. type: Plain text
msgid ""
"Dieses Vertrauensmodell ist nicht perfekt und erfordert sowohl Vorsicht "
"als auch eine intelligente Kontrolle durch die Benutzer. Die technischen "
"Details der Erzeugung, Verwaltung und Vertrauenszuweisung von OpenPGP-Schlüsseln "
"gehen über den Rahmen dieses Dokuments hinaus."
msgstr ""
#. type: Plain text
msgid ""
"Wir erkennen außerdem an, dass nicht jeder in der Lage ist, einen guten "
"Vertrauenspfad zum Tails-Signaturschlüssel aufzubauen, da dies auf einem "
"Netzwerk direkter menschlicher Beziehungen und dem Wissen über ziemlich "
"komplexe Werkzeuge wie OpenPGP basiert."
msgstr ""
#. type: Title #
#, no-wrap
msgid "Verifizierung des Tails-Signaturschlüssels mittels Debians Keyring"
msgstr ""
#. type: Plain text
msgid ""
"In dem genannten Szenario, dass sie den Tails-Entwickler Bob trifft, hätte "
"Alice mit ihrem Schlüssel eine neue Signatur für den Tails-Signaturschlüssel "
"erzeugen können, um ihr Vertrauen in die Gültigkeit dieses Schlüssels zu "
"dokumentieren, und diese neue Signatur veröffentlichen können. Tails' "
"Signaturschlüssel käme dann mit einer Signatur von Alice."
msgstr ""
#. type: Plain text
#, no-wrap
msgid ""
"Tails' Signaturschlüssel wurde schon von den Schlüsseln mehrerer offizieller\n"
"Debian-Entwickler, also des Betriebssystems, auf dem Tails basiert, signiert.\n"
"Debian nutzt vielfach OpenPGP; Sie können die Schlüssel aller Debian-Entwickler\n"
"sicher herunterladen, indem Sie das Paket <code>debian-keyring</code> installieren.\n"
"Danach können Sie die Signaturen dieser Entwickler für den Tails-Signaturschlüssel\n"
"verifizieren.\n"
msgstr ""
#. type: Plain text
msgid "Den Debian-Keyring können Sie folgendermaßen herunterladen:"
msgstr ""
#. type: Plain text
#, no-wrap
msgid " sudo apt-get install debian-keyring\n"
msgstr ""
#. type: Plain text
msgid ""
"Die Liste der Signaturen für den Tails-Signaturschlüssel können Sie sich "
"auf diese Weise anzeigen lassen:"
msgstr ""
#. type: Plain text
#, no-wrap
msgid " gpg --keyid-format long --list-sigs 1202821CBE2CD9C1\n"
msgstr ""
#. type: Plain text
msgid "Das Ergebnis sieht etwa so aus:"
msgstr ""
#. type: Plain text
#, no-wrap
msgid ""
" pub 4096R/1202821CBE2CD9C1 2010-10-07 [expires: 2012-10-06]\n"
" uid Tails developers (signing key) <tails@???>\n"
" sig 3 1202821CBE2CD9C1 2011-04-16 Tails developers (signing key) <tails@???>\n"
" sig BACE15D2A57498FF 2011-04-16 [User ID not found]\n"
" sig CCD2ED94D21739E9 2011-06-12 [User ID not found]\n"
" uid T(A)ILS developers (signing key) <amnesia@???>\n"
" sig 3 1202821CBE2CD9C1 2010-10-07 Tails developers (signing key) <tails@???>\n"
" sig BACE15D2A57498FF 2010-10-07 [User ID not found]\n"
" sig 8CBF9A322861A790 2010-12-24 [User ID not found]\n"
" sig 7EF27D76B2177E1F 2010-12-27 [User ID not found]\n"
" sig CCD2ED94D21739E9 2010-12-29 [User ID not found]\n"
" sig AC0EC35285821C42 2011-03-22 [User ID not found]\n"
" sig C2DEE7F336042734 2010-10-24 [User ID not found]\n"
msgstr ""
#. type: Plain text
msgid ""
"The lines ending with '[User ID not found]' are signatures made by keys you "
"still don't have in your keyring. You could try to search for them in the "
"Debian keyring by their key ID: the 16 digit code between the 'sig' tag and "
"the date. You could for example do:"
"Die Zeilen, die auf '[User ID not found]' enden, stehen für Signaturen von "
"Schlüsseln, die Sie nicht in Ihrem Keyring haben. Sie können sie in Debians "
"Keyring suchen, mit Hilfe ihrer long key ID, dem 16stelligen Code vor dem "
"Datum. Etwa so:"
msgstr ""
#. type: Plain text
#, no-wrap
msgid " gpg --keyring=/usr/share/keyrings/debian-keyring.gpg --list-keys CCD2ED94D21739E9\n"
msgstr ""
#. type: Plain text
msgid ""
"Wenn diese long ID zu einem Schlüssel im Debian-Keyring gehört, bekommen "
"Sie eine Ausgabe dieser Art:"
msgstr ""
#. type: Plain text
#, no-wrap
msgid ""
" pub 4096R/CCD2ED94D21739E9 2007-06-02 [expires: 2012-05-31]\n"
" uid Daniel Kahn Gillmor <dkg@???>\n"
" uid Daniel Kahn Gillmor <dkg@???>\n"
" uid [jpeg image of size 3515]\n"
" uid Daniel Kahn Gillmor <dkg@???>\n"
" sub 4096R/C61BD3EC21484CFF 2007-06-02 [expires: 2012-05-31]\n"
" sub 2048R/125868EA4BFA08E4 2008-06-19 [expires: 2011-05-31]\n"
msgstr ""
#. type: Plain text
msgid "Sie können dann folgendermaßen diesen Schlüssel in Ihren eigenen Keyring importieren:"
msgstr ""
#. type: Plain text
#, no-wrap
msgid " gpg --keyring=/usr/share/keyrings/debian-keyring.gpg --export CCD2ED94D21739E9 | gpg --import\n"
msgstr ""
#. type: Plain text
msgid ""
"Jetzt können Sie versuchen die Signatur dieses Schlüssels zu verifizieren:"
msgstr ""
#. type: Plain text
#, no-wrap
msgid " gpg --keyid-format long --check-sigs 1202821CBE2CD9C1\n"
msgstr ""
#. type: Plain text
msgid ""
"In der Ausgabe wird das Ergebnis der Signaturüberprüfung mittels des Zeichens "
"angezeigt, das direkt auf das \"sig\" folgt. Ein \"!\" zeigt eine erfolgreiche "
"Überprüfung an, ein \"-\" dagegen eine fehlerhafte Signatur; ein \"%\" wird "
"ausgegeben, wenn es bei der Überprüfung zu einem, Fehler kam (z.B. wegen "
"eines nicht unterstützten Algorithmus). Die folgende beispielhafte Ausgabe "
"zeigt an, dass die Signatur von Daniel Kahn Gillmor für Tails' Signaturschlüssel "
"verifiziert werden konnte:"
msgstr ""
#. type: Plain text
#, no-wrap
msgid ""
" pub 4096R/1202821CBE2CD9C1 2010-10-07 [expires: 2012-10-06]\n"
" uid Tails developers (signing key) <tails@???>\n"
" sig!3 1202821CBE2CD9C1 2011-04-16 Tails developers (signing key) <tails@???>\n"
" sig! CCD2ED94D21739E9 2011-06-12 Daniel Kahn Gillmor <dkg@???>\n"
" uid T(A)ILS developers (signing key) <amnesia@???>\n"
" sig!3 1202821CBE2CD9C1 2010-10-07 Tails developers (signing key) <tails@???>\n"
" sig! CCD2ED94D21739E9 2010-12-29 Daniel Kahn Gillmor <dkg@???>\n"
msgstr ""
#. type: Plain text
#, no-wrap
msgid ""
" pub 4096R/1202821CBE2CD9C1 2010-10-07 [expires: 2012-10-06]\n"
" uid T(A)ILS developers (signing key) <amnesia@???>\n"
" sig!3 1202821CBE2CD9C1 2010-10-07 T(A)ILS developers (signing key) <amnesia@???>\n"
" sig! CCD2ED94D21739E9 2010-12-29 Daniel Kahn Gillmor <dkg@???>\n"
msgstr ""
#. type: Plain text
#, no-wrap
msgid " 3 signatures not checked due to missing keys\n"
msgstr ""
#. type: Title #
#, no-wrap
msgid "Beteiligen Sie sich am Web of Trust!"
msgstr ""
#. type: Plain text
msgid ""
"Da das Web of Trust auf menschlichen Beziehungen und real-"
"life-Aktivitäten beruht, wäre es gut, wenn Sie anfingen, Kontakte zu Leuten "
"aufzubauen, die sich mit OpenPGP auskennen, es selber zu nutzen und "
"Vertrauensbeziehungen aufzubauen, um einen eigenen Vertrauenspfad zum "
"Tails-Signaturschlüssel zu finden."
msgstr ""
#. type: Plain text
msgid ""
"Als Anfang könnten Sie eine [[!wikipedia Linux_User_Group desc=\"%s"
"\"]] oder andere Tails-Enthusiasten in Ihrer Gegend kontaktieren und sich mit "
"ihnen über ihre OpenPGP-Nutzung austauschen."
msgstr ""
#. type: Title #
#, no-wrap
msgid "Weiterführende Informationen über OpenPGP"
msgstr ""
#. type: Bullet: '- '
msgid "[[!wikipedia GnuPG desc=\"Wikipedia: %s\"]], a free OpenPGP software"
msgstr ""
#. type: Bullet: '- '
msgid "[[Einführung in die Funktionsweise von OpenPGP / GnuPG (gpg)|
http://www.hauke-laging.de/sicherheit/openpgp.html]]"
msgstr ""
#. type: Bullet: '- '
msgid "[[Apache: How To OpenPGP|
http://www.apache.org/dev/openpgp.html]]"
msgstr ""
#. type: Bullet: '- '
msgid ""
"[[Debian: Keysigning|
http://www.debian.org/events/keysigning]], a tutorial "
"on signing keys of other people"
msgstr ""
#. type: Bullet: '- '
msgid ""
"[[rubin.ch: Explanation of the web of trust of PGP|
http://www.rubin.ch/pgp/"
"weboftrust.en.html]]"
msgstr ""